behavior-contracts 0.2.5 → 0.3.0

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 (48) hide show
  1. package/dist/expr-eval.d.ts +28 -0
  2. package/dist/expr-eval.d.ts.map +1 -1
  3. package/dist/expr-eval.js +150 -90
  4. package/dist/expr-eval.js.map +1 -1
  5. package/dist/generator/emit-raw-abi-go.d.ts +45 -0
  6. package/dist/generator/emit-raw-abi-go.d.ts.map +1 -0
  7. package/dist/generator/emit-raw-abi-go.js +345 -0
  8. package/dist/generator/emit-raw-abi-go.js.map +1 -0
  9. package/dist/generator/emit-raw-abi-rust.d.ts +45 -0
  10. package/dist/generator/emit-raw-abi-rust.d.ts.map +1 -0
  11. package/dist/generator/emit-raw-abi-rust.js +380 -0
  12. package/dist/generator/emit-raw-abi-rust.js.map +1 -0
  13. package/dist/generator/emit-straightline-go.d.ts.map +1 -1
  14. package/dist/generator/emit-straightline-go.js +63 -31
  15. package/dist/generator/emit-straightline-go.js.map +1 -1
  16. package/dist/generator/emit-straightline-php.d.ts.map +1 -1
  17. package/dist/generator/emit-straightline-php.js +13 -4
  18. package/dist/generator/emit-straightline-php.js.map +1 -1
  19. package/dist/generator/emit-straightline-python.d.ts.map +1 -1
  20. package/dist/generator/emit-straightline-python.js +14 -4
  21. package/dist/generator/emit-straightline-python.js.map +1 -1
  22. package/dist/generator/emit-straightline-rust.d.ts.map +1 -1
  23. package/dist/generator/emit-straightline-rust.js +111 -43
  24. package/dist/generator/emit-straightline-rust.js.map +1 -1
  25. package/dist/generator/emit-straightline-typed-go.d.ts +95 -2
  26. package/dist/generator/emit-straightline-typed-go.d.ts.map +1 -1
  27. package/dist/generator/emit-straightline-typed-go.js +31 -0
  28. package/dist/generator/emit-straightline-typed-go.js.map +1 -1
  29. package/dist/generator/emit-straightline-typed-rust.d.ts +98 -2
  30. package/dist/generator/emit-straightline-typed-rust.d.ts.map +1 -1
  31. package/dist/generator/emit-straightline-typed-rust.js +30 -0
  32. package/dist/generator/emit-straightline-typed-rust.js.map +1 -1
  33. package/dist/generator/emit-straightline-typescript.d.ts.map +1 -1
  34. package/dist/generator/emit-straightline-typescript.js +81 -45
  35. package/dist/generator/emit-straightline-typescript.js.map +1 -1
  36. package/dist/generator/index.d.ts +4 -2
  37. package/dist/generator/index.d.ts.map +1 -1
  38. package/dist/generator/index.js +11 -2
  39. package/dist/generator/index.js.map +1 -1
  40. package/dist/index.d.ts +1 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +1 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/primitives.d.ts +53 -62
  45. package/dist/primitives.d.ts.map +1 -1
  46. package/dist/primitives.js +85 -91
  47. package/dist/primitives.js.map +1 -1
  48. package/package.json +1 -1
@@ -31,6 +31,34 @@ export declare function cmpCodePoints(a: string, b: string): -1 | 0 | 1;
31
31
  * pollution の温床でもある)。全言語で `FORBIDDEN_KEY` に倒して一致させる。
32
32
  */
33
33
  export declare const FORBIDDEN_OBJECT_KEY = "__proto__";
34
+ /** add/sub/mul(int×int checked, float×float finite, 混在 TYPE_MISMATCH)。 */
35
+ export declare function arithCore(op: "add" | "sub" | "mul", a: Value, b: Value): Value;
36
+ /** 単項マイナス。 */
37
+ export declare function negCore(a: Value): Value;
38
+ /** div(常に float。0除算は NaN/Inf 規則で Failure)。 */
39
+ export declare function divCore(a: Value, b: Value): Value;
40
+ /** mod(truncated、符号は被除数。int mod 0 は MOD_ZERO)。 */
41
+ export declare function modCore(a: Value, b: Value): Value;
42
+ /** concat(n-ary。string のみ。arity 検査は呼び側)。 */
43
+ export declare function concatCore(parts: Value[]): Value;
44
+ /** eq/ne。 */
45
+ export declare function eqNeCore(op: "eq" | "ne", a: Value, b: Value): Value;
46
+ /** lt/le/gt/ge(同一型 int/float/string、string は code-point 順)。 */
47
+ export declare function compareCore(op: "lt" | "le" | "gt" | "ge", a: Value, b: Value): Value;
48
+ /** len(配列のみ)。 */
49
+ export declare function lenCore(a: Value): Value;
50
+ /** bool ゲート(短絡系の native 制御フローが使う)。 */
51
+ export declare function requireBoolCore(v: Value, ctx: string): boolean;
52
+ /** obj 構築(キー順・__proto__ は値評価前に FORBIDDEN_KEY)。entries は [key, 遅延評価 thunk]。 */
53
+ export declare function makeObjCore(entries: Array<[string, () => Value]>): Value;
54
+ /** {int:"…"} リテラル。 */
55
+ export declare function intLitCore(s: string): Value;
56
+ /** {float:n} リテラル。 */
57
+ export declare function floatLitCore(n: number): Value;
58
+ /** bare number リテラル(§2.3 分類)。 */
59
+ export declare function numberLitCore(n: number): Value;
60
+ /** ref/refOpt の native scope walk(optional=true は中間 null を null 伝播)。path は静的 string[]。 */
61
+ export declare function refCore(path: string[], scope: Scope, optional: boolean): Value;
34
62
  export declare function evaluate(node: unknown, scope?: Scope): Value;
35
63
  export declare function encodeValue(v: Value): unknown;
36
64
  //# sourceMappingURL=expr-eval.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"expr-eval.d.ts","sourceRoot":"","sources":["../src/expr-eval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,MAAM,MAAM,KAAK,GACb,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,KAAK,EAAE,GACP;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;CAAE,CAAC;AAE3B,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAG1C,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,YAAY,GACZ,UAAU,GACV,gBAAgB,GAChB,eAAe,GACf,UAAU,GACV,cAAc,GACd,iBAAiB,GACjB,YAAY,GACZ,cAAc,GACd,iBAAiB,GACjB,eAAe,CAAC;AAEpB,qBAAa,WAAY,SAAQ,KAAK;IACpC,IAAI,EAAE,WAAW,CAAC;gBACN,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM;CAK/C;AAgCD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAa9D;AAqBD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAGhD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,GAAE,KAAU,GAAG,KAAK,CA6LhE;AAoCD,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAa7C"}
1
+ {"version":3,"file":"expr-eval.d.ts","sourceRoot":"","sources":["../src/expr-eval.ts"],"names":[],"mappings":"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"}
package/dist/expr-eval.js CHANGED
@@ -96,6 +96,140 @@ function isPlainObject(v) {
96
96
  */
97
97
  export const FORBIDDEN_OBJECT_KEY = "__proto__";
98
98
  // ── 評価器本体 ───────────────────────────────────────────────────────────────
99
+ // ── 値受けオペレータ core(single-source: evaluate と native cgp が共有)─────────────
100
+ // codegen(A2 ts)の native 経路は被演算子を評価済み Value にしてから下の core を呼び、evaluate の
101
+ // 各アームも同じ core を呼ぶ。意味論(overflow/finite/code-point 順/FORBIDDEN_KEY 等)は一本。
102
+ /** add/sub/mul(int×int checked, float×float finite, 混在 TYPE_MISMATCH)。 */
103
+ export function arithCore(op, a, b) {
104
+ if (typeof a === "bigint" && typeof b === "bigint") {
105
+ const r = op === "add" ? a + b : op === "sub" ? a - b : a * b;
106
+ return checkI64(r);
107
+ }
108
+ if (typeof a === "number" && typeof b === "number") {
109
+ const r = op === "add" ? a + b : op === "sub" ? a - b : a * b;
110
+ return checkFinite(r);
111
+ }
112
+ fail("TYPE_MISMATCH", `${op}: int×int か float×float(got ${typeName(a)}×${typeName(b)})`);
113
+ }
114
+ /** 単項マイナス。 */
115
+ export function negCore(a) {
116
+ if (typeof a === "bigint")
117
+ return checkI64(-a);
118
+ if (typeof a === "number")
119
+ return checkFinite(-a);
120
+ fail("TYPE_MISMATCH", `neg: numeric expected, got ${typeName(a)}`);
121
+ }
122
+ /** div(常に float。0除算は NaN/Inf 規則で Failure)。 */
123
+ export function divCore(a, b) {
124
+ return checkFinite(widenToFloat(a) / widenToFloat(b));
125
+ }
126
+ /** mod(truncated、符号は被除数。int mod 0 は MOD_ZERO)。 */
127
+ export function modCore(a, b) {
128
+ if (typeof a === "bigint" && typeof b === "bigint") {
129
+ if (b === 0n)
130
+ fail("MOD_ZERO", "int mod by zero");
131
+ return checkI64(a % b);
132
+ }
133
+ if (typeof a === "number" && typeof b === "number")
134
+ return checkFinite(a % b);
135
+ fail("TYPE_MISMATCH", `mod: int×int か float×float(got ${typeName(a)}×${typeName(b)})`);
136
+ }
137
+ /** concat(n-ary。string のみ。arity 検査は呼び側)。 */
138
+ export function concatCore(parts) {
139
+ for (const p of parts)
140
+ if (typeof p !== "string")
141
+ fail("TYPE_MISMATCH", `concat: string のみ(got ${typeName(p)})`);
142
+ return parts.join("");
143
+ }
144
+ /** eq/ne。 */
145
+ export function eqNeCore(op, a, b) {
146
+ const equal = valueEquals(a, b);
147
+ return op === "eq" ? equal : !equal;
148
+ }
149
+ /** lt/le/gt/ge(同一型 int/float/string、string は code-point 順)。 */
150
+ export function compareCore(op, a, b) {
151
+ let c;
152
+ if (typeof a === "bigint" && typeof b === "bigint")
153
+ c = a < b ? -1 : a > b ? 1 : 0;
154
+ else if (typeof a === "number" && typeof b === "number")
155
+ c = a < b ? -1 : a > b ? 1 : 0;
156
+ else if (typeof a === "string" && typeof b === "string")
157
+ c = cmpCodePoints(a, b);
158
+ else
159
+ fail("TYPE_MISMATCH", `${op}: 同一型の int/float/string のみ(got ${typeName(a)}×${typeName(b)})`);
160
+ switch (op) {
161
+ case "lt": return c < 0;
162
+ case "le": return c <= 0;
163
+ case "gt": return c > 0;
164
+ default: return c >= 0;
165
+ }
166
+ }
167
+ /** len(配列のみ)。 */
168
+ export function lenCore(a) {
169
+ if (!Array.isArray(a))
170
+ fail("TYPE_MISMATCH", `len: 配列のみ(got ${typeName(a)})`);
171
+ return BigInt(a.length);
172
+ }
173
+ /** bool ゲート(短絡系の native 制御フローが使う)。 */
174
+ export function requireBoolCore(v, ctx) {
175
+ return requireBool(v, ctx);
176
+ }
177
+ /** obj 構築(キー順・__proto__ は値評価前に FORBIDDEN_KEY)。entries は [key, 遅延評価 thunk]。 */
178
+ export function makeObjCore(entries) {
179
+ const out = {};
180
+ for (const [k, thunk] of entries) {
181
+ if (k === FORBIDDEN_OBJECT_KEY)
182
+ fail("FORBIDDEN_KEY", `obj key "${FORBIDDEN_OBJECT_KEY}" is forbidden (fail-closed)`);
183
+ out[k] = thunk();
184
+ }
185
+ return out;
186
+ }
187
+ /** {int:"…"} リテラル。 */
188
+ export function intLitCore(s) {
189
+ let v;
190
+ try {
191
+ v = BigInt(s);
192
+ }
193
+ catch {
194
+ fail("INVALID_LITERAL", `invalid int literal: ${s}`);
195
+ }
196
+ return checkI64(v);
197
+ }
198
+ /** {float:n} リテラル。 */
199
+ export function floatLitCore(n) {
200
+ return checkFinite(n);
201
+ }
202
+ /** bare number リテラル(§2.3 分類)。 */
203
+ export function numberLitCore(n) {
204
+ if (Number.isInteger(n)) {
205
+ if (!Number.isSafeInteger(n))
206
+ fail("INVALID_LITERAL", `integral number literal ${n} exceeds safe range; use {int:"..."}`);
207
+ return BigInt(n);
208
+ }
209
+ return checkFinite(n);
210
+ }
211
+ /** ref/refOpt の native scope walk(optional=true は中間 null を null 伝播)。path は静的 string[]。 */
212
+ export function refCore(path, scope, optional) {
213
+ if (path.length === 0)
214
+ fail("INVALID_NODE", `${optional ? "refOpt" : "ref"} expects a non-empty string path`);
215
+ const [head, ...rest] = path;
216
+ if (!Object.prototype.hasOwnProperty.call(scope, head))
217
+ fail("UNKNOWN_BINDING", `unknown binding: ${head}`);
218
+ let cur = scope[head];
219
+ for (const seg of rest) {
220
+ if (cur === null) {
221
+ if (optional)
222
+ return null;
223
+ fail("NULL_REF", `null intermediate at .${seg}(?. を使う)`);
224
+ }
225
+ if (!isPlainObject(cur))
226
+ fail("TYPE_MISMATCH", `cannot access .${seg} on ${typeName(cur)}`);
227
+ if (!Object.prototype.hasOwnProperty.call(cur, seg))
228
+ fail("MISSING_PROP", `missing property .${seg}`);
229
+ cur = cur[seg];
230
+ }
231
+ return cur;
232
+ }
99
233
  export function evaluate(node, scope = {}) {
100
234
  // リテラル
101
235
  if (node === null)
@@ -126,19 +260,12 @@ export function evaluate(node, scope = {}) {
126
260
  case "int": {
127
261
  if (typeof arg !== "string")
128
262
  fail("INVALID_NODE", "{int: ...} expects a string");
129
- let v;
130
- try {
131
- v = BigInt(arg);
132
- }
133
- catch {
134
- fail("INVALID_LITERAL", `invalid int literal: ${arg}`);
135
- }
136
- return checkI64(v);
263
+ return intLitCore(arg);
137
264
  }
138
265
  case "float": {
139
266
  if (typeof arg !== "number")
140
267
  fail("INVALID_NODE", "{float: ...} expects a number");
141
- return checkFinite(arg);
268
+ return floatLitCore(arg);
142
269
  }
143
270
  // ── 参照 ──
144
271
  case "ref":
@@ -146,38 +273,16 @@ export function evaluate(node, scope = {}) {
146
273
  const path = argArray(op, arg);
147
274
  if (path.length === 0 || !path.every((p) => typeof p === "string"))
148
275
  fail("INVALID_NODE", `${op} expects a non-empty string path`);
149
- const [head, ...rest] = path;
150
- if (!Object.prototype.hasOwnProperty.call(scope, head))
151
- fail("UNKNOWN_BINDING", `unknown binding: ${head}`);
152
- let cur = scope[head];
153
- for (const seg of rest) {
154
- if (cur === null) {
155
- if (op === "refOpt")
156
- return null; // ?. の null 伝播
157
- fail("NULL_REF", `null intermediate at .${seg}(?. を使う)`);
158
- }
159
- if (!isPlainObject(cur))
160
- fail("TYPE_MISMATCH", `cannot access .${seg} on ${typeName(cur)}`);
161
- if (!Object.prototype.hasOwnProperty.call(cur, seg))
162
- fail("MISSING_PROP", `missing property .${seg}`);
163
- cur = cur[seg];
164
- }
165
- return cur;
276
+ return refCore(path, scope, op === "refOpt");
166
277
  }
167
278
  // ── 構築 ──
168
279
  case "obj": {
169
280
  if (!isPlainObject(arg))
170
281
  fail("INVALID_NODE", "{obj: ...} expects an object");
171
- const out = {};
172
282
  // own key の走査は Object.keys(JSON.parse は "__proto__" を own enumerable として作る)。
173
- for (const k of Object.keys(arg)) {
174
- if (k === FORBIDDEN_OBJECT_KEY)
175
- fail("FORBIDDEN_KEY", `obj key "${FORBIDDEN_OBJECT_KEY}" is forbidden (fail-closed)`);
176
- // 代入も明示 own property に(prototype セッタを踏まないよう defineProperty ではなく
177
- // 事前 reject で担保。ここに来る時点で k は __proto__ ではない)。
178
- out[k] = evaluate(arg[k], scope);
179
- }
180
- return out;
283
+ // 構築・FORBIDDEN_KEY 判定は makeObjCore に単一ソース化(native cgp と共有)。
284
+ const a = arg;
285
+ return makeObjCore(Object.keys(a).map((k) => [k, () => evaluate(a[k], scope)]));
181
286
  }
182
287
  case "arr":
183
288
  return argArray(op, arg).map((e) => evaluate(e, scope));
@@ -186,40 +291,17 @@ export function evaluate(node, scope = {}) {
186
291
  case "sub":
187
292
  case "mul": {
188
293
  const [a, b] = evalBinary(op, arg, scope);
189
- if (typeof a === "bigint" && typeof b === "bigint") {
190
- const r = op === "add" ? a + b : op === "sub" ? a - b : a * b;
191
- return checkI64(r);
192
- }
193
- if (typeof a === "number" && typeof b === "number") {
194
- const r = op === "add" ? a + b : op === "sub" ? a - b : a * b;
195
- return checkFinite(r);
196
- }
197
- fail("TYPE_MISMATCH", `${op}: int×int か float×float(got ${typeName(a)}×${typeName(b)}。混在は明示変換が必要)`);
198
- }
199
- case "neg": {
200
- const a = evaluate(argUnary(op, arg), scope);
201
- if (typeof a === "bigint")
202
- return checkI64(-a);
203
- if (typeof a === "number")
204
- return checkFinite(-a);
205
- fail("TYPE_MISMATCH", `neg: numeric expected, got ${typeName(a)}`);
294
+ return arithCore(op, a, b);
206
295
  }
296
+ case "neg":
297
+ return negCore(evaluate(argUnary(op, arg), scope));
207
298
  case "div": {
208
- // 常に float 除算(TS 意味論)。int は正確に widening、0 除算は NaN/Inf 規則で Failure
209
299
  const [a, b] = evalBinary(op, arg, scope);
210
- return checkFinite(widenToFloat(a) / widenToFloat(b));
300
+ return divCore(a, b);
211
301
  }
212
302
  case "mod": {
213
- // truncated division の剰余。符号は被除数(TS/Rust/Go/PHP と一致。Python は要注意)
214
303
  const [a, b] = evalBinary(op, arg, scope);
215
- if (typeof a === "bigint" && typeof b === "bigint") {
216
- if (b === 0n)
217
- fail("MOD_ZERO", "int mod by zero");
218
- return checkI64(a % b); // JS bigint % は truncated
219
- }
220
- if (typeof a === "number" && typeof b === "number")
221
- return checkFinite(a % b);
222
- fail("TYPE_MISMATCH", `mod: int×int か float×float(got ${typeName(a)}×${typeName(b)})`);
304
+ return modCore(a, b);
223
305
  }
224
306
  // ── 文字列 ──
225
307
  case "concat": {
@@ -228,38 +310,20 @@ export function evaluate(node, scope = {}) {
228
310
  if (rawParts.length < 2)
229
311
  fail("INVALID_NODE", `concat expects >= 2 args, got ${rawParts.length}`);
230
312
  const parts = rawParts.map((e) => evaluate(e, scope));
231
- for (const p of parts)
232
- if (typeof p !== "string")
233
- fail("TYPE_MISMATCH", `concat: string のみ(got ${typeName(p)}。数値の暗黙 toString は存在しない)`);
234
- return parts.join("");
313
+ return concatCore(parts);
235
314
  }
236
315
  // ── 比較 ──
237
316
  case "eq":
238
317
  case "ne": {
239
318
  const [a, b] = evalBinary(op, arg, scope);
240
- const equal = valueEquals(a, b);
241
- return op === "eq" ? equal : !equal;
319
+ return eqNeCore(op, a, b);
242
320
  }
243
321
  case "lt":
244
322
  case "le":
245
323
  case "gt":
246
324
  case "ge": {
247
325
  const [a, b] = evalBinary(op, arg, scope);
248
- let c;
249
- if (typeof a === "bigint" && typeof b === "bigint")
250
- c = a < b ? -1 : a > b ? 1 : 0;
251
- else if (typeof a === "number" && typeof b === "number")
252
- c = a < b ? -1 : a > b ? 1 : 0;
253
- else if (typeof a === "string" && typeof b === "string")
254
- c = cmpCodePoints(a, b);
255
- else
256
- fail("TYPE_MISMATCH", `${op}: 同一型の int/float/string のみ(got ${typeName(a)}×${typeName(b)})`);
257
- switch (op) {
258
- case "lt": return c < 0;
259
- case "le": return c <= 0;
260
- case "gt": return c > 0;
261
- case "ge": return c >= 0;
262
- }
326
+ return compareCore(op, a, b);
263
327
  }
264
328
  // ── bool / null(短絡評価)──
265
329
  case "and":
@@ -286,12 +350,8 @@ export function evaluate(node, scope = {}) {
286
350
  return evaluate(c ? arg[1] : arg[2], scope); // 採用側のみ評価
287
351
  }
288
352
  // ── その他 ──
289
- case "len": {
290
- const a = evaluate(argUnary(op, arg), scope);
291
- if (!Array.isArray(a))
292
- fail("TYPE_MISMATCH", `len: 配列のみ(string length は v1 に存在しない。got ${typeName(a)})`);
293
- return BigInt(a.length);
294
- }
353
+ case "len":
354
+ return lenCore(evaluate(argUnary(op, arg), scope));
295
355
  default:
296
356
  fail("UNKNOWN_OP", `unknown operator: ${op}(fail-closed)`);
297
357
  }
@@ -1 +1 @@
1
- {"version":3,"file":"expr-eval.js","sourceRoot":"","sources":["../src/expr-eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expr-eval.js","sourceRoot":"","sources":["../src/expr-eval.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * emit-raw-abi-go.ts — Go RAW handler ABI emitter (bc#76): the de-boxed typed path.
3
+ *
4
+ * # What this replaces
5
+ *
6
+ * The boxed typed emitter (emit-straightline-typed-go.ts) generates
7
+ * `marshal_T*(raw Value) (T*, error)`: the handler builds a full dynamic `*Obj` Value tree
8
+ * and the marshaller WALKS it into a struct — a Value->struct conversion LAYERED on top of
9
+ * boxing. The residual ~22% Rust gap #75 measured is that Value/*Obj clone at the ABI.
10
+ *
11
+ * # What this emits
12
+ *
13
+ * A RAW module that materializes structs DIRECTLY from a `RawValue` (native-backed, NOT a
14
+ * Value/*Obj — see go/rawabi.go). The generated code:
15
+ *
16
+ * - `marshal_raw_T*(raw dslcontracts.RawValue) (T*, error)`: reads each field via
17
+ * `RawRow.Field` / native scalar type-switch / `[]RawValue` iteration — straight into
18
+ * the concrete struct. It NEVER constructs a `*Obj`/`Value` on the row data plane.
19
+ * - `run_typed_raw_<comp>(handlers RawComponentExec, input *Obj) (Value, error)`: drives
20
+ * the plan with the RunPlan primitive (plan SSoT, reused), evaluates ports with the
21
+ * native/primitive straight-line dialect (unchanged — ports are Value-space, off the
22
+ * row data plane), calls the RAW handler (`ExecRawHandler` -> `RawValue`), and
23
+ * materializes the node struct via `marshal_raw_T*` at the boundary. The output is
24
+ * assembled as a struct and serialized to a Value ONLY at the final return boundary
25
+ * (the equivalence pin), exactly as the boxed typed path does — so the OBSERVED result
26
+ * equals run_behavior while the data plane never boxed.
27
+ * - `BindRaw(handlers RawComponentExec) map[string]func(*Obj)(Value,error)`: the raw
28
+ * dispatch surface (mirrors Bind).
29
+ *
30
+ * # Scope
31
+ *
32
+ * The raw de-box covers the componentRef read-handler shape — exactly graphddb's row
33
+ * hydrator (AttributeValue -> struct) where the measured gap lives. Typed map/cond nodes
34
+ * are out of raw scope for now: the emitter LOUD-fails (UNSUPPORTED_NODE_STRAIGHTLINE) so a
35
+ * consumer regenerates those components on the boxed typed path rather than getting a module
36
+ * that silently re-boxes. TS/py/php are unaffected (runtime de-box targets are go/rust).
37
+ */
38
+ import type { EmitterPlugin } from "./core.js";
39
+ /**
40
+ * goRawAbiEmitter — language id `go-typed-raw` (bc#76). Emits the straight-line body (for
41
+ * untyped components / helpers) plus the RAW-ABI de-boxed layer (struct materialized directly
42
+ * from RawValue) and the BindRaw surface. Requires at least one outType/outputType annotation.
43
+ */
44
+ export declare const goRawAbiEmitter: EmitterPlugin;
45
+ //# sourceMappingURL=emit-raw-abi-go.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-raw-abi-go.d.ts","sourceRoot":"","sources":["../../src/generator/emit-raw-abi-go.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAuY5D;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,aAM7B,CAAC"}