Skip to content

Commit e00380d

Browse files
committed
napi: conversion for wireToRust and gateToRust
1 parent 8034740 commit e00380d

File tree

1 file changed

+50
-6
lines changed

1 file changed

+50
-6
lines changed
Lines changed: 50 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,75 @@
11
import { fieldsFromRustFlat, fieldsToRustFlat } from './bindings/conversion-base.js';
2+
import { Gate, Wire } from './bindings/kimchi-types.js';
3+
import { mapTuple } from './bindings/util.js';
24

35
export { bindingsNapi };
46

57
function bindingsNapi(napi: any) {
68
return {
79
fp: {
810
vectorToRust: (fields: any) => {
9-
console.log('values going in ', fields);
11+
//console.log('values going in ', fields);
1012
let res = fieldsToRustFlat(fields);
11-
console.log('values going out ', res);
13+
//console.log('values going out ', res);
1214
return res;
1315
},
1416
vectorFromRust: fieldsFromRustFlat,
17+
wireToRust([, row, col]: Wire) {
18+
return { row, col };
19+
},
20+
gateToRust(gate: Gate): any {
21+
const [, typ, [, ...wires], coeffs] = gate;
22+
const mapped = mapTuple(wires, (wire) => this.wireToRust(wire));
23+
const nativeWires = {
24+
w0: mapped[0],
25+
w1: mapped[1],
26+
w2: mapped[2],
27+
w3: mapped[3],
28+
w4: mapped[4],
29+
w5: mapped[5],
30+
w6: mapped[6],
31+
} as const;
32+
return {
33+
typ,
34+
wires: nativeWires,
35+
coeffs: Array.from(fieldsToRustFlat(coeffs)),
36+
};
37+
},
1538
},
1639
fq: {
1740
vectorToRust: (fields: any) => {
18-
console.log('values going in ', fields);
41+
//console.log('values going in ', fields);
1942
let res = fieldsToRustFlat(fields);
20-
console.log('values going out ', res);
43+
//console.log('values going out ', res);
2144
return res;
2245
},
2346
vectorFromRust: (fieldBytes: any) => {
24-
console.log('values going in ', fieldBytes);
47+
//console.log('values going in ', fieldBytes);
2548
let res = fieldsFromRustFlat(fieldBytes);
26-
console.log('values going out ', res);
49+
//console.log('values going out ', res);
2750
return res;
2851
},
52+
wireToRust([, row, col]: Wire) {
53+
return { row, col };
54+
},
55+
gateToRust(gate: Gate): any {
56+
const [, typ, [, ...wires], coeffs] = gate;
57+
const mapped = mapTuple(wires, (wire) => this.wireToRust(wire));
58+
const nativeWires = {
59+
w0: mapped[0],
60+
w1: mapped[1],
61+
w2: mapped[2],
62+
w3: mapped[3],
63+
w4: mapped[4],
64+
w5: mapped[5],
65+
w6: mapped[6],
66+
} as const;
67+
return {
68+
typ,
69+
wires: nativeWires,
70+
coeffs: Array.from(fieldsToRustFlat(coeffs)),
71+
};
72+
},
2973
},
3074
};
3175
}

0 commit comments

Comments
 (0)