Skip to content

API Reference / @gtkx/runtime / Descriptor

Type Alias: Descriptor ​

Descriptor = Exclude<NativeDescriptor, { kind: "bytes" | "object" | "boxed" | "struct" | "fundamental" | "array" | "hashtable" | "callback" | "bigint64" | "biguint64" | "reference" | "ref"; }> | { kind: "int64"; } | { kind: "uint64"; } | { kind: "bigint64"; } | { kind: "biguint64"; } | Omit<{ hasOwnedStorage: boolean; kind: "bytes"; length?: number; ownership: Ownership; }, "hasOwnedStorage"> & Partial<Pick<{ hasOwnedStorage: boolean; kind: "bytes"; length?: number; ownership: Ownership; }, "hasOwnedStorage">> | Omit<Omit<{ hasOwnedStorage: boolean; kind: "bytes"; length?: number; ownership: Ownership; }, "hasOwnedStorage"> & Partial<Pick<{ hasOwnedStorage: boolean; kind: "bytes"; length?: number; ownership: Ownership; }, "hasOwnedStorage">>, "kind"> & object | Omit<Omit<{ isCallScoped: boolean; kind: "object"; ownership: Ownership; typeResolver?: () => bigint; }, "isCallScoped"> & Partial<Pick<{ isCallScoped: boolean; kind: "object"; ownership: Ownership; typeResolver?: () => bigint; }, "isCallScoped">>, "typeResolver"> & object | { abiFields?: Descriptor[]; freeFnName?: string; getTypeFnName?: string; isCallerAllocated?: boolean; isInline?: boolean; isRefCounted?: boolean; isValueSafe?: boolean; kind: "boxed"; ownership: Ownership; sharedLibrary?: string; size?: number; typeName: string; } | { abiFields?: Descriptor[]; copyFnName?: string; copyStrategy?: string; freeFnName?: string; isCallerAllocated?: boolean; isInline?: boolean; isValueSafe?: boolean; kind: "struct"; ownership: Ownership; sharedLibrary?: string; size?: number; } | Omit<Omit<{ isCallerAllocated: boolean; isInline: boolean; isValueSafe: boolean; kind: "fundamental"; ownership: Ownership; refResolver?: () => ExternalObject<Handle>; unrefLabel: string; unrefResolver?: () => ExternalObject<Handle>; }, "isCallerAllocated" | "isInline" | "isValueSafe"> & Partial<Pick<{ isCallerAllocated: boolean; isInline: boolean; isValueSafe: boolean; kind: "fundamental"; ownership: Ownership; refResolver?: () => ExternalObject<Handle>; unrefLabel: string; unrefResolver?: () => ExternalObject<Handle>; }, "isCallerAllocated" | "isInline" | "isValueSafe">>, "refResolver" | "unrefResolver" | "unrefLabel"> & object | { innerDescriptor: Descriptor; kind: "indirect"; ownership: Ownership; } | { innerDescriptor: Descriptor; kind: "pointerValue"; } | { kind: "boolean"; } | { kind: "unichar"; } | { getTypeFnName: string; isSigned: boolean; kind: "enum"; members?: number[]; sharedLibrary: string; } | { getTypeFnName: string; isSigned: boolean; kind: "flags"; mask?: number; sharedLibrary: string; } | { arrayKind: ArrayKind; baseParamIndex?: number; elementOwnership?: ElementOwnership; elementSize?: number; fixedSize?: number; isBytes?: boolean; isCallerAllocated?: boolean; isZeroTerminated?: boolean; itemDescriptor: Descriptor; kind: "array"; ownership: Ownership; preserveNull?: boolean; sizeParamIndex?: number; } | Omit<Extract<NativeDescriptor, { kind: "hashtable"; }>, "keyDescriptor" | "valueDescriptor"> & object | Omit<{ destroyKind: DestroyNotifyKind; hasDestroy: boolean; hasUserData: boolean; kind: "callback"; releaseWithCompletion: boolean; scope: CallbackScope; signature: ExternalObject<FunctionSignature>; }, "signature" | "releaseWithCompletion" | "scope" | "hasDestroy" | "destroyKind" | "hasUserData"> & Partial<Pick<{ destroyKind: DestroyNotifyKind; hasDestroy: boolean; hasUserData: boolean; kind: "callback"; releaseWithCompletion: boolean; scope: CallbackScope; signature: ExternalObject<FunctionSignature>; }, "scope" | "hasDestroy" | "destroyKind" | "hasUserData">> & object | { innerDescriptor: Descriptor; inout?: boolean; kind: "ref"; }

Defined in: packages/runtime/src/descriptor-types.ts:68