@gtkx/runtime 1.0.0-rc.1 → 1.0.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/arg.d.ts +6 -5
  2. package/dist/arg.d.ts.map +1 -1
  3. package/dist/arg.js +5 -4
  4. package/dist/arg.js.map +1 -1
  5. package/dist/bind.d.ts +3 -2
  6. package/dist/bind.d.ts.map +1 -1
  7. package/dist/bind.js +5 -3
  8. package/dist/bind.js.map +1 -1
  9. package/dist/callback.d.ts +3 -3
  10. package/dist/callback.d.ts.map +1 -1
  11. package/dist/callback.js +51 -33
  12. package/dist/callback.js.map +1 -1
  13. package/dist/descriptors.d.ts +67 -64
  14. package/dist/descriptors.d.ts.map +1 -1
  15. package/dist/descriptors.js +92 -60
  16. package/dist/descriptors.js.map +1 -1
  17. package/dist/error.d.ts +5 -6
  18. package/dist/error.d.ts.map +1 -1
  19. package/dist/error.js +10 -6
  20. package/dist/error.js.map +1 -1
  21. package/dist/exit-hook.d.ts +2 -0
  22. package/dist/exit-hook.d.ts.map +1 -0
  23. package/dist/exit-hook.js +3 -0
  24. package/dist/exit-hook.js.map +1 -0
  25. package/dist/fn.d.ts +2 -2
  26. package/dist/fn.d.ts.map +1 -1
  27. package/dist/fn.js +26 -15
  28. package/dist/fn.js.map +1 -1
  29. package/dist/index.d.ts +4 -3
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +3 -2
  32. package/dist/index.js.map +1 -1
  33. package/dist/library.d.ts +6 -5
  34. package/dist/library.d.ts.map +1 -1
  35. package/dist/library.js +6 -5
  36. package/dist/library.js.map +1 -1
  37. package/dist/lifecycle.d.ts +10 -9
  38. package/dist/lifecycle.d.ts.map +1 -1
  39. package/dist/lifecycle.js +38 -23
  40. package/dist/lifecycle.js.map +1 -1
  41. package/dist/listeners.d.ts +8 -8
  42. package/dist/listeners.d.ts.map +1 -1
  43. package/dist/listeners.js +28 -15
  44. package/dist/listeners.js.map +1 -1
  45. package/dist/mixin.d.ts +5 -11
  46. package/dist/mixin.d.ts.map +1 -1
  47. package/dist/mixin.js +24 -14
  48. package/dist/mixin.js.map +1 -1
  49. package/dist/native-value.d.ts +3 -2
  50. package/dist/native-value.d.ts.map +1 -1
  51. package/dist/native-value.js +75 -42
  52. package/dist/native-value.js.map +1 -1
  53. package/dist/object.d.ts +4 -3
  54. package/dist/object.d.ts.map +1 -1
  55. package/dist/object.js +8 -5
  56. package/dist/object.js.map +1 -1
  57. package/dist/promisify.d.ts +9 -1
  58. package/dist/promisify.d.ts.map +1 -1
  59. package/dist/promisify.js +18 -15
  60. package/dist/promisify.js.map +1 -1
  61. package/dist/properties.d.ts +14 -0
  62. package/dist/properties.d.ts.map +1 -0
  63. package/dist/properties.js +79 -0
  64. package/dist/properties.js.map +1 -0
  65. package/dist/register-class.d.ts +10 -2
  66. package/dist/register-class.d.ts.map +1 -1
  67. package/dist/register-class.js +83 -29
  68. package/dist/register-class.js.map +1 -1
  69. package/dist/registry.d.ts +23 -21
  70. package/dist/registry.d.ts.map +1 -1
  71. package/dist/registry.js +54 -35
  72. package/dist/registry.js.map +1 -1
  73. package/dist/signal.d.ts +7 -6
  74. package/dist/signal.d.ts.map +1 -1
  75. package/dist/signal.js +19 -12
  76. package/dist/signal.js.map +1 -1
  77. package/dist/t.d.ts +2 -2
  78. package/dist/t.d.ts.map +1 -1
  79. package/dist/t.js +2 -1
  80. package/dist/t.js.map +1 -1
  81. package/dist/tuple.d.ts +3 -2
  82. package/dist/tuple.d.ts.map +1 -1
  83. package/dist/tuple.js +7 -4
  84. package/dist/tuple.js.map +1 -1
  85. package/dist/type.d.ts +48 -41
  86. package/dist/type.d.ts.map +1 -1
  87. package/dist/type.js +107 -87
  88. package/dist/type.js.map +1 -1
  89. package/dist/value.d.ts +19 -10
  90. package/dist/value.d.ts.map +1 -1
  91. package/dist/value.js +164 -99
  92. package/dist/value.js.map +1 -1
  93. package/package.json +4 -6
  94. package/src/arg.ts +7 -5
  95. package/src/bind.ts +13 -4
  96. package/src/callback.ts +97 -35
  97. package/src/descriptors.ts +227 -85
  98. package/src/error.ts +18 -9
  99. package/src/exit-hook.ts +3 -0
  100. package/src/fn.ts +53 -22
  101. package/src/index.ts +5 -3
  102. package/src/library.ts +7 -5
  103. package/src/lifecycle.ts +54 -26
  104. package/src/listeners.ts +46 -18
  105. package/src/mixin.ts +39 -14
  106. package/src/native-value.ts +103 -46
  107. package/src/object.ts +19 -7
  108. package/src/promisify.ts +42 -15
  109. package/src/properties.ts +115 -0
  110. package/src/register-class.ts +157 -30
  111. package/src/registry.ts +144 -54
  112. package/src/signal.ts +53 -13
  113. package/src/t.ts +3 -1
  114. package/src/tuple.ts +16 -4
  115. package/src/type.ts +183 -93
  116. package/src/value.ts +231 -108
package/dist/arg.d.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  import type { Descriptor } from "@gtkx/native";
2
- export type Arg = {
2
+ type Arg = {
3
3
  type: Descriptor;
4
4
  direction?: "out" | "inout";
5
5
  callerAllocated?: boolean;
6
6
  consumed?: boolean;
7
7
  };
8
- export declare const isOutputArg: (arg: Arg) => boolean;
9
- export declare const isInoutArg: (arg: Arg) => boolean;
10
- export declare const isCallerAllocatedArg: (arg: Arg) => boolean;
11
- export declare const isRefArg: (arg: Arg) => boolean;
8
+ declare const isOutputArg: (arg: Arg) => boolean;
9
+ declare const isInoutArg: (arg: Arg) => boolean;
10
+ declare const isCallerAllocatedArg: (arg: Arg) => boolean;
11
+ declare const isRefArg: (arg: Arg) => boolean;
12
+ export { isOutputArg, isInoutArg, isCallerAllocatedArg, isRefArg, type Arg };
12
13
  //# sourceMappingURL=arg.d.ts.map
package/dist/arg.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"arg.d.ts","sourceRoot":"","sources":["../src/arg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,GAAG,GAAG;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,WAAW,QAAS,GAAG,KAAG,OAAsC,CAAC;AAC9E,eAAO,MAAM,UAAU,QAAS,GAAG,KAAG,OAAoC,CAAC;AAC3E,eAAO,MAAM,oBAAoB,QAAS,GAAG,KAAG,OAAuC,CAAC;AACxF,eAAO,MAAM,QAAQ,QAAS,GAAG,KAAG,OAAsE,CAAC"}
1
+ {"version":3,"file":"arg.d.ts","sourceRoot":"","sources":["../src/arg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,KAAK,GAAG,GAAG;IACP,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,QAAA,MAAM,WAAW,GAAI,KAAK,GAAG,KAAG,OAAsC,CAAC;AACvE,QAAA,MAAM,UAAU,GAAI,KAAK,GAAG,KAAG,OAAoC,CAAC;AACpE,QAAA,MAAM,oBAAoB,GAAI,KAAK,GAAG,KAAG,OAAuC,CAAC;AACjF,QAAA,MAAM,QAAQ,GAAI,KAAK,GAAG,KAAG,OAAsE,CAAC;AAEpG,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,GAAG,EAAE,CAAC"}
package/dist/arg.js CHANGED
@@ -1,5 +1,6 @@
1
- export const isOutputArg = (arg) => arg.direction !== undefined;
2
- export const isInoutArg = (arg) => arg.direction === "inout";
3
- export const isCallerAllocatedArg = (arg) => arg.callerAllocated === true;
4
- export const isRefArg = (arg) => arg.direction !== undefined && arg.callerAllocated !== true;
1
+ const isOutputArg = (arg) => arg.direction !== undefined;
2
+ const isInoutArg = (arg) => arg.direction === "inout";
3
+ const isCallerAllocatedArg = (arg) => arg.callerAllocated === true;
4
+ const isRefArg = (arg) => arg.direction !== undefined && arg.callerAllocated !== true;
5
+ export { isOutputArg, isInoutArg, isCallerAllocatedArg, isRefArg };
5
6
  //# sourceMappingURL=arg.js.map
package/dist/arg.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"arg.js","sourceRoot":"","sources":["../src/arg.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAW,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC;AAC9E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAW,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC;AAC3E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAQ,EAAW,EAAE,CAAC,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC;AACxF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAQ,EAAW,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC","sourcesContent":["import type { Descriptor } from \"@gtkx/native\";\n\nexport type Arg = {\n type: Descriptor;\n direction?: \"out\" | \"inout\";\n callerAllocated?: boolean;\n consumed?: boolean;\n};\n\nexport const isOutputArg = (arg: Arg): boolean => arg.direction !== undefined;\nexport const isInoutArg = (arg: Arg): boolean => arg.direction === \"inout\";\nexport const isCallerAllocatedArg = (arg: Arg): boolean => arg.callerAllocated === true;\nexport const isRefArg = (arg: Arg): boolean => arg.direction !== undefined && arg.callerAllocated !== true;\n"]}
1
+ {"version":3,"file":"arg.js","sourceRoot":"","sources":["../src/arg.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAW,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC;AACvE,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAW,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC;AACpE,MAAM,oBAAoB,GAAG,CAAC,GAAQ,EAAW,EAAE,CAAC,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC;AACjF,MAAM,QAAQ,GAAG,CAAC,GAAQ,EAAW,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC;AAEpG,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,oBAAoB,EAAE,QAAQ,EAAY,CAAC","sourcesContent":["import type { Descriptor } from \"@gtkx/native\";\n\ntype Arg = {\n type: Descriptor;\n direction?: \"out\" | \"inout\";\n callerAllocated?: boolean;\n consumed?: boolean;\n};\n\nconst isOutputArg = (arg: Arg): boolean => arg.direction !== undefined;\nconst isInoutArg = (arg: Arg): boolean => arg.direction === \"inout\";\nconst isCallerAllocatedArg = (arg: Arg): boolean => arg.callerAllocated === true;\nconst isRefArg = (arg: Arg): boolean => arg.direction !== undefined && arg.callerAllocated !== true;\n\nexport { isOutputArg, isInoutArg, isCallerAllocatedArg, isRefArg, type Arg };\n"]}
package/dist/bind.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type Descriptor } from "@gtkx/native";
2
- export declare function bind(sharedLibrary: string, symbol: string, argDescriptors: Descriptor[], returnDescriptor: Descriptor): (...values: unknown[]) => unknown;
3
- export declare function createBindCache(): (key: string, ...args: Parameters<typeof bind>) => ReturnType<typeof bind>;
2
+ declare function bind(sharedLibrary: string, symbol: string, argDescriptors: Descriptor[], returnDescriptor: Descriptor): (...values: unknown[]) => unknown;
3
+ declare function createBindCache(): (key: string, ...args: Parameters<typeof bind>) => ReturnType<typeof bind>;
4
+ export { bind, createBindCache };
4
5
  //# sourceMappingURL=bind.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../src/bind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAsB,MAAM,cAAc,CAAC;AAEzE,wBAAgB,IAAI,CAChB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,UAAU,EAAE,EAC5B,gBAAgB,EAAE,UAAU,GAC7B,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,CAGnC;AAED,wBAAgB,eAAe,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,UAAU,CAAC,OAAO,IAAI,CAAC,CAS5G"}
1
+ {"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../src/bind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAsB,MAAM,cAAc,CAAC;AAEzE,iBAAS,IAAI,CACT,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,UAAU,EAAE,EAC5B,gBAAgB,EAAE,UAAU,GAC7B,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,CAInC;AAED,iBAAS,eAAe,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,UAAU,CAAC,OAAO,IAAI,CAAC,CAerG;AAED,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC"}
package/dist/bind.js CHANGED
@@ -1,17 +1,19 @@
1
1
  import { call, bind as nativeBind } from "@gtkx/native";
2
- export function bind(sharedLibrary, symbol, argDescriptors, returnDescriptor) {
2
+ function bind(sharedLibrary, symbol, argDescriptors, returnDescriptor) {
3
3
  const descriptor = nativeBind(sharedLibrary, symbol, argDescriptors, returnDescriptor);
4
4
  return (...values) => call(descriptor, values);
5
5
  }
6
- export function createBindCache() {
6
+ function createBindCache() {
7
7
  const cache = new Map();
8
8
  return (key, ...args) => {
9
9
  const existing = cache.get(key);
10
- if (existing !== undefined)
10
+ if (existing !== undefined) {
11
11
  return existing;
12
+ }
12
13
  const bound = bind(...args);
13
14
  cache.set(key, bound);
14
15
  return bound;
15
16
  };
16
17
  }
18
+ export { bind, createBindCache };
17
19
  //# sourceMappingURL=bind.js.map
package/dist/bind.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bind.js","sourceRoot":"","sources":["../src/bind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,IAAI,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAEzE,MAAM,UAAU,IAAI,CAChB,aAAqB,EACrB,MAAc,EACd,cAA4B,EAC5B,gBAA4B;IAE5B,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,eAAe;IAC3B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmC,CAAC;IACzD,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE;QACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtB,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;AACN,CAAC","sourcesContent":["import { call, type Descriptor, bind as nativeBind } from \"@gtkx/native\";\n\nexport function bind(\n sharedLibrary: string,\n symbol: string,\n argDescriptors: Descriptor[],\n returnDescriptor: Descriptor,\n): (...values: unknown[]) => unknown {\n const descriptor = nativeBind(sharedLibrary, symbol, argDescriptors, returnDescriptor);\n return (...values) => call(descriptor, values);\n}\n\nexport function createBindCache(): (key: string, ...args: Parameters<typeof bind>) => ReturnType<typeof bind> {\n const cache = new Map<string, ReturnType<typeof bind>>();\n return (key, ...args) => {\n const existing = cache.get(key);\n if (existing !== undefined) return existing;\n const bound = bind(...args);\n cache.set(key, bound);\n return bound;\n };\n}\n"]}
1
+ {"version":3,"file":"bind.js","sourceRoot":"","sources":["../src/bind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,IAAI,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAEzE,SAAS,IAAI,CACT,aAAqB,EACrB,MAAc,EACd,cAA4B,EAC5B,gBAA4B;IAE5B,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAEvF,OAAO,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,eAAe;IACpB,MAAM,KAAK,GAAyC,IAAI,GAAG,EAAE,CAAC;IAE9D,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE;QACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAEtB,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;AACN,CAAC;AAED,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC","sourcesContent":["import { call, type Descriptor, bind as nativeBind } from \"@gtkx/native\";\n\nfunction bind(\n sharedLibrary: string,\n symbol: string,\n argDescriptors: Descriptor[],\n returnDescriptor: Descriptor,\n): (...values: unknown[]) => unknown {\n const descriptor = nativeBind(sharedLibrary, symbol, argDescriptors, returnDescriptor);\n\n return (...values) => call(descriptor, values);\n}\n\nfunction createBindCache(): (key: string, ...args: Parameters<typeof bind>) => ReturnType<typeof bind> {\n const cache: Map<string, ReturnType<typeof bind>> = new Map();\n\n return (key, ...args) => {\n const existing = cache.get(key);\n\n if (existing !== undefined) {\n return existing;\n }\n\n const bound = bind(...args);\n cache.set(key, bound);\n\n return bound;\n };\n}\n\nexport { bind, createBindCache };\n"]}
@@ -7,7 +7,7 @@ type CallbackSpec = {
7
7
  returnDescriptor: Descriptor;
8
8
  userDataIndex?: number;
9
9
  };
10
- export declare const wrapCallbackValue: (spec: CallbackDescriptor, callback: unknown) => unknown;
11
- export declare function wrapCallback(fn: Callback, spec: CallbackSpec, receiver: CallbackReceiver): Callback;
12
- export {};
10
+ declare const wrapCallbackValue: (spec: CallbackDescriptor, callback: unknown) => unknown;
11
+ declare function wrapCallback(fn: Callback, spec: CallbackSpec, receiver: CallbackReceiver): Callback;
12
+ export { wrapCallbackValue, wrapCallback };
13
13
  //# sourceMappingURL=callback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../src/callback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAM3D,KAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAChD,KAAK,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAGpD,KAAK,YAAY,GAAG;IAChB,cAAc,EAAE,UAAU,EAAE,CAAC;IAC7B,gBAAgB,EAAE,UAAU,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAmDF,eAAO,MAAM,iBAAiB,SAAU,kBAAkB,YAAY,OAAO,KAAG,OACE,CAAC;AAEnF,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,QAAQ,CAiBnG"}
1
+ {"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../src/callback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,kBAAkB,CAAC;AAM1E,KAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAChD,KAAK,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAGpD,KAAK,YAAY,GAAG;IAChB,cAAc,EAAE,UAAU,EAAE,CAAC;IAC7B,gBAAgB,EAAE,UAAU,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAsHF,QAAA,MAAM,iBAAiB,GAAI,MAAM,kBAAkB,EAAE,UAAU,OAAO,KAAG,OACS,CAAC;AAEnF,iBAAS,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,QAAQ,CAU5F;AAED,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC"}
package/dist/callback.js CHANGED
@@ -14,30 +14,33 @@ const fillCallerAllocatedBuffer = (descriptor, target, source) => {
14
14
  }
15
15
  throw new Error(`Cannot write caller-allocated ${descriptor.kind} out-parameter: no known byte size`);
16
16
  };
17
+ const isCallerAllocatedOut = (descriptor) => (descriptor.kind === "boxed" || descriptor.kind === "struct") && descriptor.callerAllocated === true;
18
+ const collectRefArg = (descriptor, wrappedValue, inputs, outParams) => {
19
+ if (descriptor.inout === true) {
20
+ inputs.push(wrappedValue.value);
21
+ }
22
+ outParams.push({ value: wrappedValue, descriptor });
23
+ };
24
+ const collectCallbackArg = (descriptor, wrappedValue, inputs, outParams) => {
25
+ if (descriptor?.kind === "ref") {
26
+ collectRefArg(descriptor, wrappedValue, inputs, outParams);
27
+ return;
28
+ }
29
+ inputs.push(wrappedValue);
30
+ if (descriptor !== undefined && isCallerAllocatedOut(descriptor)) {
31
+ outParams.push({ value: wrappedValue, descriptor });
32
+ }
33
+ };
17
34
  const partitionCallbackArgs = (effectiveTypes, wrapped, start) => {
18
35
  const inputs = [];
19
36
  const outParams = [];
20
37
  for (let i = start; i < effectiveTypes.length; i++) {
21
- const descriptor = effectiveTypes[i];
22
- if (descriptor !== undefined && descriptor.kind === "ref") {
23
- if (descriptor.inout === true)
24
- inputs.push(wrapped[i].value);
25
- outParams.push({ value: wrapped[i], descriptor });
26
- }
27
- else if (descriptor !== undefined &&
28
- (descriptor.kind === "boxed" || descriptor.kind === "struct") &&
29
- descriptor.callerAllocated === true) {
30
- inputs.push(wrapped[i]);
31
- outParams.push({ value: wrapped[i], descriptor });
32
- }
33
- else {
34
- inputs.push(wrapped[i]);
35
- }
38
+ collectCallbackArg(effectiveTypes[i], wrapped[i], inputs, outParams);
36
39
  }
37
40
  return { inputs, outParams };
38
41
  };
39
42
  const writeOutParams = (outParams, outValues) => {
40
- outParams.forEach((outParam, position) => {
43
+ for (const [position, outParam] of outParams.entries()) {
41
44
  const outValue = outValues[position];
42
45
  if (outParam.descriptor.kind === "ref") {
43
46
  outParam.value.value = outValue;
@@ -45,24 +48,39 @@ const writeOutParams = (outParams, outValues) => {
45
48
  else if (outValue != null && outParam.value != null) {
46
49
  fillCallerAllocatedBuffer(outParam.descriptor, outParam.value, outValue);
47
50
  }
48
- });
51
+ }
49
52
  };
50
- export const wrapCallbackValue = (spec, callback) => callback == null ? callback : wrapCallback(callback, spec, "none");
51
- export function wrapCallback(fn, spec, receiver) {
52
- const { returnDescriptor, userDataIndex } = spec;
53
- const effectiveTypes = userDataIndex === undefined ? spec.argDescriptors : spec.argDescriptors.filter((_, i) => i !== userDataIndex);
54
- const start = receiver === "none" ? 0 : 1;
55
- return (...rawArgs) => {
56
- const wrapped = effectiveTypes.map((descriptor, i) => fromNative(descriptor, rawArgs[i]));
57
- const thisArg = receiver === "this" ? (wrapped[0] ?? null) : null;
58
- const { inputs, outParams } = partitionCallbackArgs(effectiveTypes, wrapped, start);
59
- const result = fn.apply(thisArg, inputs);
60
- if (outParams.length === 0) {
61
- return toNative(returnDescriptor, result);
62
- }
63
- const { primary, outValues } = splitTupleResult(result, returnDescriptor.kind !== "void", outParams.length);
64
- writeOutParams(outParams, outValues);
65
- return toNative(returnDescriptor, primary);
53
+ const getThisArg = (receiver, wrapped) => receiver === "this" ? (wrapped[0] ?? null) : null;
54
+ const runCallback = (plan, rawArgs) => {
55
+ const { effectiveTypes, returnDescriptor } = plan;
56
+ const wrapped = effectiveTypes.map((descriptor, i) => fromNative(descriptor, rawArgs[i]));
57
+ const thisArg = getThisArg(plan.receiver, wrapped);
58
+ const { inputs, outParams } = partitionCallbackArgs(effectiveTypes, wrapped, plan.start);
59
+ const result = plan.fn.apply(thisArg, inputs);
60
+ if (outParams.length === 0) {
61
+ return toNative(returnDescriptor, result);
62
+ }
63
+ const { primary, outValues } = splitTupleResult(result, returnDescriptor.kind !== "void", outParams.length);
64
+ writeOutParams(outParams, outValues);
65
+ return toNative(returnDescriptor, primary);
66
+ };
67
+ const getEffectiveTypes = (spec) => {
68
+ const { userDataIndex } = spec;
69
+ if (userDataIndex === undefined) {
70
+ return spec.argDescriptors;
71
+ }
72
+ return spec.argDescriptors.filter((_, i) => i !== userDataIndex);
73
+ };
74
+ const wrapCallbackValue = (spec, callback) => callback == null ? callback : wrapCallback(callback, spec, "none");
75
+ function wrapCallback(fn, spec, receiver) {
76
+ const plan = {
77
+ fn,
78
+ effectiveTypes: getEffectiveTypes(spec),
79
+ returnDescriptor: spec.returnDescriptor,
80
+ start: receiver === "none" ? 0 : 1,
81
+ receiver,
66
82
  };
83
+ return (...rawArgs) => runCallback(plan, rawArgs);
67
84
  }
85
+ export { wrapCallbackValue, wrapCallback };
68
86
  //# sourceMappingURL=callback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"callback.js","sourceRoot":"","sources":["../src/callback.ts"],"names":[],"mappings":"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","sourcesContent":["import { copy, type Descriptor } from \"@gtkx/native\";\nimport type { CallbackDescriptor } from \"./descriptors.js\";\nimport { fromNative, toNative } from \"./native-value.js\";\nimport { getHandle } from \"./registry.js\";\nimport { splitTupleResult } from \"./tuple.js\";\nimport { copyValue } from \"./value.js\";\n\ntype Callback = (...args: unknown[]) => unknown;\ntype CallbackReceiver = \"this\" | \"emitter\" | \"none\";\ntype OutParam = { value: unknown; descriptor: Descriptor };\n\ntype CallbackSpec = {\n argDescriptors: Descriptor[];\n returnDescriptor: Descriptor;\n userDataIndex?: number;\n};\n\nconst fillCallerAllocatedBuffer = (descriptor: Descriptor, target: object, source: object): void => {\n if (descriptor.kind === \"boxed\" && descriptor.typeName === \"GValue\") {\n copyValue(getHandle(target), getHandle(source));\n return;\n }\n if ((descriptor.kind === \"boxed\" || descriptor.kind === \"struct\") && descriptor.size !== undefined) {\n copy(getHandle(target), getHandle(source), descriptor.size);\n return;\n }\n throw new Error(`Cannot write caller-allocated ${descriptor.kind} out-parameter: no known byte size`);\n};\n\nconst partitionCallbackArgs = (\n effectiveTypes: Descriptor[],\n wrapped: unknown[],\n start: number,\n): { inputs: unknown[]; outParams: OutParam[] } => {\n const inputs: unknown[] = [];\n const outParams: OutParam[] = [];\n for (let i = start; i < effectiveTypes.length; i++) {\n const descriptor = effectiveTypes[i];\n if (descriptor !== undefined && descriptor.kind === \"ref\") {\n if (descriptor.inout === true) inputs.push((wrapped[i] as { value: unknown }).value);\n outParams.push({ value: wrapped[i], descriptor });\n } else if (\n descriptor !== undefined &&\n (descriptor.kind === \"boxed\" || descriptor.kind === \"struct\") &&\n descriptor.callerAllocated === true\n ) {\n inputs.push(wrapped[i]);\n outParams.push({ value: wrapped[i], descriptor });\n } else {\n inputs.push(wrapped[i]);\n }\n }\n return { inputs, outParams };\n};\n\nconst writeOutParams = (outParams: OutParam[], outValues: unknown[]): void => {\n outParams.forEach((outParam, position) => {\n const outValue = outValues[position];\n if (outParam.descriptor.kind === \"ref\") {\n (outParam.value as { value: unknown }).value = outValue;\n } else if (outValue != null && outParam.value != null) {\n fillCallerAllocatedBuffer(outParam.descriptor, outParam.value as object, outValue as object);\n }\n });\n};\n\nexport const wrapCallbackValue = (spec: CallbackDescriptor, callback: unknown): unknown =>\n callback == null ? callback : wrapCallback(callback as Callback, spec, \"none\");\n\nexport function wrapCallback(fn: Callback, spec: CallbackSpec, receiver: CallbackReceiver): Callback {\n const { returnDescriptor, userDataIndex } = spec;\n const effectiveTypes =\n userDataIndex === undefined ? spec.argDescriptors : spec.argDescriptors.filter((_, i) => i !== userDataIndex);\n const start = receiver === \"none\" ? 0 : 1;\n return (...rawArgs: unknown[]): unknown => {\n const wrapped = effectiveTypes.map((descriptor, i) => fromNative(descriptor, rawArgs[i]));\n const thisArg = receiver === \"this\" ? (wrapped[0] ?? null) : null;\n const { inputs, outParams } = partitionCallbackArgs(effectiveTypes, wrapped, start);\n const result = (fn as (this: unknown, ...args: unknown[]) => unknown).apply(thisArg, inputs);\n if (outParams.length === 0) {\n return toNative(returnDescriptor, result);\n }\n const { primary, outValues } = splitTupleResult(result, returnDescriptor.kind !== \"void\", outParams.length);\n writeOutParams(outParams, outValues);\n return toNative(returnDescriptor, primary);\n };\n}\n"]}
1
+ {"version":3,"file":"callback.js","sourceRoot":"","sources":["../src/callback.ts"],"names":[],"mappings":"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","sourcesContent":["import { copy, type Descriptor } from \"@gtkx/native\";\nimport type { CallbackDescriptor, RefDescriptor } from \"./descriptors.js\";\nimport { fromNative, toNative } from \"./native-value.js\";\nimport { getHandle } from \"./registry.js\";\nimport { splitTupleResult } from \"./tuple.js\";\nimport { copyValue } from \"./value.js\";\n\ntype Callback = (...args: unknown[]) => unknown;\ntype CallbackReceiver = \"this\" | \"emitter\" | \"none\";\ntype OutParam = { value: unknown; descriptor: Descriptor };\n\ntype CallbackSpec = {\n argDescriptors: Descriptor[];\n returnDescriptor: Descriptor;\n userDataIndex?: number;\n};\n\ntype CallbackPlan = {\n fn: Callback;\n effectiveTypes: Descriptor[];\n returnDescriptor: Descriptor;\n start: number;\n receiver: CallbackReceiver;\n};\n\nconst fillCallerAllocatedBuffer = (descriptor: Descriptor, target: object, source: object): void => {\n if (descriptor.kind === \"boxed\" && descriptor.typeName === \"GValue\") {\n copyValue(getHandle(target), getHandle(source));\n\n return;\n }\n\n if ((descriptor.kind === \"boxed\" || descriptor.kind === \"struct\") && descriptor.size !== undefined) {\n copy(getHandle(target), getHandle(source), descriptor.size);\n\n return;\n }\n\n throw new Error(`Cannot write caller-allocated ${descriptor.kind} out-parameter: no known byte size`);\n};\n\nconst isCallerAllocatedOut = (descriptor: Descriptor): boolean =>\n (descriptor.kind === \"boxed\" || descriptor.kind === \"struct\") && descriptor.callerAllocated === true;\n\nconst collectRefArg = (\n descriptor: RefDescriptor,\n wrappedValue: unknown,\n inputs: unknown[],\n outParams: OutParam[],\n): void => {\n if (descriptor.inout === true) {\n inputs.push((wrappedValue as { value: unknown }).value);\n }\n\n outParams.push({ value: wrappedValue, descriptor });\n};\n\nconst collectCallbackArg = (\n descriptor: Descriptor | undefined,\n wrappedValue: unknown,\n inputs: unknown[],\n outParams: OutParam[],\n): void => {\n if (descriptor?.kind === \"ref\") {\n collectRefArg(descriptor, wrappedValue, inputs, outParams);\n\n return;\n }\n\n inputs.push(wrappedValue);\n\n if (descriptor !== undefined && isCallerAllocatedOut(descriptor)) {\n outParams.push({ value: wrappedValue, descriptor });\n }\n};\n\nconst partitionCallbackArgs = (\n effectiveTypes: Descriptor[],\n wrapped: unknown[],\n start: number,\n): { inputs: unknown[]; outParams: OutParam[] } => {\n const inputs: unknown[] = [];\n const outParams: OutParam[] = [];\n\n for (let i = start; i < effectiveTypes.length; i++) {\n collectCallbackArg(effectiveTypes[i], wrapped[i], inputs, outParams);\n }\n\n return { inputs, outParams };\n};\n\nconst writeOutParams = (outParams: OutParam[], outValues: unknown[]): void => {\n for (const [position, outParam] of outParams.entries()) {\n const outValue = outValues[position];\n\n if (outParam.descriptor.kind === \"ref\") {\n (outParam.value as { value: unknown }).value = outValue;\n } else if (outValue != null && outParam.value != null) {\n fillCallerAllocatedBuffer(outParam.descriptor, outParam.value, outValue);\n }\n }\n};\n\nconst getThisArg = (receiver: CallbackReceiver, wrapped: unknown[]): unknown =>\n receiver === \"this\" ? (wrapped[0] ?? null) : null;\n\nconst runCallback = (plan: CallbackPlan, rawArgs: unknown[]): unknown => {\n const { effectiveTypes, returnDescriptor } = plan;\n const wrapped = effectiveTypes.map((descriptor, i) => fromNative(descriptor, rawArgs[i]));\n const thisArg = getThisArg(plan.receiver, wrapped);\n const { inputs, outParams } = partitionCallbackArgs(effectiveTypes, wrapped, plan.start);\n const result = plan.fn.apply(thisArg, inputs);\n\n if (outParams.length === 0) {\n return toNative(returnDescriptor, result);\n }\n\n const { primary, outValues } = splitTupleResult(result, returnDescriptor.kind !== \"void\", outParams.length);\n writeOutParams(outParams, outValues);\n\n return toNative(returnDescriptor, primary);\n};\n\nconst getEffectiveTypes = (spec: CallbackSpec): Descriptor[] => {\n const { userDataIndex } = spec;\n\n if (userDataIndex === undefined) {\n return spec.argDescriptors;\n }\n\n return spec.argDescriptors.filter((_, i) => i !== userDataIndex);\n};\n\nconst wrapCallbackValue = (spec: CallbackDescriptor, callback: unknown): unknown =>\n callback == null ? callback : wrapCallback(callback as Callback, spec, \"none\");\n\nfunction wrapCallback(fn: Callback, spec: CallbackSpec, receiver: CallbackReceiver): Callback {\n const plan: CallbackPlan = {\n fn,\n effectiveTypes: getEffectiveTypes(spec),\n returnDescriptor: spec.returnDescriptor,\n start: receiver === \"none\" ? 0 : 1,\n receiver,\n };\n\n return (...rawArgs: unknown[]): unknown => runCallback(plan, rawArgs);\n}\n\nexport { wrapCallbackValue, wrapCallback };\n"]}
@@ -1,95 +1,96 @@
1
1
  import type { ArrayKind, Descriptor, Ownership } from "@gtkx/native";
2
2
  import type { AnyClass } from "@gtkx/utils";
3
- export type Int8Descriptor = Extract<Descriptor, {
3
+ type Int8Descriptor = Extract<Descriptor, {
4
4
  kind: "int8";
5
5
  }>;
6
- export type Uint8Descriptor = Extract<Descriptor, {
6
+ type Uint8Descriptor = Extract<Descriptor, {
7
7
  kind: "uint8";
8
8
  }>;
9
- export type Int16Descriptor = Extract<Descriptor, {
9
+ type Int16Descriptor = Extract<Descriptor, {
10
10
  kind: "int16";
11
11
  }>;
12
- export type Uint16Descriptor = Extract<Descriptor, {
12
+ type Uint16Descriptor = Extract<Descriptor, {
13
13
  kind: "uint16";
14
14
  }>;
15
- export type Int32Descriptor = Extract<Descriptor, {
15
+ type Int32Descriptor = Extract<Descriptor, {
16
16
  kind: "int32";
17
17
  }>;
18
- export type Uint32Descriptor = Extract<Descriptor, {
18
+ type Uint32Descriptor = Extract<Descriptor, {
19
19
  kind: "uint32";
20
20
  }>;
21
- export type Int64Descriptor = Extract<Descriptor, {
21
+ type Int64Descriptor = Extract<Descriptor, {
22
22
  kind: "int64";
23
23
  }>;
24
- export type Uint64Descriptor = Extract<Descriptor, {
24
+ type Uint64Descriptor = Extract<Descriptor, {
25
25
  kind: "uint64";
26
26
  }>;
27
- export type BigInt64Descriptor = Extract<Descriptor, {
27
+ type BigInt64Descriptor = Extract<Descriptor, {
28
28
  kind: "bigint64";
29
29
  }>;
30
- export type BigUint64Descriptor = Extract<Descriptor, {
30
+ type BigUint64Descriptor = Extract<Descriptor, {
31
31
  kind: "biguint64";
32
32
  }>;
33
- export type Float32Descriptor = Extract<Descriptor, {
33
+ type Float32Descriptor = Extract<Descriptor, {
34
34
  kind: "float32";
35
35
  }>;
36
- export type Float64Descriptor = Extract<Descriptor, {
36
+ type Float64Descriptor = Extract<Descriptor, {
37
37
  kind: "float64";
38
38
  }>;
39
- export type EnumDescriptor = Extract<Descriptor, {
39
+ type EnumDescriptor = Extract<Descriptor, {
40
40
  kind: "enum";
41
41
  }>;
42
- export type FlagsDescriptor = Extract<Descriptor, {
42
+ type FlagsDescriptor = Extract<Descriptor, {
43
43
  kind: "flags";
44
44
  }>;
45
- export type BooleanDescriptor = Extract<Descriptor, {
45
+ type BooleanDescriptor = Extract<Descriptor, {
46
46
  kind: "boolean";
47
47
  }>;
48
- export type StringDescriptor = Extract<Descriptor, {
48
+ type StringDescriptor = Extract<Descriptor, {
49
49
  kind: "string";
50
50
  }>;
51
- export type ObjectDescriptor = Extract<Descriptor, {
51
+ type ObjectDescriptor = Extract<Descriptor, {
52
52
  kind: "object";
53
53
  }>;
54
- export type UnicharDescriptor = Extract<Descriptor, {
54
+ type UnicharDescriptor = Extract<Descriptor, {
55
55
  kind: "unichar";
56
56
  }>;
57
- export type VoidDescriptor = Extract<Descriptor, {
57
+ type VoidDescriptor = Extract<Descriptor, {
58
58
  kind: "void";
59
59
  }>;
60
- export type BufferDescriptor = Extract<Descriptor, {
60
+ type BufferDescriptor = Extract<Descriptor, {
61
61
  kind: "buffer";
62
62
  }>;
63
- export type BoxedDescriptor = Extract<Descriptor, {
63
+ type BoxedDescriptor = Extract<Descriptor, {
64
64
  kind: "boxed";
65
65
  }>;
66
- export type StructDescriptor = Extract<Descriptor, {
66
+ type StructDescriptor = Extract<Descriptor, {
67
67
  kind: "struct";
68
68
  }> & {
69
69
  wrapperClass?: AnyClass;
70
70
  };
71
- export type FundamentalDescriptor = Extract<Descriptor, {
71
+ type FundamentalDescriptor = Extract<Descriptor, {
72
72
  kind: "fundamental";
73
73
  }> & {
74
74
  wrapperClass?: AnyClass;
75
75
  };
76
- export type ArrayDescriptor = Extract<Descriptor, {
76
+ type ArrayDescriptor = Extract<Descriptor, {
77
77
  kind: "array";
78
78
  }>;
79
- export type HashTableDescriptor = Extract<Descriptor, {
79
+ type HashTableDescriptor = Extract<Descriptor, {
80
80
  kind: "hashtable";
81
81
  }>;
82
- export type CallbackDescriptor = Extract<Descriptor, {
82
+ type CallbackDescriptor = Extract<Descriptor, {
83
83
  kind: "callback";
84
84
  }>;
85
- export type RefDescriptor = Extract<Descriptor, {
85
+ type RefDescriptor = Extract<Descriptor, {
86
86
  kind: "ref";
87
87
  }>;
88
- export type TypeDescriptor = BigUint64Descriptor & {
88
+ type TypeDescriptor = BigUint64Descriptor & {
89
89
  type: true;
90
90
  };
91
91
  type BoxedOptions = {
92
92
  callerAllocated?: boolean;
93
+ inline?: boolean;
93
94
  ownership?: Ownership;
94
95
  sharedLibrary?: string;
95
96
  getTypeFnName?: string;
@@ -110,46 +111,48 @@ type FundamentalOptions = {
110
111
  ownership?: Ownership;
111
112
  typeName?: string;
112
113
  wrapperClass?: AnyClass;
114
+ inline?: boolean;
113
115
  };
114
116
  type StructOptions = {
115
117
  callerAllocated?: boolean;
118
+ inline?: boolean;
116
119
  size?: number;
117
120
  wrapperClass?: AnyClass;
118
121
  };
119
- export declare const int8T: Int8Descriptor;
120
- export declare const uint8T: Uint8Descriptor;
121
- export declare const int16T: Int16Descriptor;
122
- export declare const uint16T: Uint16Descriptor;
123
- export declare const int32T: Int32Descriptor;
124
- export declare const uint32T: Uint32Descriptor;
125
- export declare const int64T: Int64Descriptor;
126
- export declare const uint64T: Uint64Descriptor;
127
- export declare const bigint64T: BigInt64Descriptor;
128
- export declare const biguint64T: BigUint64Descriptor;
129
- export declare const gtypeT: TypeDescriptor;
130
- export declare const float32T: Float32Descriptor;
131
- export declare const float64T: Float64Descriptor;
132
- export declare const booleanT: BooleanDescriptor;
133
- export declare const voidT: VoidDescriptor;
134
- export declare const unicharT: UnicharDescriptor;
135
- export declare const bufferT: BufferDescriptor;
136
- export declare const stringT: (ownership?: Ownership, length?: number) => StringDescriptor;
137
- export declare const objectT: (ownership?: Ownership) => ObjectDescriptor;
138
- export declare const refT: (innerDescriptor: Descriptor, inout?: boolean) => RefDescriptor;
139
- export declare const hashTableT: (keyDescriptor: Descriptor, valueDescriptor: Descriptor, ownership?: Ownership) => HashTableDescriptor;
140
- export declare const enumT: (sharedLibrary: string, getTypeFnName: string, signed: boolean) => EnumDescriptor;
141
- export declare const flagsT: (sharedLibrary: string, getTypeFnName: string, signed: boolean) => FlagsDescriptor;
142
- export declare const boxedT: (typeName: string, options?: BoxedOptions) => BoxedDescriptor;
143
- export declare const structT: (ownership?: Ownership, options?: StructOptions) => StructDescriptor;
144
- export declare const fundamentalT: (sharedLibrary: string, refFnName: string, unrefFnName: string, options?: FundamentalOptions) => FundamentalDescriptor;
145
- export declare const arrayT: (itemDescriptor: Descriptor, arrayKind?: ArrayKind, ownership?: Ownership, options?: ArrayOptions) => ArrayDescriptor;
146
- export declare const listT: (itemDescriptor: Descriptor, ownership?: Ownership) => ArrayDescriptor;
147
- export declare const slistT: (itemDescriptor: Descriptor, ownership?: Ownership) => ArrayDescriptor;
148
- export declare const ptrArrayT: (itemDescriptor: Descriptor, ownership?: Ownership) => ArrayDescriptor;
149
- export declare const gArrayT: (itemDescriptor: Descriptor, ownership?: Ownership, elementSize?: number) => ArrayDescriptor;
150
- export declare const byteArrayT: (ownership?: Ownership) => ArrayDescriptor;
151
- export declare const sizedArrayT: (itemDescriptor: Descriptor, sizeParamIndex: number, ownership?: Ownership, elementSize?: number) => ArrayDescriptor;
152
- export declare const fixedArrayT: (itemDescriptor: Descriptor, fixedSize: number, ownership?: Ownership, elementSize?: number) => ArrayDescriptor;
153
- export declare const callbackT: (argDescriptors: Descriptor[], returnDescriptor: Descriptor, options?: CallbackOptions) => CallbackDescriptor;
154
- export {};
122
+ declare const int8T: Int8Descriptor;
123
+ declare const uint8T: Uint8Descriptor;
124
+ declare const int16T: Int16Descriptor;
125
+ declare const uint16T: Uint16Descriptor;
126
+ declare const int32T: Int32Descriptor;
127
+ declare const uint32T: Uint32Descriptor;
128
+ declare const int64T: Int64Descriptor;
129
+ declare const uint64T: Uint64Descriptor;
130
+ declare const bigint64T: BigInt64Descriptor;
131
+ declare const biguint64T: BigUint64Descriptor;
132
+ declare const gtypeT: TypeDescriptor;
133
+ declare const float32T: Float32Descriptor;
134
+ declare const float64T: Float64Descriptor;
135
+ declare const booleanT: BooleanDescriptor;
136
+ declare const voidT: VoidDescriptor;
137
+ declare const unicharT: UnicharDescriptor;
138
+ declare const bufferT: BufferDescriptor;
139
+ declare const stringT: (ownership?: Ownership, length?: number) => StringDescriptor;
140
+ declare const objectT: (ownership?: Ownership) => ObjectDescriptor;
141
+ declare const refT: (innerDescriptor: Descriptor, isInout?: boolean) => RefDescriptor;
142
+ declare const hashTableT: (keyDescriptor: Descriptor, valueDescriptor: Descriptor, ownership?: Ownership) => HashTableDescriptor;
143
+ declare const enumT: (sharedLibrary: string, typeFnName: string, isSigned: boolean) => EnumDescriptor;
144
+ declare const flagsT: (sharedLibrary: string, typeFnName: string, isSigned: boolean) => FlagsDescriptor;
145
+ declare const boxedT: (typeName: string, options?: BoxedOptions) => BoxedDescriptor;
146
+ declare const structT: (ownership?: Ownership, options?: StructOptions) => StructDescriptor;
147
+ declare const fundamentalT: (sharedLibrary: string, refFnName: string, unrefFnName: string, options?: FundamentalOptions) => FundamentalDescriptor;
148
+ declare const arrayT: (itemDescriptor: Descriptor, arrayKind?: ArrayKind, ownership?: Ownership, options?: ArrayOptions) => ArrayDescriptor;
149
+ declare const listT: (itemDescriptor: Descriptor, ownership?: Ownership) => ArrayDescriptor;
150
+ declare const slistT: (itemDescriptor: Descriptor, ownership?: Ownership) => ArrayDescriptor;
151
+ declare const ptrArrayT: (itemDescriptor: Descriptor, ownership?: Ownership) => ArrayDescriptor;
152
+ declare const gArrayT: (itemDescriptor: Descriptor, ownership?: Ownership, elementSize?: number) => ArrayDescriptor;
153
+ declare const byteArrayT: (ownership?: Ownership) => ArrayDescriptor;
154
+ declare const sizedArrayT: (itemDescriptor: Descriptor, sizeParamIndex: number, ownership?: Ownership, elementSize?: number) => ArrayDescriptor;
155
+ declare const fixedArrayT: (itemDescriptor: Descriptor, fixedSize: number, ownership?: Ownership, elementSize?: number) => ArrayDescriptor;
156
+ declare const callbackT: (argDescriptors: Descriptor[], returnDescriptor: Descriptor, options?: CallbackOptions) => CallbackDescriptor;
157
+ export { int8T, uint8T, int16T, uint16T, int32T, uint32T, int64T, uint64T, bigint64T, biguint64T, gtypeT, float32T, float64T, booleanT, voidT, unicharT, bufferT, stringT, objectT, refT, hashTableT, enumT, flagsT, boxedT, structT, fundamentalT, arrayT, listT, slistT, ptrArrayT, gArrayT, byteArrayT, sizedArrayT, fixedArrayT, callbackT, type Int8Descriptor, type Uint8Descriptor, type Int16Descriptor, type Uint16Descriptor, type Int32Descriptor, type Uint32Descriptor, type Int64Descriptor, type Uint64Descriptor, type BigInt64Descriptor, type BigUint64Descriptor, type Float32Descriptor, type Float64Descriptor, type EnumDescriptor, type FlagsDescriptor, type BooleanDescriptor, type StringDescriptor, type ObjectDescriptor, type UnicharDescriptor, type VoidDescriptor, type BufferDescriptor, type BoxedDescriptor, type StructDescriptor, type FundamentalDescriptor, type ArrayDescriptor, type HashTableDescriptor, type CallbackDescriptor, type RefDescriptor, type TypeDescriptor, };
155
158
  //# sourceMappingURL=descriptors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"descriptors.d.ts","sourceRoot":"","sources":["../src/descriptors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AACnE,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AACrE,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AACrE,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AACvE,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AACrE,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AACvE,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AACrE,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AACvE,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAAC;AAC3E,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAAC;AAC7E,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AACzE,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AACzE,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AACnE,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AACrE,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AACzE,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AACvE,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AACzE,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AACnE,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AACvE,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AACrE,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AACrG,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAC/G,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AACrE,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAAC;AAC7E,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAAC;AAC3E,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAElE,KAAK,YAAY,GAAG;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,eAAe,GAAG;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACvC,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B,CAAC;AAEF,KAAK,aAAa,GAAG;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,cAAiC,CAAC;AACtD,eAAO,MAAM,MAAM,EAAE,eAAmC,CAAC;AACzD,eAAO,MAAM,MAAM,EAAE,eAAmC,CAAC;AACzD,eAAO,MAAM,OAAO,EAAE,gBAAqC,CAAC;AAC5D,eAAO,MAAM,MAAM,EAAE,eAAmC,CAAC;AACzD,eAAO,MAAM,OAAO,EAAE,gBAAqC,CAAC;AAC5D,eAAO,MAAM,MAAM,EAAE,eAAmC,CAAC;AACzD,eAAO,MAAM,OAAO,EAAE,gBAAqC,CAAC;AAC5D,eAAO,MAAM,SAAS,EAAE,kBAAyC,CAAC;AAClE,eAAO,MAAM,UAAU,EAAE,mBAA2C,CAAC;AACrE,eAAO,MAAM,MAAM,EAAE,cAAkD,CAAC;AACxE,eAAO,MAAM,QAAQ,EAAE,iBAAuC,CAAC;AAC/D,eAAO,MAAM,QAAQ,EAAE,iBAAuC,CAAC;AAC/D,eAAO,MAAM,QAAQ,EAAE,iBAAuC,CAAC;AAC/D,eAAO,MAAM,KAAK,EAAE,cAAiC,CAAC;AACtD,eAAO,MAAM,QAAQ,EAAE,iBAAuC,CAAC;AAC/D,eAAO,MAAM,OAAO,EAAE,gBAAqC,CAAC;AAE5D,eAAO,MAAM,OAAO,eAAe,SAAS,WAAwB,MAAM,KAAG,gBACmB,CAAC;AAEjG,eAAO,MAAM,OAAO,eAAe,SAAS,KAAgB,gBAAmD,CAAC;AAEhH,eAAO,MAAM,IAAI,oBAAqB,UAAU,sBAAkB,aAC0B,CAAC;AAE7F,eAAO,MAAM,UAAU,kBACJ,UAAU,mBACR,UAAU,cAChB,SAAS,KACrB,mBAKD,CAAC;AAEH,eAAO,MAAM,KAAK,kBAAmB,MAAM,iBAAiB,MAAM,UAAU,OAAO,KAAG,cAKpF,CAAC;AAEH,eAAO,MAAM,MAAM,kBAAmB,MAAM,iBAAiB,MAAM,UAAU,OAAO,KAAG,eAKrF,CAAC;AAEH,eAAO,MAAM,MAAM,aAAc,MAAM,YAAW,YAAY,KAAQ,eAYrE,CAAC;AAEF,eAAO,MAAM,OAAO,eAAe,SAAS,YAAwB,aAAa,KAAQ,gBAMxF,CAAC;AAEF,eAAO,MAAM,YAAY,kBACN,MAAM,aACV,MAAM,eACJ,MAAM,YACV,kBAAkB,KAC5B,qBAMF,CAAC;AAEF,eAAO,MAAM,MAAM,mBACC,UAAU,cACf,SAAS,cACT,SAAS,YACV,YAAY,KACvB,eAMF,CAAC;AAEF,eAAO,MAAM,KAAK,mBAAoB,UAAU,cAAa,SAAS,KAAgB,eACxC,CAAC;AAE/C,eAAO,MAAM,MAAM,mBAAoB,UAAU,cAAa,SAAS,KAAgB,eACxC,CAAC;AAEhD,eAAO,MAAM,SAAS,mBAAoB,UAAU,cAAa,SAAS,KAAgB,eACxC,CAAC;AAEnD,eAAO,MAAM,OAAO,mBACA,UAAU,cACf,SAAS,gBACN,MAAM,KACrB,eACqG,CAAC;AAEzG,eAAO,MAAM,UAAU,eAAe,SAAS,KAAgB,eACpB,CAAC;AAE5C,eAAO,MAAM,WAAW,mBACJ,UAAU,kBACV,MAAM,cACX,SAAS,gBACN,MAAM,KACrB,eAA8F,CAAC;AAElG,eAAO,MAAM,WAAW,mBACJ,UAAU,aACf,MAAM,cACN,SAAS,gBACN,MAAM,KACrB,eAAyF,CAAC;AAE7F,eAAO,MAAM,SAAS,mBACF,UAAU,EAAE,oBACV,UAAU,YAClB,eAAe,KAC1B,kBAMF,CAAC"}
1
+ {"version":3,"file":"descriptors.d.ts","sourceRoot":"","sources":["../src/descriptors.ts"],"names":[],"mappings":"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"}