10 if (o.type != msgpack::type::MAP) {
15 for (uint32_t i = 0; i < o.via.map.size; ++i) {
16 if (o.via.map.ptr[i].key.type != msgpack::type::STR) {
20 kvmap.emplace(std::string(o.via.map.ptr[i].key.via.str.ptr, o.via.map.ptr[i].key.via.str.size),
21 &o.via.map.ptr[i].val);
28 std::string
const& struct_name,
29 std::string
const& field_name,
33 auto it = kvmap.find(field_name);
34 if (it != kvmap.end()) {
36 it->second->convert(field);
37 }
catch (
const msgpack::type_error&) {
39 throw_or_abort(
"error converting into field " + struct_name +
"::" + field_name);
41 }
else if (!is_optional) {
42 throw_or_abort(
"missing field: " + struct_name +
"::" + field_name);
48 std::string
const& struct_name,
49 std::string
const& field_name,
53 if (
index >= array.size) {
56 auto element = array.ptr[
index];
58 element.convert(field);
59 }
catch (
const msgpack::type_error&) {
61 throw_or_abort(
"error converting into field " + struct_name +
"::" + field_name);
126 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
130 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
135 if (o.type == msgpack::type::object_type::MAP) {
136 o.via.map.ptr[0].key.convert(
tag);
140 }
catch (
const msgpack::type_error&) {
142 throw_or_abort(
"error converting tag to string for enum 'BinaryFieldOp'");
147 }
else if (
tag ==
"Sub") {
150 }
else if (
tag ==
"Mul") {
153 }
else if (
tag ==
"Div") {
156 }
else if (
tag ==
"IntegerDiv") {
159 }
else if (
tag ==
"Equals") {
162 }
else if (
tag ==
"LessThan") {
165 }
else if (
tag ==
"LessThanEquals") {
249 std::variant<Add, Sub, Mul, Div, Equals, LessThan, LessThanEquals, And, Or, Xor, Shl, Shr> value;
256 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
260 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
265 if (o.type == msgpack::type::object_type::MAP) {
266 o.via.map.ptr[0].key.convert(
tag);
270 }
catch (
const msgpack::type_error&) {
272 throw_or_abort(
"error converting tag to string for enum 'BinaryIntOp'");
277 }
else if (
tag ==
"Sub") {
280 }
else if (
tag ==
"Mul") {
283 }
else if (
tag ==
"Div") {
286 }
else if (
tag ==
"Equals") {
289 }
else if (
tag ==
"LessThan") {
292 }
else if (
tag ==
"LessThanEquals") {
295 }
else if (
tag ==
"And") {
298 }
else if (
tag ==
"Or") {
301 }
else if (
tag ==
"Xor") {
304 }
else if (
tag ==
"Shl") {
307 }
else if (
tag ==
"Shr") {
362 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
366 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
371 if (o.type == msgpack::type::object_type::MAP) {
372 o.via.map.ptr[0].key.convert(
tag);
376 }
catch (
const msgpack::type_error&) {
378 throw_or_abort(
"error converting tag to string for enum 'IntegerBitSize'");
383 }
else if (
tag ==
"U8") {
386 }
else if (
tag ==
"U16") {
389 }
else if (
tag ==
"U32") {
392 }
else if (
tag ==
"U64") {
395 }
else if (
tag ==
"U128") {
422 }
catch (
const msgpack::type_error&) {
436 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
440 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
445 if (o.type == msgpack::type::object_type::MAP) {
446 o.via.map.ptr[0].key.convert(
tag);
450 }
catch (
const msgpack::type_error&) {
452 throw_or_abort(
"error converting tag to string for enum 'BitSize'");
454 if (
tag ==
"Field") {
457 }
else if (
tag ==
"Integer") {
459 if (o.type != msgpack::type::MAP) {
460 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
463 o.via.map.ptr[0].val.convert(v);
464 }
catch (
const msgpack::type_error&) {
466 throw_or_abort(
"error converting into enum variant 'BitSize::Integer'");
488 }
catch (
const msgpack::type_error&) {
504 }
catch (
const msgpack::type_error&) {
518 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
522 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
527 if (o.type == msgpack::type::object_type::MAP) {
528 o.via.map.ptr[0].key.convert(
tag);
532 }
catch (
const msgpack::type_error&) {
534 throw_or_abort(
"error converting tag to string for enum 'MemoryAddress'");
536 if (
tag ==
"Direct") {
538 if (o.type != msgpack::type::MAP) {
539 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
542 o.via.map.ptr[0].val.convert(v);
543 }
catch (
const msgpack::type_error&) {
545 throw_or_abort(
"error converting into enum variant 'MemoryAddress::Direct'");
549 }
else if (
tag ==
"Relative") {
551 if (o.type != msgpack::type::MAP) {
552 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
555 o.via.map.ptr[0].val.convert(v);
556 }
catch (
const msgpack::type_error&) {
558 throw_or_abort(
"error converting into enum variant 'MemoryAddress::Relative'");
578 }
catch (
const msgpack::type_error&) {
580 throw_or_abort(
"error converting into newtype 'SemiFlattenedLength'");
593 std::string name =
"HeapArray";
594 if (o.type == msgpack::type::MAP) {
598 }
else if (o.type == msgpack::type::ARRAY) {
599 auto array = o.via.array;
620 std::string name =
"AES128Encrypt";
621 if (o.type == msgpack::type::MAP) {
627 }
else if (o.type == msgpack::type::ARRAY) {
628 auto array = o.via.array;
647 std::string name =
"Blake2s";
648 if (o.type == msgpack::type::MAP) {
652 }
else if (o.type == msgpack::type::ARRAY) {
653 auto array = o.via.array;
670 std::string name =
"Blake3";
671 if (o.type == msgpack::type::MAP) {
675 }
else if (o.type == msgpack::type::ARRAY) {
676 auto array = o.via.array;
693 std::string name =
"Keccakf1600";
694 if (o.type == msgpack::type::MAP) {
698 }
else if (o.type == msgpack::type::ARRAY) {
699 auto array = o.via.array;
719 std::string name =
"EcdsaSecp256k1";
720 if (o.type == msgpack::type::MAP) {
727 }
else if (o.type == msgpack::type::ARRAY) {
728 auto array = o.via.array;
751 std::string name =
"EcdsaSecp256r1";
752 if (o.type == msgpack::type::MAP) {
759 }
else if (o.type == msgpack::type::ARRAY) {
760 auto array = o.via.array;
781 std::string name =
"MultiScalarMul";
782 if (o.type == msgpack::type::MAP) {
787 }
else if (o.type == msgpack::type::ARRAY) {
788 auto array = o.via.array;
811 std::string name =
"EmbeddedCurveAdd";
812 if (o.type == msgpack::type::MAP) {
821 }
else if (o.type == msgpack::type::ARRAY) {
822 auto array = o.via.array;
844 std::string name =
"Poseidon2Permutation";
845 if (o.type == msgpack::type::MAP) {
849 }
else if (o.type == msgpack::type::ARRAY) {
850 auto array = o.via.array;
868 std::string name =
"Sha256Compression";
869 if (o.type == msgpack::type::MAP) {
874 }
else if (o.type == msgpack::type::ARRAY) {
875 auto array = o.via.array;
896 std::string name =
"ToRadix";
897 if (o.type == msgpack::type::MAP) {
904 }
else if (o.type == msgpack::type::ARRAY) {
905 auto array = o.via.array;
925 Poseidon2Permutation,
935 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
939 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
944 if (o.type == msgpack::type::object_type::MAP) {
945 o.via.map.ptr[0].key.convert(
tag);
949 }
catch (
const msgpack::type_error&) {
951 throw_or_abort(
"error converting tag to string for enum 'BlackBoxOp'");
953 if (
tag ==
"AES128Encrypt") {
955 if (o.type != msgpack::type::MAP) {
956 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
959 o.via.map.ptr[0].val.convert(v);
960 }
catch (
const msgpack::type_error&) {
962 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::AES128Encrypt'");
966 }
else if (
tag ==
"Blake2s") {
968 if (o.type != msgpack::type::MAP) {
969 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
972 o.via.map.ptr[0].val.convert(v);
973 }
catch (
const msgpack::type_error&) {
975 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Blake2s'");
979 }
else if (
tag ==
"Blake3") {
981 if (o.type != msgpack::type::MAP) {
982 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
985 o.via.map.ptr[0].val.convert(v);
986 }
catch (
const msgpack::type_error&) {
988 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Blake3'");
992 }
else if (
tag ==
"Keccakf1600") {
994 if (o.type != msgpack::type::MAP) {
995 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
998 o.via.map.ptr[0].val.convert(v);
999 }
catch (
const msgpack::type_error&) {
1001 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Keccakf1600'");
1005 }
else if (
tag ==
"EcdsaSecp256k1") {
1007 if (o.type != msgpack::type::MAP) {
1008 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1011 o.via.map.ptr[0].val.convert(v);
1012 }
catch (
const msgpack::type_error&) {
1014 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EcdsaSecp256k1'");
1018 }
else if (
tag ==
"EcdsaSecp256r1") {
1020 if (o.type != msgpack::type::MAP) {
1021 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1024 o.via.map.ptr[0].val.convert(v);
1025 }
catch (
const msgpack::type_error&) {
1027 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EcdsaSecp256r1'");
1031 }
else if (
tag ==
"MultiScalarMul") {
1033 if (o.type != msgpack::type::MAP) {
1034 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1037 o.via.map.ptr[0].val.convert(v);
1038 }
catch (
const msgpack::type_error&) {
1040 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::MultiScalarMul'");
1044 }
else if (
tag ==
"EmbeddedCurveAdd") {
1046 if (o.type != msgpack::type::MAP) {
1047 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1050 o.via.map.ptr[0].val.convert(v);
1051 }
catch (
const msgpack::type_error&) {
1053 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EmbeddedCurveAdd'");
1057 }
else if (
tag ==
"Poseidon2Permutation") {
1059 if (o.type != msgpack::type::MAP) {
1060 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1063 o.via.map.ptr[0].val.convert(v);
1064 }
catch (
const msgpack::type_error&) {
1066 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Poseidon2Permutation'");
1070 }
else if (
tag ==
"Sha256Compression") {
1072 if (o.type != msgpack::type::MAP) {
1073 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1076 o.via.map.ptr[0].val.convert(v);
1077 }
catch (
const msgpack::type_error&) {
1079 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Sha256Compression'");
1083 }
else if (
tag ==
"ToRadix") {
1085 if (o.type != msgpack::type::MAP) {
1086 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1089 o.via.map.ptr[0].val.convert(v);
1090 }
catch (
const msgpack::type_error&) {
1092 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::ToRadix'");
1112 }
catch (
const msgpack::type_error&) {
1114 throw_or_abort(
"error converting into newtype 'SemanticLength'");
1119struct HeapValueType;
1132 }
catch (
const msgpack::type_error&) {
1147 std::string name =
"Array";
1148 if (o.type == msgpack::type::MAP) {
1152 }
else if (o.type == msgpack::type::ARRAY) {
1153 auto array = o.via.array;
1169 std::string name =
"Vector";
1170 if (o.type == msgpack::type::MAP) {
1173 }
else if (o.type == msgpack::type::ARRAY) {
1174 auto array = o.via.array;
1189 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
1193 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
1198 if (o.type == msgpack::type::object_type::MAP) {
1199 o.via.map.ptr[0].key.convert(
tag);
1203 }
catch (
const msgpack::type_error&) {
1205 throw_or_abort(
"error converting tag to string for enum 'HeapValueType'");
1207 if (
tag ==
"Simple") {
1209 if (o.type != msgpack::type::MAP) {
1210 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1213 o.via.map.ptr[0].val.convert(v);
1214 }
catch (
const msgpack::type_error&) {
1216 throw_or_abort(
"error converting into enum variant 'HeapValueType::Simple'");
1220 }
else if (
tag ==
"Array") {
1222 if (o.type != msgpack::type::MAP) {
1223 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1226 o.via.map.ptr[0].val.convert(v);
1227 }
catch (
const msgpack::type_error&) {
1229 throw_or_abort(
"error converting into enum variant 'HeapValueType::Array'");
1233 }
else if (
tag ==
"Vector") {
1235 if (o.type != msgpack::type::MAP) {
1236 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1239 o.via.map.ptr[0].val.convert(v);
1240 }
catch (
const msgpack::type_error&) {
1242 throw_or_abort(
"error converting into enum variant 'HeapValueType::Vector'");
1261 std::string name =
"HeapVector";
1262 if (o.type == msgpack::type::MAP) {
1266 }
else if (o.type == msgpack::type::ARRAY) {
1267 auto array = o.via.array;
1287 }
catch (
const msgpack::type_error&) {
1303 }
catch (
const msgpack::type_error&) {
1319 }
catch (
const msgpack::type_error&) {
1333 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
1337 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
1342 if (o.type == msgpack::type::object_type::MAP) {
1343 o.via.map.ptr[0].key.convert(
tag);
1347 }
catch (
const msgpack::type_error&) {
1349 throw_or_abort(
"error converting tag to string for enum 'ValueOrArray'");
1351 if (
tag ==
"MemoryAddress") {
1353 if (o.type != msgpack::type::MAP) {
1354 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1357 o.via.map.ptr[0].val.convert(v);
1358 }
catch (
const msgpack::type_error&) {
1360 throw_or_abort(
"error converting into enum variant 'ValueOrArray::MemoryAddress'");
1364 }
else if (
tag ==
"HeapArray") {
1366 if (o.type != msgpack::type::MAP) {
1367 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1370 o.via.map.ptr[0].val.convert(v);
1371 }
catch (
const msgpack::type_error&) {
1373 throw_or_abort(
"error converting into enum variant 'ValueOrArray::HeapArray'");
1377 }
else if (
tag ==
"HeapVector") {
1379 if (o.type != msgpack::type::MAP) {
1380 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1383 o.via.map.ptr[0].val.convert(v);
1384 }
catch (
const msgpack::type_error&) {
1386 throw_or_abort(
"error converting into enum variant 'ValueOrArray::HeapVector'");
1409 std::string name =
"BinaryFieldOp";
1410 if (o.type == msgpack::type::MAP) {
1416 }
else if (o.type == msgpack::type::ARRAY) {
1417 auto array = o.via.array;
1439 std::string name =
"BinaryIntOp";
1440 if (o.type == msgpack::type::MAP) {
1447 }
else if (o.type == msgpack::type::ARRAY) {
1448 auto array = o.via.array;
1469 std::string name =
"Not";
1470 if (o.type == msgpack::type::MAP) {
1475 }
else if (o.type == msgpack::type::ARRAY) {
1476 auto array = o.via.array;
1495 std::string name =
"Cast";
1496 if (o.type == msgpack::type::MAP) {
1501 }
else if (o.type == msgpack::type::ARRAY) {
1502 auto array = o.via.array;
1520 std::string name =
"JumpIf";
1521 if (o.type == msgpack::type::MAP) {
1525 }
else if (o.type == msgpack::type::ARRAY) {
1526 auto array = o.via.array;
1542 std::string name =
"Jump";
1543 if (o.type == msgpack::type::MAP) {
1546 }
else if (o.type == msgpack::type::ARRAY) {
1547 auto array = o.via.array;
1564 std::string name =
"CalldataCopy";
1565 if (o.type == msgpack::type::MAP) {
1570 }
else if (o.type == msgpack::type::ARRAY) {
1571 auto array = o.via.array;
1588 std::string name =
"Call";
1589 if (o.type == msgpack::type::MAP) {
1592 }
else if (o.type == msgpack::type::ARRAY) {
1593 auto array = o.via.array;
1610 std::string name =
"Const";
1611 if (o.type == msgpack::type::MAP) {
1616 }
else if (o.type == msgpack::type::ARRAY) {
1617 auto array = o.via.array;
1636 std::string name =
"IndirectConst";
1637 if (o.type == msgpack::type::MAP) {
1642 }
else if (o.type == msgpack::type::ARRAY) {
1643 auto array = o.via.array;
1670 std::string name =
"ForeignCall";
1671 if (o.type == msgpack::type::MAP) {
1678 }
else if (o.type == msgpack::type::ARRAY) {
1679 auto array = o.via.array;
1699 std::string name =
"Mov";
1700 if (o.type == msgpack::type::MAP) {
1704 }
else if (o.type == msgpack::type::ARRAY) {
1705 auto array = o.via.array;
1724 std::string name =
"ConditionalMov";
1725 if (o.type == msgpack::type::MAP) {
1731 }
else if (o.type == msgpack::type::ARRAY) {
1732 auto array = o.via.array;
1751 std::string name =
"Load";
1752 if (o.type == msgpack::type::MAP) {
1756 }
else if (o.type == msgpack::type::ARRAY) {
1757 auto array = o.via.array;
1774 std::string name =
"Store";
1775 if (o.type == msgpack::type::MAP) {
1779 }
else if (o.type == msgpack::type::ARRAY) {
1780 auto array = o.via.array;
1798 }
catch (
const msgpack::type_error&) {
1812 std::string name =
"Trap";
1813 if (o.type == msgpack::type::MAP) {
1816 }
else if (o.type == msgpack::type::ARRAY) {
1817 auto array = o.via.array;
1832 std::string name =
"Stop";
1833 if (o.type == msgpack::type::MAP) {
1836 }
else if (o.type == msgpack::type::ARRAY) {
1837 auto array = o.via.array;
1871 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
1875 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
1880 if (o.type == msgpack::type::object_type::MAP) {
1881 o.via.map.ptr[0].key.convert(
tag);
1885 }
catch (
const msgpack::type_error&) {
1887 throw_or_abort(
"error converting tag to string for enum 'BrilligOpcode'");
1889 if (
tag ==
"BinaryFieldOp") {
1891 if (o.type != msgpack::type::MAP) {
1892 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1895 o.via.map.ptr[0].val.convert(v);
1896 }
catch (
const msgpack::type_error&) {
1898 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BinaryFieldOp'");
1902 }
else if (
tag ==
"BinaryIntOp") {
1904 if (o.type != msgpack::type::MAP) {
1905 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1908 o.via.map.ptr[0].val.convert(v);
1909 }
catch (
const msgpack::type_error&) {
1911 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BinaryIntOp'");
1915 }
else if (
tag ==
"Not") {
1917 if (o.type != msgpack::type::MAP) {
1918 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1921 o.via.map.ptr[0].val.convert(v);
1922 }
catch (
const msgpack::type_error&) {
1924 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Not'");
1928 }
else if (
tag ==
"Cast") {
1930 if (o.type != msgpack::type::MAP) {
1931 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1934 o.via.map.ptr[0].val.convert(v);
1935 }
catch (
const msgpack::type_error&) {
1937 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Cast'");
1941 }
else if (
tag ==
"JumpIf") {
1943 if (o.type != msgpack::type::MAP) {
1944 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1947 o.via.map.ptr[0].val.convert(v);
1948 }
catch (
const msgpack::type_error&) {
1950 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::JumpIf'");
1954 }
else if (
tag ==
"Jump") {
1956 if (o.type != msgpack::type::MAP) {
1957 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1960 o.via.map.ptr[0].val.convert(v);
1961 }
catch (
const msgpack::type_error&) {
1963 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Jump'");
1967 }
else if (
tag ==
"CalldataCopy") {
1969 if (o.type != msgpack::type::MAP) {
1970 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1973 o.via.map.ptr[0].val.convert(v);
1974 }
catch (
const msgpack::type_error&) {
1976 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::CalldataCopy'");
1980 }
else if (
tag ==
"Call") {
1982 if (o.type != msgpack::type::MAP) {
1983 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1986 o.via.map.ptr[0].val.convert(v);
1987 }
catch (
const msgpack::type_error&) {
1989 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Call'");
1993 }
else if (
tag ==
"Const") {
1995 if (o.type != msgpack::type::MAP) {
1996 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
1999 o.via.map.ptr[0].val.convert(v);
2000 }
catch (
const msgpack::type_error&) {
2002 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Const'");
2006 }
else if (
tag ==
"IndirectConst") {
2008 if (o.type != msgpack::type::MAP) {
2009 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2012 o.via.map.ptr[0].val.convert(v);
2013 }
catch (
const msgpack::type_error&) {
2015 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::IndirectConst'");
2019 }
else if (
tag ==
"Return") {
2022 }
else if (
tag ==
"ForeignCall") {
2024 if (o.type != msgpack::type::MAP) {
2025 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2028 o.via.map.ptr[0].val.convert(v);
2029 }
catch (
const msgpack::type_error&) {
2031 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::ForeignCall'");
2035 }
else if (
tag ==
"Mov") {
2037 if (o.type != msgpack::type::MAP) {
2038 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2041 o.via.map.ptr[0].val.convert(v);
2042 }
catch (
const msgpack::type_error&) {
2044 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Mov'");
2048 }
else if (
tag ==
"ConditionalMov") {
2050 if (o.type != msgpack::type::MAP) {
2051 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2054 o.via.map.ptr[0].val.convert(v);
2055 }
catch (
const msgpack::type_error&) {
2057 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::ConditionalMov'");
2061 }
else if (
tag ==
"Load") {
2063 if (o.type != msgpack::type::MAP) {
2064 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2067 o.via.map.ptr[0].val.convert(v);
2068 }
catch (
const msgpack::type_error&) {
2070 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Load'");
2074 }
else if (
tag ==
"Store") {
2076 if (o.type != msgpack::type::MAP) {
2077 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2080 o.via.map.ptr[0].val.convert(v);
2081 }
catch (
const msgpack::type_error&) {
2083 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Store'");
2087 }
else if (
tag ==
"BlackBox") {
2089 if (o.type != msgpack::type::MAP) {
2090 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2093 o.via.map.ptr[0].val.convert(v);
2094 }
catch (
const msgpack::type_error&) {
2096 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BlackBox'");
2100 }
else if (
tag ==
"Trap") {
2102 if (o.type != msgpack::type::MAP) {
2103 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2106 o.via.map.ptr[0].val.convert(v);
2107 }
catch (
const msgpack::type_error&) {
2109 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Trap'");
2113 }
else if (
tag ==
"Stop") {
2115 if (o.type != msgpack::type::MAP) {
2116 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2119 o.via.map.ptr[0].val.convert(v);
2120 }
catch (
const msgpack::type_error&) {
2122 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Stop'");
2142 }
catch (
const msgpack::type_error&) {
2160 }
catch (
const msgpack::type_error&) {
2176 }
catch (
const msgpack::type_error&) {
2190 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
2194 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
2199 if (o.type == msgpack::type::object_type::MAP) {
2200 o.via.map.ptr[0].key.convert(
tag);
2204 }
catch (
const msgpack::type_error&) {
2206 throw_or_abort(
"error converting tag to string for enum 'FunctionInput'");
2208 if (
tag ==
"Constant") {
2210 if (o.type != msgpack::type::MAP) {
2211 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2214 o.via.map.ptr[0].val.convert(v);
2215 }
catch (
const msgpack::type_error&) {
2217 throw_or_abort(
"error converting into enum variant 'FunctionInput::Constant'");
2221 }
else if (
tag ==
"Witness") {
2223 if (o.type != msgpack::type::MAP) {
2224 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2227 o.via.map.ptr[0].val.convert(v);
2228 }
catch (
const msgpack::type_error&) {
2230 throw_or_abort(
"error converting into enum variant 'FunctionInput::Witness'");
2253 std::string name =
"AES128Encrypt";
2254 if (o.type == msgpack::type::MAP) {
2260 }
else if (o.type == msgpack::type::ARRAY) {
2261 auto array = o.via.array;
2282 std::string name =
"AND";
2283 if (o.type == msgpack::type::MAP) {
2289 }
else if (o.type == msgpack::type::ARRAY) {
2290 auto array = o.via.array;
2311 std::string name =
"XOR";
2312 if (o.type == msgpack::type::MAP) {
2318 }
else if (o.type == msgpack::type::ARRAY) {
2319 auto array = o.via.array;
2338 std::string name =
"RANGE";
2339 if (o.type == msgpack::type::MAP) {
2343 }
else if (o.type == msgpack::type::ARRAY) {
2344 auto array = o.via.array;
2361 std::string name =
"Blake2s";
2362 if (o.type == msgpack::type::MAP) {
2366 }
else if (o.type == msgpack::type::ARRAY) {
2367 auto array = o.via.array;
2384 std::string name =
"Blake3";
2385 if (o.type == msgpack::type::MAP) {
2389 }
else if (o.type == msgpack::type::ARRAY) {
2390 auto array = o.via.array;
2411 std::string name =
"EcdsaSecp256k1";
2412 if (o.type == msgpack::type::MAP) {
2420 }
else if (o.type == msgpack::type::ARRAY) {
2421 auto array = o.via.array;
2446 std::string name =
"EcdsaSecp256r1";
2447 if (o.type == msgpack::type::MAP) {
2455 }
else if (o.type == msgpack::type::ARRAY) {
2456 auto array = o.via.array;
2479 std::string name =
"MultiScalarMul";
2480 if (o.type == msgpack::type::MAP) {
2486 }
else if (o.type == msgpack::type::ARRAY) {
2487 auto array = o.via.array;
2508 std::string name =
"EmbeddedCurveAdd";
2509 if (o.type == msgpack::type::MAP) {
2515 }
else if (o.type == msgpack::type::ARRAY) {
2516 auto array = o.via.array;
2535 std::string name =
"Keccakf1600";
2536 if (o.type == msgpack::type::MAP) {
2540 }
else if (o.type == msgpack::type::ARRAY) {
2541 auto array = o.via.array;
2562 std::string name =
"RecursiveAggregation";
2563 if (o.type == msgpack::type::MAP) {
2571 }
else if (o.type == msgpack::type::ARRAY) {
2572 auto array = o.via.array;
2593 std::string name =
"Poseidon2Permutation";
2594 if (o.type == msgpack::type::MAP) {
2598 }
else if (o.type == msgpack::type::ARRAY) {
2599 auto array = o.via.array;
2617 std::string name =
"Sha256Compression";
2618 if (o.type == msgpack::type::MAP) {
2623 }
else if (o.type == msgpack::type::ARRAY) {
2624 auto array = o.via.array;
2645 RecursiveAggregation,
2646 Poseidon2Permutation,
2655 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
2659 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
2664 if (o.type == msgpack::type::object_type::MAP) {
2665 o.via.map.ptr[0].key.convert(
tag);
2669 }
catch (
const msgpack::type_error&) {
2671 throw_or_abort(
"error converting tag to string for enum 'BlackBoxFuncCall'");
2673 if (
tag ==
"AES128Encrypt") {
2675 if (o.type != msgpack::type::MAP) {
2676 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2679 o.via.map.ptr[0].val.convert(v);
2680 }
catch (
const msgpack::type_error&) {
2682 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::AES128Encrypt'");
2686 }
else if (
tag ==
"AND") {
2688 if (o.type != msgpack::type::MAP) {
2689 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2692 o.via.map.ptr[0].val.convert(v);
2693 }
catch (
const msgpack::type_error&) {
2695 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::AND'");
2699 }
else if (
tag ==
"XOR") {
2701 if (o.type != msgpack::type::MAP) {
2702 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2705 o.via.map.ptr[0].val.convert(v);
2706 }
catch (
const msgpack::type_error&) {
2708 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::XOR'");
2712 }
else if (
tag ==
"RANGE") {
2714 if (o.type != msgpack::type::MAP) {
2715 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2718 o.via.map.ptr[0].val.convert(v);
2719 }
catch (
const msgpack::type_error&) {
2721 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::RANGE'");
2725 }
else if (
tag ==
"Blake2s") {
2727 if (o.type != msgpack::type::MAP) {
2728 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2731 o.via.map.ptr[0].val.convert(v);
2732 }
catch (
const msgpack::type_error&) {
2734 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Blake2s'");
2738 }
else if (
tag ==
"Blake3") {
2740 if (o.type != msgpack::type::MAP) {
2741 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2744 o.via.map.ptr[0].val.convert(v);
2745 }
catch (
const msgpack::type_error&) {
2747 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Blake3'");
2751 }
else if (
tag ==
"EcdsaSecp256k1") {
2753 if (o.type != msgpack::type::MAP) {
2754 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2757 o.via.map.ptr[0].val.convert(v);
2758 }
catch (
const msgpack::type_error&) {
2760 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EcdsaSecp256k1'");
2764 }
else if (
tag ==
"EcdsaSecp256r1") {
2766 if (o.type != msgpack::type::MAP) {
2767 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2770 o.via.map.ptr[0].val.convert(v);
2771 }
catch (
const msgpack::type_error&) {
2773 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EcdsaSecp256r1'");
2777 }
else if (
tag ==
"MultiScalarMul") {
2779 if (o.type != msgpack::type::MAP) {
2780 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2783 o.via.map.ptr[0].val.convert(v);
2784 }
catch (
const msgpack::type_error&) {
2786 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::MultiScalarMul'");
2790 }
else if (
tag ==
"EmbeddedCurveAdd") {
2792 if (o.type != msgpack::type::MAP) {
2793 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2796 o.via.map.ptr[0].val.convert(v);
2797 }
catch (
const msgpack::type_error&) {
2799 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EmbeddedCurveAdd'");
2803 }
else if (
tag ==
"Keccakf1600") {
2805 if (o.type != msgpack::type::MAP) {
2806 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2809 o.via.map.ptr[0].val.convert(v);
2810 }
catch (
const msgpack::type_error&) {
2812 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Keccakf1600'");
2816 }
else if (
tag ==
"RecursiveAggregation") {
2818 if (o.type != msgpack::type::MAP) {
2819 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2822 o.via.map.ptr[0].val.convert(v);
2823 }
catch (
const msgpack::type_error&) {
2825 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::RecursiveAggregation'");
2829 }
else if (
tag ==
"Poseidon2Permutation") {
2831 if (o.type != msgpack::type::MAP) {
2832 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2835 o.via.map.ptr[0].val.convert(v);
2836 }
catch (
const msgpack::type_error&) {
2838 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Poseidon2Permutation'");
2842 }
else if (
tag ==
"Sha256Compression") {
2844 if (o.type != msgpack::type::MAP) {
2845 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2848 o.via.map.ptr[0].val.convert(v);
2849 }
catch (
const msgpack::type_error&) {
2851 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Sha256Compression'");
2871 }
catch (
const msgpack::type_error&) {
2895 }
catch (
const msgpack::type_error&) {
2915 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
2919 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
2924 if (o.type == msgpack::type::object_type::MAP) {
2925 o.via.map.ptr[0].key.convert(
tag);
2929 }
catch (
const msgpack::type_error&) {
2931 throw_or_abort(
"error converting tag to string for enum 'BlockType'");
2933 if (
tag ==
"Memory") {
2936 }
else if (
tag ==
"CallData") {
2938 if (o.type != msgpack::type::MAP) {
2939 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
2942 o.via.map.ptr[0].val.convert(v);
2943 }
catch (
const msgpack::type_error&) {
2945 throw_or_abort(
"error converting into enum variant 'BlockType::CallData'");
2949 }
else if (
tag ==
"ReturnData") {
2968 std::string name =
"Expression";
2969 if (o.type == msgpack::type::MAP) {
2974 }
else if (o.type == msgpack::type::ARRAY) {
2975 auto array = o.via.array;
2996 }
catch (
const msgpack::type_error&) {
3012 }
catch (
const msgpack::type_error&) {
3028 }
catch (
const msgpack::type_error&) {
3042 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
3046 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
3051 if (o.type == msgpack::type::object_type::MAP) {
3052 o.via.map.ptr[0].key.convert(
tag);
3056 }
catch (
const msgpack::type_error&) {
3058 throw_or_abort(
"error converting tag to string for enum 'BrilligInputs'");
3060 if (
tag ==
"Single") {
3062 if (o.type != msgpack::type::MAP) {
3063 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
3066 o.via.map.ptr[0].val.convert(v);
3067 }
catch (
const msgpack::type_error&) {
3069 throw_or_abort(
"error converting into enum variant 'BrilligInputs::Single'");
3073 }
else if (
tag ==
"Array") {
3075 if (o.type != msgpack::type::MAP) {
3076 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
3079 o.via.map.ptr[0].val.convert(v);
3080 }
catch (
const msgpack::type_error&) {
3082 throw_or_abort(
"error converting into enum variant 'BrilligInputs::Array'");
3086 }
else if (
tag ==
"MemoryArray") {
3088 if (o.type != msgpack::type::MAP) {
3089 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
3092 o.via.map.ptr[0].val.convert(v);
3093 }
catch (
const msgpack::type_error&) {
3095 throw_or_abort(
"error converting into enum variant 'BrilligInputs::MemoryArray'");
3117 }
catch (
const msgpack::type_error&) {
3133 }
catch (
const msgpack::type_error&) {
3147 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
3151 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
3156 if (o.type == msgpack::type::object_type::MAP) {
3157 o.via.map.ptr[0].key.convert(
tag);
3161 }
catch (
const msgpack::type_error&) {
3163 throw_or_abort(
"error converting tag to string for enum 'BrilligOutputs'");
3165 if (
tag ==
"Simple") {
3167 if (o.type != msgpack::type::MAP) {
3168 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
3171 o.via.map.ptr[0].val.convert(v);
3172 }
catch (
const msgpack::type_error&) {
3174 throw_or_abort(
"error converting into enum variant 'BrilligOutputs::Simple'");
3178 }
else if (
tag ==
"Array") {
3180 if (o.type != msgpack::type::MAP) {
3181 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
3184 o.via.map.ptr[0].val.convert(v);
3185 }
catch (
const msgpack::type_error&) {
3187 throw_or_abort(
"error converting into enum variant 'BrilligOutputs::Array'");
3207 std::string name =
"MemOp";
3208 if (o.type == msgpack::type::MAP) {
3213 }
else if (o.type == msgpack::type::ARRAY) {
3214 auto array = o.via.array;
3235 }
catch (
const msgpack::type_error&) {
3251 }
catch (
const msgpack::type_error&) {
3253 throw_or_abort(
"error converting into newtype 'BlackBoxFuncCall'");
3266 std::string name =
"MemoryOp";
3267 if (o.type == msgpack::type::MAP) {
3271 }
else if (o.type == msgpack::type::ARRAY) {
3272 auto array = o.via.array;
3290 std::string name =
"MemoryInit";
3291 if (o.type == msgpack::type::MAP) {
3296 }
else if (o.type == msgpack::type::ARRAY) {
3297 auto array = o.via.array;
3317 std::string name =
"BrilligCall";
3318 if (o.type == msgpack::type::MAP) {
3324 }
else if (o.type == msgpack::type::ARRAY) {
3325 auto array = o.via.array;
3346 std::string name =
"Call";
3347 if (o.type == msgpack::type::MAP) {
3353 }
else if (o.type == msgpack::type::ARRAY) {
3354 auto array = o.via.array;
3372 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
3376 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
3381 if (o.type == msgpack::type::object_type::MAP) {
3382 o.via.map.ptr[0].key.convert(
tag);
3386 }
catch (
const msgpack::type_error&) {
3388 throw_or_abort(
"error converting tag to string for enum 'Opcode'");
3390 if (
tag ==
"AssertZero") {
3392 if (o.type != msgpack::type::MAP) {
3393 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
3396 o.via.map.ptr[0].val.convert(v);
3397 }
catch (
const msgpack::type_error&) {
3399 throw_or_abort(
"error converting into enum variant 'Opcode::AssertZero'");
3403 }
else if (
tag ==
"BlackBoxFuncCall") {
3405 if (o.type != msgpack::type::MAP) {
3406 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
3409 o.via.map.ptr[0].val.convert(v);
3410 }
catch (
const msgpack::type_error&) {
3412 throw_or_abort(
"error converting into enum variant 'Opcode::BlackBoxFuncCall'");
3416 }
else if (
tag ==
"MemoryOp") {
3418 if (o.type != msgpack::type::MAP) {
3419 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
3422 o.via.map.ptr[0].val.convert(v);
3423 }
catch (
const msgpack::type_error&) {
3425 throw_or_abort(
"error converting into enum variant 'Opcode::MemoryOp'");
3429 }
else if (
tag ==
"MemoryInit") {
3431 if (o.type != msgpack::type::MAP) {
3432 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
3435 o.via.map.ptr[0].val.convert(v);
3436 }
catch (
const msgpack::type_error&) {
3438 throw_or_abort(
"error converting into enum variant 'Opcode::MemoryInit'");
3442 }
else if (
tag ==
"BrilligCall") {
3444 if (o.type != msgpack::type::MAP) {
3445 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
3448 o.via.map.ptr[0].val.convert(v);
3449 }
catch (
const msgpack::type_error&) {
3451 throw_or_abort(
"error converting into enum variant 'Opcode::BrilligCall'");
3455 }
else if (
tag ==
"Call") {
3457 if (o.type != msgpack::type::MAP) {
3458 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
3461 o.via.map.ptr[0].val.convert(v);
3462 }
catch (
const msgpack::type_error&) {
3464 throw_or_abort(
"error converting into enum variant 'Opcode::Call'");
3486 }
catch (
const msgpack::type_error&) {
3502 }
catch (
const msgpack::type_error&) {
3516 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
3520 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
3525 if (o.type == msgpack::type::object_type::MAP) {
3526 o.via.map.ptr[0].key.convert(
tag);
3530 }
catch (
const msgpack::type_error&) {
3532 throw_or_abort(
"error converting tag to string for enum 'ExpressionOrMemory'");
3534 if (
tag ==
"Expression") {
3536 if (o.type != msgpack::type::MAP) {
3537 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
3540 o.via.map.ptr[0].val.convert(v);
3541 }
catch (
const msgpack::type_error&) {
3543 throw_or_abort(
"error converting into enum variant 'ExpressionOrMemory::Expression'");
3547 }
else if (
tag ==
"Memory") {
3549 if (o.type != msgpack::type::MAP) {
3550 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
3553 o.via.map.ptr[0].val.convert(v);
3554 }
catch (
const msgpack::type_error&) {
3556 throw_or_abort(
"error converting into enum variant 'ExpressionOrMemory::Memory'");
3575 std::string name =
"AssertionPayload";
3576 if (o.type == msgpack::type::MAP) {
3580 }
else if (o.type == msgpack::type::ARRAY) {
3581 auto array = o.via.array;
3601 }
catch (
const msgpack::type_error&) {
3616 std::string name =
"Brillig";
3617 if (o.type == msgpack::type::MAP) {
3621 }
else if (o.type == msgpack::type::ARRAY) {
3622 auto array = o.via.array;
3638 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
3642 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
3647 if (o.type == msgpack::type::object_type::MAP) {
3648 o.via.map.ptr[0].key.convert(
tag);
3652 }
catch (
const msgpack::type_error&) {
3654 throw_or_abort(
"error converting tag to string for enum 'OpcodeLocation'");
3656 if (
tag ==
"Acir") {
3658 if (o.type != msgpack::type::MAP) {
3659 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
3662 o.via.map.ptr[0].val.convert(v);
3663 }
catch (
const msgpack::type_error&) {
3665 throw_or_abort(
"error converting into enum variant 'OpcodeLocation::Acir'");
3669 }
else if (
tag ==
"Brillig") {
3671 if (o.type != msgpack::type::MAP) {
3672 throw_or_abort(
"expected MAP for enum variant, got STR (unit variant syntax for non-unit variant)");
3675 o.via.map.ptr[0].val.convert(v);
3676 }
catch (
const msgpack::type_error&) {
3678 throw_or_abort(
"error converting into enum variant 'OpcodeLocation::Brillig'");
3698 }
catch (
const msgpack::type_error&) {
3718 std::string name =
"Circuit";
3719 if (o.type == msgpack::type::MAP) {
3728 }
else if (o.type == msgpack::type::ARRAY) {
3729 auto array = o.via.array;
3751 std::string name =
"BrilligBytecode";
3752 if (o.type == msgpack::type::MAP) {
3756 }
else if (o.type == msgpack::type::ARRAY) {
3757 auto array = o.via.array;
3774 std::string name =
"Program";
3775 if (o.type == msgpack::type::MAP) {
3779 }
else if (o.type == msgpack::type::ARRAY) {
3780 auto array = o.via.array;
3797 std::string name =
"ProgramWithoutBrillig";
3798 if (o.type == msgpack::type::MAP) {
3801 }
else if (o.type == msgpack::type::ARRAY) {
3802 auto array = o.via.array;
3828template <
typename Serializer>
3831 serializer.increase_container_depth();
3834 serializer.decrease_container_depth();
3838template <
typename Deserializer>
3841 deserializer.increase_container_depth();
3845 deserializer.decrease_container_depth();
3862template <
typename Serializer>
3865 serializer.increase_container_depth();
3867 serializer.decrease_container_depth();
3871template <
typename Deserializer>
3874 deserializer.increase_container_depth();
3877 deserializer.decrease_container_depth();
3891template <
typename Serializer>
3893 Serializer& serializer)
3897template <
typename Deserializer>
3914template <
typename Serializer>
3916 Serializer& serializer)
3920template <
typename Deserializer>
3937template <
typename Serializer>
3939 Serializer& serializer)
3943template <
typename Deserializer>
3960template <
typename Serializer>
3962 Serializer& serializer)
3966template <
typename Deserializer>
3983template <
typename Serializer>
3985 Serializer& serializer)
3989template <
typename Deserializer>
3991 Deserializer& deserializer)
4007template <
typename Serializer>
4009 Serializer& serializer)
4013template <
typename Deserializer>
4030template <
typename Serializer>
4032 Serializer& serializer)
4036template <
typename Deserializer>
4038 Deserializer& deserializer)
4054template <
typename Serializer>
4056 Serializer& serializer)
4060template <
typename Deserializer>
4062 Deserializer& deserializer)
4081template <
typename Serializer>
4084 serializer.increase_container_depth();
4086 serializer.decrease_container_depth();
4090template <
typename Deserializer>
4093 deserializer.increase_container_depth();
4096 deserializer.decrease_container_depth();
4110template <
typename Serializer>
4115template <
typename Deserializer>
4132template <
typename Serializer>
4137template <
typename Deserializer>
4154template <
typename Serializer>
4159template <
typename Deserializer>
4176template <
typename Serializer>
4181template <
typename Deserializer>
4198template <
typename Serializer>
4200 Serializer& serializer)
4204template <
typename Deserializer>
4221template <
typename Serializer>
4223 Serializer& serializer)
4227template <
typename Deserializer>
4244template <
typename Serializer>
4246 Serializer& serializer)
4250template <
typename Deserializer>
4252 Deserializer& deserializer)
4268template <
typename Serializer>
4273template <
typename Deserializer>
4290template <
typename Serializer>
4295template <
typename Deserializer>
4312template <
typename Serializer>
4317template <
typename Deserializer>
4334template <
typename Serializer>
4339template <
typename Deserializer>
4356template <
typename Serializer>
4361template <
typename Deserializer>
4381template <
typename Serializer>
4384 serializer.increase_container_depth();
4386 serializer.decrease_container_depth();
4390template <
typename Deserializer>
4393 deserializer.increase_container_depth();
4396 deserializer.decrease_container_depth();
4410template <
typename Serializer>
4415template <
typename Deserializer>
4435template <
typename Serializer>
4442template <
typename Deserializer>
4463template <
typename Serializer>
4466 serializer.increase_container_depth();
4468 serializer.decrease_container_depth();
4472template <
typename Deserializer>
4475 deserializer.increase_container_depth();
4478 deserializer.decrease_container_depth();
4489 if (!(lhs.
iv == rhs.
iv)) {
4492 if (!(lhs.
key == rhs.
key)) {
4504template <
typename Serializer>
4515template <
typename Deserializer>
4517 Deserializer& deserializer)
4531 if (!(lhs.
lhs == rhs.
lhs)) {
4534 if (!(lhs.
rhs == rhs.
rhs)) {
4549template <
typename Serializer>
4551 Serializer& serializer)
4560template <
typename Deserializer>
4575 if (!(lhs.
lhs == rhs.
lhs)) {
4578 if (!(lhs.
rhs == rhs.
rhs)) {
4593template <
typename Serializer>
4595 Serializer& serializer)
4604template <
typename Deserializer>
4631template <
typename Serializer>
4633 Serializer& serializer)
4640template <
typename Deserializer>
4642 Deserializer& deserializer)
4666template <
typename Serializer>
4668 Serializer& serializer)
4675template <
typename Deserializer>
4677 Deserializer& deserializer)
4701template <
typename Serializer>
4703 Serializer& serializer)
4710template <
typename Deserializer>
4712 Deserializer& deserializer)
4748template <
typename Serializer>
4761template <
typename Deserializer>
4763 Deserializer& deserializer)
4803template <
typename Serializer>
4816template <
typename Deserializer>
4818 Deserializer& deserializer)
4852template <
typename Serializer>
4863template <
typename Deserializer>
4865 Deserializer& deserializer)
4897template <
typename Serializer>
4908template <
typename Deserializer>
4910 Deserializer& deserializer)
4936template <
typename Serializer>
4938 Serializer& serializer)
4945template <
typename Deserializer>
4947 Deserializer& deserializer)
4984template <
typename Serializer>
4997template <
typename Deserializer>
5028template <
typename Serializer>
5037template <
typename Deserializer>
5066template <
typename Serializer>
5076template <
typename Deserializer>
5078 Deserializer& deserializer)
5100template <
typename Serializer>
5103 serializer.increase_container_depth();
5105 serializer.decrease_container_depth();
5109template <
typename Deserializer>
5112 deserializer.increase_container_depth();
5115 deserializer.decrease_container_depth();
5126 if (!(lhs.
iv == rhs.
iv)) {
5129 if (!(lhs.
key == rhs.
key)) {
5141template <
typename Serializer>
5143 Serializer& serializer)
5152template <
typename Deserializer>
5154 Deserializer& deserializer)
5180template <
typename Serializer>
5182 Serializer& serializer)
5189template <
typename Deserializer>
5214template <
typename Serializer>
5216 Serializer& serializer)
5223template <
typename Deserializer>
5248template <
typename Serializer>
5250 Serializer& serializer)
5257template <
typename Deserializer>
5259 Deserializer& deserializer)
5292template <
typename Serializer>
5294 Serializer& serializer)
5304template <
typename Deserializer>
5306 Deserializer& deserializer)
5342template <
typename Serializer>
5344 Serializer& serializer)
5354template <
typename Deserializer>
5356 Deserializer& deserializer)
5386template <
typename Serializer>
5388 Serializer& serializer)
5396template <
typename Deserializer>
5398 Deserializer& deserializer)
5438template <
typename Serializer>
5440 Serializer& serializer)
5452template <
typename Deserializer>
5454 Deserializer& deserializer)
5483template <
typename Serializer>
5492template <
typename Deserializer>
5494 Deserializer& deserializer)
5521template <
typename Serializer>
5523 Serializer& serializer)
5531template <
typename Deserializer>
5533 Deserializer& deserializer)
5567template <
typename Serializer>
5569 Serializer& serializer)
5579template <
typename Deserializer>
5604template <
typename Serializer>
5607 serializer.increase_container_depth();
5609 serializer.decrease_container_depth();
5613template <
typename Deserializer>
5616 deserializer.increase_container_depth();
5619 deserializer.decrease_container_depth();
5636template <
typename Serializer>
5639 serializer.increase_container_depth();
5641 serializer.decrease_container_depth();
5645template <
typename Deserializer>
5648 deserializer.increase_container_depth();
5651 deserializer.decrease_container_depth();
5665template <
typename Serializer>
5670template <
typename Deserializer>
5690template <
typename Serializer>
5692 Serializer& serializer)
5698template <
typename Deserializer>
5716template <
typename Serializer>
5718 Serializer& serializer)
5722template <
typename Deserializer>
5745template <
typename Serializer>
5748 serializer.increase_container_depth();
5751 serializer.decrease_container_depth();
5755template <
typename Deserializer>
5758 deserializer.increase_container_depth();
5762 deserializer.decrease_container_depth();
5779template <
typename Serializer>
5782 serializer.increase_container_depth();
5784 serializer.decrease_container_depth();
5788template <
typename Deserializer>
5791 deserializer.increase_container_depth();
5794 deserializer.decrease_container_depth();
5811template <
typename Serializer>
5813 Serializer& serializer)
5819template <
typename Deserializer>
5840template <
typename Serializer>
5842 Serializer& serializer)
5848template <
typename Deserializer>
5869template <
typename Serializer>
5871 Serializer& serializer)
5877template <
typename Deserializer>
5879 Deserializer& deserializer)
5899template <
typename Serializer>
5902 serializer.increase_container_depth();
5904 serializer.decrease_container_depth();
5908template <
typename Deserializer>
5911 deserializer.increase_container_depth();
5914 deserializer.decrease_container_depth();
5925 if (!(lhs.
op == rhs.
op)) {
5928 if (!(lhs.
lhs == rhs.
lhs)) {
5931 if (!(lhs.
rhs == rhs.
rhs)) {
5940template <
typename Serializer>
5942 Serializer& serializer)
5951template <
typename Deserializer>
5953 Deserializer& deserializer)
5970 if (!(lhs.
op == rhs.
op)) {
5976 if (!(lhs.
lhs == rhs.
lhs)) {
5979 if (!(lhs.
rhs == rhs.
rhs)) {
5988template <
typename Serializer>
5990 Serializer& serializer)
6000template <
typename Deserializer>
6002 Deserializer& deserializer)
6032template <
typename Serializer>
6034 Serializer& serializer)
6042template <
typename Deserializer>
6071template <
typename Serializer>
6073 Serializer& serializer)
6081template <
typename Deserializer>
6107template <
typename Serializer>
6109 Serializer& serializer)
6116template <
typename Deserializer>
6138template <
typename Serializer>
6140 Serializer& serializer)
6146template <
typename Deserializer>
6173template <
typename Serializer>
6175 Serializer& serializer)
6183template <
typename Deserializer>
6185 Deserializer& deserializer)
6207template <
typename Serializer>
6209 Serializer& serializer)
6215template <
typename Deserializer>
6242template <
typename Serializer>
6244 Serializer& serializer)
6252template <
typename Deserializer>
6281template <
typename Serializer>
6283 Serializer& serializer)
6291template <
typename Deserializer>
6293 Deserializer& deserializer)
6312template <
typename Serializer>
6314 Serializer& serializer)
6318template <
typename Deserializer>
6350template <
typename Serializer>
6352 Serializer& serializer)
6362template <
typename Deserializer>
6364 Deserializer& deserializer)
6392template <
typename Serializer>
6394 Serializer& serializer)
6401template <
typename Deserializer>
6432template <
typename Serializer>
6434 Serializer& serializer)
6443template <
typename Deserializer>
6445 Deserializer& deserializer)
6471template <
typename Serializer>
6473 Serializer& serializer)
6480template <
typename Deserializer>
6505template <
typename Serializer>
6507 Serializer& serializer)
6514template <
typename Deserializer>
6536template <
typename Serializer>
6538 Serializer& serializer)
6544template <
typename Deserializer>
6546 Deserializer& deserializer)
6566template <
typename Serializer>
6568 Serializer& serializer)
6574template <
typename Deserializer>
6595template <
typename Serializer>
6597 Serializer& serializer)
6603template <
typename Deserializer>
6624template <
typename Serializer>
6627 serializer.increase_container_depth();
6629 serializer.decrease_container_depth();
6633template <
typename Deserializer>
6636 deserializer.increase_container_depth();
6639 deserializer.decrease_container_depth();
6656template <
typename Serializer>
6658 Serializer& serializer)
6664template <
typename Deserializer>
6666 Deserializer& deserializer)
6686template <
typename Serializer>
6688 Serializer& serializer)
6694template <
typename Deserializer>
6733template <
typename Serializer>
6736 serializer.increase_container_depth();
6744 serializer.decrease_container_depth();
6748template <
typename Deserializer>
6751 deserializer.increase_container_depth();
6760 deserializer.decrease_container_depth();
6774 if (!(lhs.
q_c == rhs.
q_c)) {
6783template <
typename Serializer>
6786 serializer.increase_container_depth();
6790 serializer.decrease_container_depth();
6794template <
typename Deserializer>
6797 deserializer.increase_container_depth();
6802 deserializer.decrease_container_depth();
6819template <
typename Serializer>
6821 Serializer& serializer)
6823 serializer.increase_container_depth();
6825 serializer.decrease_container_depth();
6829template <
typename Deserializer>
6832 deserializer.increase_container_depth();
6835 deserializer.decrease_container_depth();
6852template <
typename Serializer>
6860template <
typename Deserializer>
6862 Deserializer& deserializer)
6882template <
typename Serializer>
6884 Serializer& serializer)
6890template <
typename Deserializer>
6892 Deserializer& deserializer)
6912template <
typename Serializer>
6915 serializer.increase_container_depth();
6917 serializer.decrease_container_depth();
6921template <
typename Deserializer>
6924 deserializer.increase_container_depth();
6927 deserializer.decrease_container_depth();
6944template <
typename Serializer>
6946 Serializer& serializer)
6952template <
typename Deserializer>
6954 Deserializer& deserializer)
6974template <
typename Serializer>
6976 Serializer& serializer)
6982template <
typename Deserializer>
6984 Deserializer& deserializer)
7007template <
typename Serializer>
7010 serializer.increase_container_depth();
7013 serializer.decrease_container_depth();
7017template <
typename Deserializer>
7020 deserializer.increase_container_depth();
7024 deserializer.decrease_container_depth();
7041template <
typename Serializer>
7044 serializer.increase_container_depth();
7046 serializer.decrease_container_depth();
7050template <
typename Deserializer>
7053 deserializer.increase_container_depth();
7056 deserializer.decrease_container_depth();
7073template <
typename Serializer>
7075 Serializer& serializer)
7081template <
typename Deserializer>
7105template <
typename Serializer>
7107 Serializer& serializer)
7114template <
typename Deserializer>
7136template <
typename Serializer>
7138 Serializer& serializer)
7144template <
typename Deserializer>
7168template <
typename Serializer>
7171 serializer.increase_container_depth();
7174 serializer.decrease_container_depth();
7178template <
typename Deserializer>
7181 deserializer.increase_container_depth();
7185 deserializer.decrease_container_depth();
7202template <
typename Serializer>
7205 serializer.increase_container_depth();
7207 serializer.decrease_container_depth();
7211template <
typename Deserializer>
7214 deserializer.increase_container_depth();
7217 deserializer.decrease_container_depth();
7231template <
typename Serializer>
7233 Serializer& serializer)
7237template <
typename Deserializer>
7254template <
typename Serializer>
7256 Serializer& serializer)
7260template <
typename Deserializer>
7277template <
typename Serializer>
7279 Serializer& serializer)
7283template <
typename Deserializer>
7300template <
typename Serializer>
7302 Serializer& serializer)
7306template <
typename Deserializer>
7323template <
typename Serializer>
7325 Serializer& serializer)
7329template <
typename Deserializer>
7346template <
typename Serializer>
7348 Serializer& serializer)
7352template <
typename Deserializer>
7378template <
typename Serializer>
7381 serializer.increase_container_depth();
7385 serializer.decrease_container_depth();
7389template <
typename Deserializer>
7392 deserializer.increase_container_depth();
7397 deserializer.decrease_container_depth();
7414template <
typename Serializer>
7417 serializer.increase_container_depth();
7419 serializer.decrease_container_depth();
7423template <
typename Deserializer>
7426 deserializer.increase_container_depth();
7429 deserializer.decrease_container_depth();
7446template <
typename Serializer>
7448 Serializer& serializer)
7454template <
typename Deserializer>
7475template <
typename Serializer>
7477 Serializer& serializer)
7483template <
typename Deserializer>
7485 Deserializer& deserializer)
7505template <
typename Serializer>
7508 serializer.increase_container_depth();
7510 serializer.decrease_container_depth();
7514template <
typename Deserializer>
7517 deserializer.increase_container_depth();
7520 deserializer.decrease_container_depth();
7537template <
typename Serializer>
7539 Serializer& serializer)
7545template <
typename Deserializer>
7566template <
typename Serializer>
7568 Serializer& serializer)
7574template <
typename Deserializer>
7576 Deserializer& deserializer)
7590 if (!(lhs.
op == rhs.
op)) {
7599template <
typename Serializer>
7607template <
typename Deserializer>
7635template <
typename Serializer>
7637 Serializer& serializer)
7645template <
typename Deserializer>
7659 if (!(lhs.
id == rhs.
id)) {
7677template <
typename Serializer>
7679 Serializer& serializer)
7688template <
typename Deserializer>
7703 if (!(lhs.
id == rhs.
id)) {
7721template <
typename Serializer>
7731template <
typename Deserializer>
7755template <
typename Serializer>
7758 serializer.increase_container_depth();
7760 serializer.decrease_container_depth();
7764template <
typename Deserializer>
7767 deserializer.increase_container_depth();
7770 deserializer.decrease_container_depth();
7787template <
typename Serializer>
7789 Serializer& serializer)
7795template <
typename Deserializer>
7819template <
typename Serializer>
7821 Serializer& serializer)
7828template <
typename Deserializer>
7830 Deserializer& deserializer)
7854template <
typename Serializer>
7857 serializer.increase_container_depth();
7860 serializer.decrease_container_depth();
7864template <
typename Deserializer>
7867 deserializer.increase_container_depth();
7872 deserializer.decrease_container_depth();
7892template <
typename Serializer>
7894 Serializer& serializer)
7896 serializer.increase_container_depth();
7899 serializer.decrease_container_depth();
7903template <
typename Deserializer>
7906 deserializer.increase_container_depth();
7911 deserializer.decrease_container_depth();
7928template <
typename Serializer>
7931 serializer.increase_container_depth();
7933 serializer.decrease_container_depth();
7937template <
typename Deserializer>
7940 deserializer.increase_container_depth();
7943 deserializer.decrease_container_depth();
7960template <
typename Serializer>
7963 serializer.increase_container_depth();
7965 serializer.decrease_container_depth();
7969template <
typename Deserializer>
7972 deserializer.increase_container_depth();
7975 deserializer.decrease_container_depth();
7992template <
typename Serializer>
7994 Serializer& serializer)
7996 serializer.increase_container_depth();
7998 serializer.decrease_container_depth();
8002template <
typename Deserializer>
8005 deserializer.increase_container_depth();
8008 deserializer.decrease_container_depth();
8025template <
typename Serializer>
8028 serializer.increase_container_depth();
8030 serializer.decrease_container_depth();
8034template <
typename Deserializer>
8037 deserializer.increase_container_depth();
8040 deserializer.decrease_container_depth();
8057template <
typename Serializer>
8059 Serializer& serializer)
8065template <
typename Deserializer>
8067 Deserializer& deserializer)
8087template <
typename Serializer>
8089 Serializer& serializer)
8095template <
typename Deserializer>
8097 Deserializer& deserializer)
8117template <
typename Serializer>
8119 Serializer& serializer)
8125template <
typename Deserializer>
8127 Deserializer& deserializer)
8147template <
typename Serializer>
8150 serializer.increase_container_depth();
8152 serializer.decrease_container_depth();
8156template <
typename Deserializer>
8159 deserializer.increase_container_depth();
8162 deserializer.decrease_container_depth();
Serves as a key-value node store for merkle trees. Caches all changes in memory before persisting the...
bool operator==(const AssertionPayload &lhs, const AssertionPayload &rhs)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
std::string to_string(bb::avm2::ValueTag tag)
std::vector< Acir::ExpressionOrMemory > payload
friend bool operator==(const AssertionPayload &, const AssertionPayload &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Add &, const Add &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Div &, const Div &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Equals &, const Equals &)
friend bool operator==(const IntegerDiv &, const IntegerDiv &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const LessThanEquals &, const LessThanEquals &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const LessThan &, const LessThan &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Mul &, const Mul &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Sub &, const Sub &)
std::variant< Add, Sub, Mul, Div, IntegerDiv, Equals, LessThan, LessThanEquals > value
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const BinaryFieldOp &, const BinaryFieldOp &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Add &, const Add &)
friend bool operator==(const And &, const And &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Div &, const Div &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Equals &, const Equals &)
friend bool operator==(const LessThanEquals &, const LessThanEquals &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const LessThan &, const LessThan &)
friend bool operator==(const Mul &, const Mul &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Or &, const Or &)
friend bool operator==(const Shl &, const Shl &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Shr &, const Shr &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Sub &, const Sub &)
friend bool operator==(const Xor &, const Xor &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
std::variant< Add, Sub, Mul, Div, Equals, LessThan, LessThanEquals, And, Or, Xor, Shl, Shr > value
friend bool operator==(const BinaryIntOp &, const BinaryIntOp &)
friend bool operator==(const Field &, const Field &)
void msgpack_unpack(msgpack::object const &o)
Acir::IntegerBitSize value
friend bool operator==(const Integer &, const Integer &)
void msgpack_unpack(msgpack::object const &o)
std::variant< Field, Integer > value
friend bool operator==(const BitSize &, const BitSize &)
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::FunctionInput, 16 > > key
std::vector< Acir::Witness > outputs
std::vector< Acir::FunctionInput > inputs
friend bool operator==(const AES128Encrypt &, const AES128Encrypt &)
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::FunctionInput, 16 > > iv
friend bool operator==(const AND &, const AND &)
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::Witness, 32 > > outputs
friend bool operator==(const Blake2s &, const Blake2s &)
std::vector< Acir::FunctionInput > inputs
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::Witness, 32 > > outputs
std::vector< Acir::FunctionInput > inputs
friend bool operator==(const Blake3 &, const Blake3 &)
std::shared_ptr< std::array< Acir::FunctionInput, 32 > > public_key_x
std::shared_ptr< std::array< Acir::FunctionInput, 32 > > hashed_message
friend bool operator==(const EcdsaSecp256k1 &, const EcdsaSecp256k1 &)
std::shared_ptr< std::array< Acir::FunctionInput, 32 > > public_key_y
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::FunctionInput, 64 > > signature
Acir::FunctionInput predicate
std::shared_ptr< std::array< Acir::FunctionInput, 32 > > public_key_x
friend bool operator==(const EcdsaSecp256r1 &, const EcdsaSecp256r1 &)
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::FunctionInput, 32 > > hashed_message
std::shared_ptr< std::array< Acir::FunctionInput, 32 > > public_key_y
std::shared_ptr< std::array< Acir::FunctionInput, 64 > > signature
Acir::FunctionInput predicate
std::shared_ptr< std::array< Acir::Witness, 3 > > outputs
friend bool operator==(const EmbeddedCurveAdd &, const EmbeddedCurveAdd &)
std::shared_ptr< std::array< Acir::FunctionInput, 3 > > input2
Acir::FunctionInput predicate
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::FunctionInput, 3 > > input1
std::shared_ptr< std::array< Acir::FunctionInput, 25 > > inputs
friend bool operator==(const Keccakf1600 &, const Keccakf1600 &)
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::Witness, 25 > > outputs
std::vector< Acir::FunctionInput > scalars
Acir::FunctionInput predicate
std::vector< Acir::FunctionInput > points
std::shared_ptr< std::array< Acir::Witness, 3 > > outputs
friend bool operator==(const MultiScalarMul &, const MultiScalarMul &)
void msgpack_unpack(msgpack::object const &o)
std::vector< Acir::Witness > outputs
std::vector< Acir::FunctionInput > inputs
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Poseidon2Permutation &, const Poseidon2Permutation &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const RANGE &, const RANGE &)
Acir::FunctionInput input
std::vector< Acir::FunctionInput > verification_key
std::vector< Acir::FunctionInput > proof
Acir::FunctionInput predicate
Acir::FunctionInput key_hash
std::vector< Acir::FunctionInput > public_inputs
friend bool operator==(const RecursiveAggregation &, const RecursiveAggregation &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::FunctionInput, 8 > > hash_values
friend bool operator==(const Sha256Compression &, const Sha256Compression &)
std::shared_ptr< std::array< Acir::FunctionInput, 16 > > inputs
std::shared_ptr< std::array< Acir::Witness, 8 > > outputs
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const XOR &, const XOR &)
friend bool operator==(const BlackBoxFuncCall &, const BlackBoxFuncCall &)
void msgpack_unpack(msgpack::object const &o)
std::variant< AES128Encrypt, AND, XOR, RANGE, Blake2s, Blake3, EcdsaSecp256k1, EcdsaSecp256r1, MultiScalarMul, EmbeddedCurveAdd, Keccakf1600, RecursiveAggregation, Poseidon2Permutation, Sha256Compression > value
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const AES128Encrypt &, const AES128Encrypt &)
friend bool operator==(const Blake2s &, const Blake2s &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Blake3 &, const Blake3 &)
Acir::HeapArray hashed_msg
Acir::MemoryAddress result
void msgpack_unpack(msgpack::object const &o)
Acir::HeapArray public_key_y
Acir::HeapArray signature
friend bool operator==(const EcdsaSecp256k1 &, const EcdsaSecp256k1 &)
Acir::HeapArray public_key_x
Acir::MemoryAddress result
void msgpack_unpack(msgpack::object const &o)
Acir::HeapArray signature
friend bool operator==(const EcdsaSecp256r1 &, const EcdsaSecp256r1 &)
Acir::HeapArray public_key_y
Acir::HeapArray public_key_x
Acir::HeapArray hashed_msg
Acir::MemoryAddress input1_x
friend bool operator==(const EmbeddedCurveAdd &, const EmbeddedCurveAdd &)
Acir::MemoryAddress input2_infinite
Acir::MemoryAddress input1_y
Acir::MemoryAddress input1_infinite
Acir::MemoryAddress input2_x
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress input2_y
friend bool operator==(const Keccakf1600 &, const Keccakf1600 &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const MultiScalarMul &, const MultiScalarMul &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Poseidon2Permutation &, const Poseidon2Permutation &)
friend bool operator==(const Sha256Compression &, const Sha256Compression &)
void msgpack_unpack(msgpack::object const &o)
Acir::HeapArray hash_values
friend bool operator==(const ToRadix &, const ToRadix &)
Acir::MemoryAddress output_pointer
Acir::MemoryAddress radix
Acir::MemoryAddress output_bits
Acir::MemoryAddress input
Acir::MemoryAddress num_limbs
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const BlackBoxOp &, const BlackBoxOp &)
std::variant< AES128Encrypt, Blake2s, Blake3, Keccakf1600, EcdsaSecp256k1, EcdsaSecp256r1, MultiScalarMul, EmbeddedCurveAdd, Poseidon2Permutation, Sha256Compression, ToRadix > value
friend bool operator==(const BlockId &, const BlockId &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const CallData &, const CallData &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Memory &, const Memory &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const ReturnData &, const ReturnData &)
void msgpack_unpack(msgpack::object const &o)
std::variant< Memory, CallData, ReturnData > value
friend bool operator==(const BlockType &, const BlockType &)
friend bool operator==(const BrilligBytecode &, const BrilligBytecode &)
std::vector< Acir::BrilligOpcode > bytecode
std::string function_name
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const BinaryFieldOp &, const BinaryFieldOp &)
Acir::MemoryAddress destination
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress destination
friend bool operator==(const BinaryIntOp &, const BinaryIntOp &)
Acir::IntegerBitSize bit_size
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const BlackBox &, const BlackBox &)
friend bool operator==(const Call &, const Call &)
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress offset_address
friend bool operator==(const CalldataCopy &, const CalldataCopy &)
Acir::MemoryAddress destination_address
Acir::MemoryAddress size_address
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress source
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress destination
friend bool operator==(const Cast &, const Cast &)
Acir::MemoryAddress source_b
friend bool operator==(const ConditionalMov &, const ConditionalMov &)
Acir::MemoryAddress source_a
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress destination
Acir::MemoryAddress condition
friend bool operator==(const Const &, const Const &)
std::vector< uint8_t > value
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress destination
std::vector< Acir::HeapValueType > input_value_types
std::vector< Acir::HeapValueType > destination_value_types
std::vector< Acir::ValueOrArray > destinations
friend bool operator==(const ForeignCall &, const ForeignCall &)
void msgpack_unpack(msgpack::object const &o)
std::vector< Acir::ValueOrArray > inputs
std::vector< uint8_t > value
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const IndirectConst &, const IndirectConst &)
Acir::MemoryAddress destination_pointer
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Jump &, const Jump &)
Acir::MemoryAddress condition
friend bool operator==(const JumpIf &, const JumpIf &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress destination
Acir::MemoryAddress source_pointer
friend bool operator==(const Load &, const Load &)
Acir::MemoryAddress destination
friend bool operator==(const Mov &, const Mov &)
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress source
friend bool operator==(const Not &, const Not &)
Acir::MemoryAddress source
Acir::IntegerBitSize bit_size
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress destination
friend bool operator==(const Return &, const Return &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Stop &, const Stop &)
void msgpack_unpack(msgpack::object const &o)
Acir::HeapVector return_data
friend bool operator==(const Store &, const Store &)
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress source
Acir::MemoryAddress destination_pointer
friend bool operator==(const Trap &, const Trap &)
void msgpack_unpack(msgpack::object const &o)
Acir::HeapVector revert_data
std::variant< BinaryFieldOp, BinaryIntOp, Not, Cast, JumpIf, Jump, CalldataCopy, Call, Const, IndirectConst, Return, ForeignCall, Mov, ConditionalMov, Load, Store, BlackBox, Trap, Stop > value
friend bool operator==(const BrilligOpcode &, const BrilligOpcode &)
void msgpack_unpack(msgpack::object const &o)
std::vector< Acir::Witness > value
friend bool operator==(const Array &, const Array &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Simple &, const Simple &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const BrilligOutputs &, const BrilligOutputs &)
void msgpack_unpack(msgpack::object const &o)
std::variant< Simple, Array > value
Acir::PublicInputs return_values
std::vector< Acir::Opcode > opcodes
friend bool operator==(const Circuit &, const Circuit &)
std::optional< uint32_t > current_witness_index
void msgpack_unpack(msgpack::object const &o)
std::vector< Acir::Witness > private_parameters
Acir::PublicInputs public_parameters
std::string function_name
std::vector< std::tuple< Acir::OpcodeLocation, Acir::AssertionPayload > > assert_messages
std::vector< std::tuple< std::vector< uint8_t >, Acir::Witness > > linear_combinations
std::vector< uint8_t > q_c
std::vector< std::tuple< std::vector< uint8_t >, Acir::Witness, Acir::Witness > > mul_terms
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Expression &, const Expression &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Expression &, const Expression &)
friend bool operator==(const Memory &, const Memory &)
void msgpack_unpack(msgpack::object const &o)
std::variant< Expression, Memory > value
friend bool operator==(const ExpressionOrMemory &, const ExpressionOrMemory &)
void msgpack_unpack(msgpack::object const &o)
Acir::SemiFlattenedLength size
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const HeapArray &, const HeapArray &)
Acir::MemoryAddress pointer
Acir::SemanticLength size
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Array &, const Array &)
std::vector< Acir::HeapValueType > value_types
friend bool operator==(const Simple &, const Simple &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Vector &, const Vector &)
void msgpack_unpack(msgpack::object const &o)
std::vector< Acir::HeapValueType > value_types
friend bool operator==(const HeapValueType &, const HeapValueType &)
void msgpack_unpack(msgpack::object const &o)
std::variant< Simple, Array, Vector > value
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const HeapVector &, const HeapVector &)
Acir::MemoryAddress pointer
static void conv_fld_from_kvmap(std::map< std::string, msgpack::object const * > const &kvmap, std::string const &struct_name, std::string const &field_name, T &field, bool is_optional)
static std::map< std::string, msgpack::object const * > make_kvmap(msgpack::object const &o, std::string const &name)
static void conv_fld_from_array(msgpack::object_array const &array, std::string const &struct_name, std::string const &field_name, T &field, uint32_t index)
friend bool operator==(const U128 &, const U128 &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const U16 &, const U16 &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const U1 &, const U1 &)
friend bool operator==(const U32 &, const U32 &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const U64 &, const U64 &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const U8 &, const U8 &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const IntegerBitSize &, const IntegerBitSize &)
std::variant< U1, U8, U16, U32, U64, U128 > value
friend bool operator==(const MemOp &, const MemOp &)
void msgpack_unpack(msgpack::object const &o)
Acir::Expression operation
friend bool operator==(const Direct &, const Direct &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Relative &, const Relative &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const MemoryAddress &, const MemoryAddress &)
std::variant< Direct, Relative > value
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const AssertZero &, const AssertZero &)
void msgpack_unpack(msgpack::object const &o)
Acir::BlackBoxFuncCall value
friend bool operator==(const BlackBoxFuncCall &, const BlackBoxFuncCall &)
std::optional< Acir::Expression > predicate
friend bool operator==(const BrilligCall &, const BrilligCall &)
std::vector< Acir::BrilligInputs > inputs
std::vector< Acir::BrilligOutputs > outputs
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Call &, const Call &)
std::vector< Acir::Witness > outputs
std::optional< Acir::Expression > predicate
std::vector< Acir::Witness > inputs
std::vector< Acir::Witness > init
Acir::BlockType block_type
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const MemoryInit &, const MemoryInit &)
friend bool operator==(const MemoryOp &, const MemoryOp &)
void msgpack_unpack(msgpack::object const &o)
std::variant< AssertZero, BlackBoxFuncCall, MemoryOp, MemoryInit, BrilligCall, Call > value
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Opcode &, const Opcode &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Acir &, const Acir &)
friend bool operator==(const Brillig &, const Brillig &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const OpcodeLocation &, const OpcodeLocation &)
void msgpack_unpack(msgpack::object const &o)
std::variant< Acir, Brillig > value
std::vector< Acir::Circuit > functions
friend bool operator==(const Program &, const Program &)
std::vector< Acir::BrilligBytecode > unconstrained_functions
void msgpack_unpack(msgpack::object const &o)
std::vector< Acir::Circuit > functions
void msgpack_unpack(msgpack::object const &o)
std::monostate unconstrained_functions
friend bool operator==(const ProgramWithoutBrillig &, const ProgramWithoutBrillig &)
friend bool operator==(const SemanticLength &, const SemanticLength &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const SemiFlattenedLength &, const SemiFlattenedLength &)
friend bool operator==(const HeapArray &, const HeapArray &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const HeapVector &, const HeapVector &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const MemoryAddress &, const MemoryAddress &)
Acir::MemoryAddress value
void msgpack_unpack(msgpack::object const &o)
std::variant< MemoryAddress, HeapArray, HeapVector > value
friend bool operator==(const ValueOrArray &, const ValueOrArray &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Witness &, const Witness &)
static T deserialize(Deserializer &deserializer)
static void serialize(const T &value, Serializer &serializer)
void throw_or_abort(std::string const &err)