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()) {
35 if (!is_optional && it->second->type == msgpack::type::NIL) {
36 throw_or_abort(
"nil value for required field: " + struct_name +
"::" + field_name);
39 it->second->convert(field);
40 }
catch (
const msgpack::type_error&) {
42 throw_or_abort(
"error converting into field " + struct_name +
"::" + field_name);
44 }
else if (!is_optional) {
45 throw_or_abort(
"missing field: " + struct_name +
"::" + field_name);
51 std::string
const& struct_name,
52 std::string
const& field_name,
56 if (
index >= array.size) {
59 auto element = array.ptr[
index];
60 if (element.type == msgpack::type::NIL) {
61 throw_or_abort(
"nil value for required field: " + struct_name +
"::" + field_name);
64 element.convert(field);
65 }
catch (
const msgpack::type_error&) {
67 throw_or_abort(
"error converting into field " + struct_name +
"::" + field_name);
141 switch (
value.index()) {
172 tag =
"LessThanEquals";
182 [&packer,
tag](
const auto& arg) {
194 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
198 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
203 if (o.type == msgpack::type::object_type::MAP) {
204 o.via.map.ptr[0].key.convert(
tag);
208 }
catch (
const msgpack::type_error&) {
210 throw_or_abort(
"error converting tag to string for enum 'BinaryFieldOp'");
215 }
else if (
tag ==
"Sub") {
218 }
else if (
tag ==
"Mul") {
221 }
else if (
tag ==
"Div") {
224 }
else if (
tag ==
"IntegerDiv") {
227 }
else if (
tag ==
"Equals") {
230 }
else if (
tag ==
"LessThan") {
233 }
else if (
tag ==
"LessThanEquals") {
329 std::variant<Add, Sub, Mul, Div, Equals, LessThan, LessThanEquals, And, Or, Xor, Shl, Shr> value;
337 switch (
value.index()) {
364 tag =
"LessThanEquals";
394 [&packer,
tag](
const auto& arg) {
406 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
410 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
415 if (o.type == msgpack::type::object_type::MAP) {
416 o.via.map.ptr[0].key.convert(
tag);
420 }
catch (
const msgpack::type_error&) {
422 throw_or_abort(
"error converting tag to string for enum 'BinaryIntOp'");
427 }
else if (
tag ==
"Sub") {
430 }
else if (
tag ==
"Mul") {
433 }
else if (
tag ==
"Div") {
436 }
else if (
tag ==
"Equals") {
439 }
else if (
tag ==
"LessThan") {
442 }
else if (
tag ==
"LessThanEquals") {
445 }
else if (
tag ==
"And") {
448 }
else if (
tag ==
"Or") {
451 }
else if (
tag ==
"Xor") {
454 }
else if (
tag ==
"Shl") {
457 }
else if (
tag ==
"Shr") {
519 switch (
value.index()) {
552 [&packer,
tag](
const auto& arg) {
564 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
568 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
573 if (o.type == msgpack::type::object_type::MAP) {
574 o.via.map.ptr[0].key.convert(
tag);
578 }
catch (
const msgpack::type_error&) {
580 throw_or_abort(
"error converting tag to string for enum 'IntegerBitSize'");
585 }
else if (
tag ==
"U8") {
588 }
else if (
tag ==
"U16") {
591 }
else if (
tag ==
"U32") {
594 }
else if (
tag ==
"U64") {
597 }
else if (
tag ==
"U128") {
627 }
catch (
const msgpack::type_error&) {
642 switch (
value.index()) {
659 [&packer,
tag](
const auto& arg) {
671 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
675 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
680 if (o.type == msgpack::type::object_type::MAP) {
681 o.via.map.ptr[0].key.convert(
tag);
685 }
catch (
const msgpack::type_error&) {
687 throw_or_abort(
"error converting tag to string for enum 'BitSize'");
689 if (
tag ==
"Field") {
692 }
else if (
tag ==
"Integer") {
695 o.via.map.ptr[0].val.convert(v);
696 }
catch (
const msgpack::type_error&) {
698 throw_or_abort(
"error converting into enum variant 'BitSize::Integer'");
722 }
catch (
const msgpack::type_error&) {
740 }
catch (
const msgpack::type_error&) {
755 switch (
value.index()) {
772 [&packer,
tag](
const auto& arg) {
784 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
788 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
793 if (o.type == msgpack::type::object_type::MAP) {
794 o.via.map.ptr[0].key.convert(
tag);
798 }
catch (
const msgpack::type_error&) {
800 throw_or_abort(
"error converting tag to string for enum 'MemoryAddress'");
802 if (
tag ==
"Direct") {
805 o.via.map.ptr[0].val.convert(v);
806 }
catch (
const msgpack::type_error&) {
808 throw_or_abort(
"error converting into enum variant 'MemoryAddress::Direct'");
812 }
else if (
tag ==
"Relative") {
815 o.via.map.ptr[0].val.convert(v);
816 }
catch (
const msgpack::type_error&) {
818 throw_or_abort(
"error converting into enum variant 'MemoryAddress::Relative'");
840 }
catch (
const msgpack::type_error&) {
842 throw_or_abort(
"error converting into newtype 'SemiFlattenedLength'");
855 packer.pack_array(2);
862 std::string name =
"HeapArray";
863 if (o.type == msgpack::type::MAP) {
867 }
else if (o.type == msgpack::type::ARRAY) {
868 auto array = o.via.array;
889 packer.pack_array(4);
898 std::string name =
"AES128Encrypt";
899 if (o.type == msgpack::type::MAP) {
905 }
else if (o.type == msgpack::type::ARRAY) {
906 auto array = o.via.array;
925 packer.pack_array(2);
932 std::string name =
"Blake2s";
933 if (o.type == msgpack::type::MAP) {
937 }
else if (o.type == msgpack::type::ARRAY) {
938 auto array = o.via.array;
955 packer.pack_array(2);
962 std::string name =
"Blake3";
963 if (o.type == msgpack::type::MAP) {
967 }
else if (o.type == msgpack::type::ARRAY) {
968 auto array = o.via.array;
985 packer.pack_array(2);
992 std::string name =
"Keccakf1600";
993 if (o.type == msgpack::type::MAP) {
997 }
else if (o.type == msgpack::type::ARRAY) {
998 auto array = o.via.array;
1018 packer.pack_array(5);
1028 std::string name =
"EcdsaSecp256k1";
1029 if (o.type == msgpack::type::MAP) {
1036 }
else if (o.type == msgpack::type::ARRAY) {
1037 auto array = o.via.array;
1060 packer.pack_array(5);
1070 std::string name =
"EcdsaSecp256r1";
1071 if (o.type == msgpack::type::MAP) {
1078 }
else if (o.type == msgpack::type::ARRAY) {
1079 auto array = o.via.array;
1100 packer.pack_array(3);
1108 std::string name =
"MultiScalarMul";
1109 if (o.type == msgpack::type::MAP) {
1114 }
else if (o.type == msgpack::type::ARRAY) {
1115 auto array = o.via.array;
1138 packer.pack_array(7);
1150 std::string name =
"EmbeddedCurveAdd";
1151 if (o.type == msgpack::type::MAP) {
1160 }
else if (o.type == msgpack::type::ARRAY) {
1161 auto array = o.via.array;
1183 packer.pack_array(2);
1190 std::string name =
"Poseidon2Permutation";
1191 if (o.type == msgpack::type::MAP) {
1195 }
else if (o.type == msgpack::type::ARRAY) {
1196 auto array = o.via.array;
1214 packer.pack_array(3);
1222 std::string name =
"Sha256Compression";
1223 if (o.type == msgpack::type::MAP) {
1228 }
else if (o.type == msgpack::type::ARRAY) {
1229 auto array = o.via.array;
1250 packer.pack_array(5);
1260 std::string name =
"ToRadix";
1261 if (o.type == msgpack::type::MAP) {
1268 }
else if (o.type == msgpack::type::ARRAY) {
1269 auto array = o.via.array;
1289 Poseidon2Permutation,
1300 switch (
value.index()) {
1303 tag =
"AES128Encrypt";
1315 tag =
"Keccakf1600";
1319 tag =
"EcdsaSecp256k1";
1323 tag =
"EcdsaSecp256r1";
1327 tag =
"MultiScalarMul";
1331 tag =
"EmbeddedCurveAdd";
1335 tag =
"Poseidon2Permutation";
1339 tag =
"Sha256Compression";
1353 [&packer,
tag](
const auto& arg) {
1365 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
1369 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
1374 if (o.type == msgpack::type::object_type::MAP) {
1375 o.via.map.ptr[0].key.convert(
tag);
1379 }
catch (
const msgpack::type_error&) {
1381 throw_or_abort(
"error converting tag to string for enum 'BlackBoxOp'");
1383 if (
tag ==
"AES128Encrypt") {
1386 o.via.map.ptr[0].val.convert(v);
1387 }
catch (
const msgpack::type_error&) {
1389 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::AES128Encrypt'");
1393 }
else if (
tag ==
"Blake2s") {
1396 o.via.map.ptr[0].val.convert(v);
1397 }
catch (
const msgpack::type_error&) {
1399 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Blake2s'");
1403 }
else if (
tag ==
"Blake3") {
1406 o.via.map.ptr[0].val.convert(v);
1407 }
catch (
const msgpack::type_error&) {
1409 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Blake3'");
1413 }
else if (
tag ==
"Keccakf1600") {
1416 o.via.map.ptr[0].val.convert(v);
1417 }
catch (
const msgpack::type_error&) {
1419 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Keccakf1600'");
1423 }
else if (
tag ==
"EcdsaSecp256k1") {
1426 o.via.map.ptr[0].val.convert(v);
1427 }
catch (
const msgpack::type_error&) {
1429 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EcdsaSecp256k1'");
1433 }
else if (
tag ==
"EcdsaSecp256r1") {
1436 o.via.map.ptr[0].val.convert(v);
1437 }
catch (
const msgpack::type_error&) {
1439 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EcdsaSecp256r1'");
1443 }
else if (
tag ==
"MultiScalarMul") {
1446 o.via.map.ptr[0].val.convert(v);
1447 }
catch (
const msgpack::type_error&) {
1449 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::MultiScalarMul'");
1453 }
else if (
tag ==
"EmbeddedCurveAdd") {
1456 o.via.map.ptr[0].val.convert(v);
1457 }
catch (
const msgpack::type_error&) {
1459 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EmbeddedCurveAdd'");
1463 }
else if (
tag ==
"Poseidon2Permutation") {
1466 o.via.map.ptr[0].val.convert(v);
1467 }
catch (
const msgpack::type_error&) {
1469 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Poseidon2Permutation'");
1473 }
else if (
tag ==
"Sha256Compression") {
1476 o.via.map.ptr[0].val.convert(v);
1477 }
catch (
const msgpack::type_error&) {
1479 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Sha256Compression'");
1483 }
else if (
tag ==
"ToRadix") {
1486 o.via.map.ptr[0].val.convert(v);
1487 }
catch (
const msgpack::type_error&) {
1489 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::ToRadix'");
1511 }
catch (
const msgpack::type_error&) {
1513 throw_or_abort(
"error converting into newtype 'SemanticLength'");
1518struct HeapValueType;
1533 }
catch (
const msgpack::type_error&) {
1548 packer.pack_array(2);
1555 std::string name =
"Array";
1556 if (o.type == msgpack::type::MAP) {
1560 }
else if (o.type == msgpack::type::ARRAY) {
1561 auto array = o.via.array;
1577 packer.pack_array(1);
1583 std::string name =
"Vector";
1584 if (o.type == msgpack::type::MAP) {
1587 }
else if (o.type == msgpack::type::ARRAY) {
1588 auto array = o.via.array;
1604 switch (
value.index()) {
1625 [&packer,
tag](
const auto& arg) {
1637 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
1641 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
1646 if (o.type == msgpack::type::object_type::MAP) {
1647 o.via.map.ptr[0].key.convert(
tag);
1651 }
catch (
const msgpack::type_error&) {
1653 throw_or_abort(
"error converting tag to string for enum 'HeapValueType'");
1655 if (
tag ==
"Simple") {
1658 o.via.map.ptr[0].val.convert(v);
1659 }
catch (
const msgpack::type_error&) {
1661 throw_or_abort(
"error converting into enum variant 'HeapValueType::Simple'");
1665 }
else if (
tag ==
"Array") {
1668 o.via.map.ptr[0].val.convert(v);
1669 }
catch (
const msgpack::type_error&) {
1671 throw_or_abort(
"error converting into enum variant 'HeapValueType::Array'");
1675 }
else if (
tag ==
"Vector") {
1678 o.via.map.ptr[0].val.convert(v);
1679 }
catch (
const msgpack::type_error&) {
1681 throw_or_abort(
"error converting into enum variant 'HeapValueType::Vector'");
1700 packer.pack_array(2);
1707 std::string name =
"HeapVector";
1708 if (o.type == msgpack::type::MAP) {
1712 }
else if (o.type == msgpack::type::ARRAY) {
1713 auto array = o.via.array;
1735 }
catch (
const msgpack::type_error&) {
1753 }
catch (
const msgpack::type_error&) {
1771 }
catch (
const msgpack::type_error&) {
1786 switch (
value.index()) {
1789 tag =
"MemoryAddress";
1807 [&packer,
tag](
const auto& arg) {
1819 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
1823 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
1828 if (o.type == msgpack::type::object_type::MAP) {
1829 o.via.map.ptr[0].key.convert(
tag);
1833 }
catch (
const msgpack::type_error&) {
1835 throw_or_abort(
"error converting tag to string for enum 'ValueOrArray'");
1837 if (
tag ==
"MemoryAddress") {
1840 o.via.map.ptr[0].val.convert(v);
1841 }
catch (
const msgpack::type_error&) {
1843 throw_or_abort(
"error converting into enum variant 'ValueOrArray::MemoryAddress'");
1847 }
else if (
tag ==
"HeapArray") {
1850 o.via.map.ptr[0].val.convert(v);
1851 }
catch (
const msgpack::type_error&) {
1853 throw_or_abort(
"error converting into enum variant 'ValueOrArray::HeapArray'");
1857 }
else if (
tag ==
"HeapVector") {
1860 o.via.map.ptr[0].val.convert(v);
1861 }
catch (
const msgpack::type_error&) {
1863 throw_or_abort(
"error converting into enum variant 'ValueOrArray::HeapVector'");
1886 packer.pack_array(4);
1895 std::string name =
"BinaryFieldOp";
1896 if (o.type == msgpack::type::MAP) {
1902 }
else if (o.type == msgpack::type::ARRAY) {
1903 auto array = o.via.array;
1925 packer.pack_array(5);
1935 std::string name =
"BinaryIntOp";
1936 if (o.type == msgpack::type::MAP) {
1943 }
else if (o.type == msgpack::type::ARRAY) {
1944 auto array = o.via.array;
1965 packer.pack_array(3);
1973 std::string name =
"Not";
1974 if (o.type == msgpack::type::MAP) {
1979 }
else if (o.type == msgpack::type::ARRAY) {
1980 auto array = o.via.array;
1999 packer.pack_array(3);
2007 std::string name =
"Cast";
2008 if (o.type == msgpack::type::MAP) {
2013 }
else if (o.type == msgpack::type::ARRAY) {
2014 auto array = o.via.array;
2032 packer.pack_array(2);
2039 std::string name =
"JumpIf";
2040 if (o.type == msgpack::type::MAP) {
2044 }
else if (o.type == msgpack::type::ARRAY) {
2045 auto array = o.via.array;
2061 packer.pack_array(1);
2067 std::string name =
"Jump";
2068 if (o.type == msgpack::type::MAP) {
2071 }
else if (o.type == msgpack::type::ARRAY) {
2072 auto array = o.via.array;
2089 packer.pack_array(3);
2097 std::string name =
"CalldataCopy";
2098 if (o.type == msgpack::type::MAP) {
2103 }
else if (o.type == msgpack::type::ARRAY) {
2104 auto array = o.via.array;
2121 packer.pack_array(1);
2127 std::string name =
"Call";
2128 if (o.type == msgpack::type::MAP) {
2131 }
else if (o.type == msgpack::type::ARRAY) {
2132 auto array = o.via.array;
2149 packer.pack_array(3);
2157 std::string name =
"Const";
2158 if (o.type == msgpack::type::MAP) {
2163 }
else if (o.type == msgpack::type::ARRAY) {
2164 auto array = o.via.array;
2183 packer.pack_array(3);
2191 std::string name =
"IndirectConst";
2192 if (o.type == msgpack::type::MAP) {
2197 }
else if (o.type == msgpack::type::ARRAY) {
2198 auto array = o.via.array;
2226 packer.pack_array(5);
2236 std::string name =
"ForeignCall";
2237 if (o.type == msgpack::type::MAP) {
2244 }
else if (o.type == msgpack::type::ARRAY) {
2245 auto array = o.via.array;
2265 packer.pack_array(2);
2272 std::string name =
"Mov";
2273 if (o.type == msgpack::type::MAP) {
2277 }
else if (o.type == msgpack::type::ARRAY) {
2278 auto array = o.via.array;
2297 packer.pack_array(4);
2306 std::string name =
"ConditionalMov";
2307 if (o.type == msgpack::type::MAP) {
2313 }
else if (o.type == msgpack::type::ARRAY) {
2314 auto array = o.via.array;
2333 packer.pack_array(2);
2340 std::string name =
"Load";
2341 if (o.type == msgpack::type::MAP) {
2345 }
else if (o.type == msgpack::type::ARRAY) {
2346 auto array = o.via.array;
2363 packer.pack_array(2);
2370 std::string name =
"Store";
2371 if (o.type == msgpack::type::MAP) {
2375 }
else if (o.type == msgpack::type::ARRAY) {
2376 auto array = o.via.array;
2396 }
catch (
const msgpack::type_error&) {
2410 packer.pack_array(1);
2416 std::string name =
"Trap";
2417 if (o.type == msgpack::type::MAP) {
2420 }
else if (o.type == msgpack::type::ARRAY) {
2421 auto array = o.via.array;
2436 packer.pack_array(1);
2442 std::string name =
"Stop";
2443 if (o.type == msgpack::type::MAP) {
2446 }
else if (o.type == msgpack::type::ARRAY) {
2447 auto array = o.via.array;
2482 switch (
value.index()) {
2485 tag =
"BinaryFieldOp";
2489 tag =
"BinaryIntOp";
2509 tag =
"CalldataCopy";
2521 tag =
"IndirectConst";
2529 tag =
"ForeignCall";
2537 tag =
"ConditionalMov";
2567 [&packer,
tag](
const auto& arg) {
2579 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
2583 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
2588 if (o.type == msgpack::type::object_type::MAP) {
2589 o.via.map.ptr[0].key.convert(
tag);
2593 }
catch (
const msgpack::type_error&) {
2595 throw_or_abort(
"error converting tag to string for enum 'BrilligOpcode'");
2597 if (
tag ==
"BinaryFieldOp") {
2600 o.via.map.ptr[0].val.convert(v);
2601 }
catch (
const msgpack::type_error&) {
2603 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BinaryFieldOp'");
2607 }
else if (
tag ==
"BinaryIntOp") {
2610 o.via.map.ptr[0].val.convert(v);
2611 }
catch (
const msgpack::type_error&) {
2613 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BinaryIntOp'");
2617 }
else if (
tag ==
"Not") {
2620 o.via.map.ptr[0].val.convert(v);
2621 }
catch (
const msgpack::type_error&) {
2623 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Not'");
2627 }
else if (
tag ==
"Cast") {
2630 o.via.map.ptr[0].val.convert(v);
2631 }
catch (
const msgpack::type_error&) {
2633 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Cast'");
2637 }
else if (
tag ==
"JumpIf") {
2640 o.via.map.ptr[0].val.convert(v);
2641 }
catch (
const msgpack::type_error&) {
2643 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::JumpIf'");
2647 }
else if (
tag ==
"Jump") {
2650 o.via.map.ptr[0].val.convert(v);
2651 }
catch (
const msgpack::type_error&) {
2653 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Jump'");
2657 }
else if (
tag ==
"CalldataCopy") {
2660 o.via.map.ptr[0].val.convert(v);
2661 }
catch (
const msgpack::type_error&) {
2663 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::CalldataCopy'");
2667 }
else if (
tag ==
"Call") {
2670 o.via.map.ptr[0].val.convert(v);
2671 }
catch (
const msgpack::type_error&) {
2673 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Call'");
2677 }
else if (
tag ==
"Const") {
2680 o.via.map.ptr[0].val.convert(v);
2681 }
catch (
const msgpack::type_error&) {
2683 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Const'");
2687 }
else if (
tag ==
"IndirectConst") {
2690 o.via.map.ptr[0].val.convert(v);
2691 }
catch (
const msgpack::type_error&) {
2693 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::IndirectConst'");
2697 }
else if (
tag ==
"Return") {
2700 }
else if (
tag ==
"ForeignCall") {
2703 o.via.map.ptr[0].val.convert(v);
2704 }
catch (
const msgpack::type_error&) {
2706 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::ForeignCall'");
2710 }
else if (
tag ==
"Mov") {
2713 o.via.map.ptr[0].val.convert(v);
2714 }
catch (
const msgpack::type_error&) {
2716 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Mov'");
2720 }
else if (
tag ==
"ConditionalMov") {
2723 o.via.map.ptr[0].val.convert(v);
2724 }
catch (
const msgpack::type_error&) {
2726 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::ConditionalMov'");
2730 }
else if (
tag ==
"Load") {
2733 o.via.map.ptr[0].val.convert(v);
2734 }
catch (
const msgpack::type_error&) {
2736 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Load'");
2740 }
else if (
tag ==
"Store") {
2743 o.via.map.ptr[0].val.convert(v);
2744 }
catch (
const msgpack::type_error&) {
2746 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Store'");
2750 }
else if (
tag ==
"BlackBox") {
2753 o.via.map.ptr[0].val.convert(v);
2754 }
catch (
const msgpack::type_error&) {
2756 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BlackBox'");
2760 }
else if (
tag ==
"Trap") {
2763 o.via.map.ptr[0].val.convert(v);
2764 }
catch (
const msgpack::type_error&) {
2766 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Trap'");
2770 }
else if (
tag ==
"Stop") {
2773 o.via.map.ptr[0].val.convert(v);
2774 }
catch (
const msgpack::type_error&) {
2776 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Stop'");
2798 }
catch (
const msgpack::type_error&) {
2818 }
catch (
const msgpack::type_error&) {
2836 }
catch (
const msgpack::type_error&) {
2851 switch (
value.index()) {
2868 [&packer,
tag](
const auto& arg) {
2880 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
2884 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
2889 if (o.type == msgpack::type::object_type::MAP) {
2890 o.via.map.ptr[0].key.convert(
tag);
2894 }
catch (
const msgpack::type_error&) {
2896 throw_or_abort(
"error converting tag to string for enum 'FunctionInput'");
2898 if (
tag ==
"Constant") {
2901 o.via.map.ptr[0].val.convert(v);
2902 }
catch (
const msgpack::type_error&) {
2904 throw_or_abort(
"error converting into enum variant 'FunctionInput::Constant'");
2908 }
else if (
tag ==
"Witness") {
2911 o.via.map.ptr[0].val.convert(v);
2912 }
catch (
const msgpack::type_error&) {
2914 throw_or_abort(
"error converting into enum variant 'FunctionInput::Witness'");
2937 packer.pack_array(4);
2946 std::string name =
"AES128Encrypt";
2947 if (o.type == msgpack::type::MAP) {
2953 }
else if (o.type == msgpack::type::ARRAY) {
2954 auto array = o.via.array;
2975 packer.pack_array(4);
2984 std::string name =
"AND";
2985 if (o.type == msgpack::type::MAP) {
2991 }
else if (o.type == msgpack::type::ARRAY) {
2992 auto array = o.via.array;
3013 packer.pack_array(4);
3022 std::string name =
"XOR";
3023 if (o.type == msgpack::type::MAP) {
3029 }
else if (o.type == msgpack::type::ARRAY) {
3030 auto array = o.via.array;
3049 packer.pack_array(2);
3056 std::string name =
"RANGE";
3057 if (o.type == msgpack::type::MAP) {
3061 }
else if (o.type == msgpack::type::ARRAY) {
3062 auto array = o.via.array;
3079 packer.pack_array(2);
3086 std::string name =
"Blake2s";
3087 if (o.type == msgpack::type::MAP) {
3091 }
else if (o.type == msgpack::type::ARRAY) {
3092 auto array = o.via.array;
3109 packer.pack_array(2);
3116 std::string name =
"Blake3";
3117 if (o.type == msgpack::type::MAP) {
3121 }
else if (o.type == msgpack::type::ARRAY) {
3122 auto array = o.via.array;
3143 packer.pack_array(6);
3154 std::string name =
"EcdsaSecp256k1";
3155 if (o.type == msgpack::type::MAP) {
3163 }
else if (o.type == msgpack::type::ARRAY) {
3164 auto array = o.via.array;
3189 packer.pack_array(6);
3200 std::string name =
"EcdsaSecp256r1";
3201 if (o.type == msgpack::type::MAP) {
3209 }
else if (o.type == msgpack::type::ARRAY) {
3210 auto array = o.via.array;
3233 packer.pack_array(4);
3242 std::string name =
"MultiScalarMul";
3243 if (o.type == msgpack::type::MAP) {
3249 }
else if (o.type == msgpack::type::ARRAY) {
3250 auto array = o.via.array;
3271 packer.pack_array(4);
3280 std::string name =
"EmbeddedCurveAdd";
3281 if (o.type == msgpack::type::MAP) {
3287 }
else if (o.type == msgpack::type::ARRAY) {
3288 auto array = o.via.array;
3307 packer.pack_array(2);
3314 std::string name =
"Keccakf1600";
3315 if (o.type == msgpack::type::MAP) {
3319 }
else if (o.type == msgpack::type::ARRAY) {
3320 auto array = o.via.array;
3341 packer.pack_array(6);
3352 std::string name =
"RecursiveAggregation";
3353 if (o.type == msgpack::type::MAP) {
3361 }
else if (o.type == msgpack::type::ARRAY) {
3362 auto array = o.via.array;
3383 packer.pack_array(2);
3390 std::string name =
"Poseidon2Permutation";
3391 if (o.type == msgpack::type::MAP) {
3395 }
else if (o.type == msgpack::type::ARRAY) {
3396 auto array = o.via.array;
3414 packer.pack_array(3);
3422 std::string name =
"Sha256Compression";
3423 if (o.type == msgpack::type::MAP) {
3428 }
else if (o.type == msgpack::type::ARRAY) {
3429 auto array = o.via.array;
3450 RecursiveAggregation,
3451 Poseidon2Permutation,
3461 switch (
value.index()) {
3464 tag =
"AES128Encrypt";
3488 tag =
"EcdsaSecp256k1";
3492 tag =
"EcdsaSecp256r1";
3496 tag =
"MultiScalarMul";
3500 tag =
"EmbeddedCurveAdd";
3504 tag =
"Keccakf1600";
3508 tag =
"RecursiveAggregation";
3512 tag =
"Poseidon2Permutation";
3516 tag =
"Sha256Compression";
3526 [&packer,
tag](
const auto& arg) {
3538 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
3542 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
3547 if (o.type == msgpack::type::object_type::MAP) {
3548 o.via.map.ptr[0].key.convert(
tag);
3552 }
catch (
const msgpack::type_error&) {
3554 throw_or_abort(
"error converting tag to string for enum 'BlackBoxFuncCall'");
3556 if (
tag ==
"AES128Encrypt") {
3559 o.via.map.ptr[0].val.convert(v);
3560 }
catch (
const msgpack::type_error&) {
3562 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::AES128Encrypt'");
3566 }
else if (
tag ==
"AND") {
3569 o.via.map.ptr[0].val.convert(v);
3570 }
catch (
const msgpack::type_error&) {
3572 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::AND'");
3576 }
else if (
tag ==
"XOR") {
3579 o.via.map.ptr[0].val.convert(v);
3580 }
catch (
const msgpack::type_error&) {
3582 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::XOR'");
3586 }
else if (
tag ==
"RANGE") {
3589 o.via.map.ptr[0].val.convert(v);
3590 }
catch (
const msgpack::type_error&) {
3592 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::RANGE'");
3596 }
else if (
tag ==
"Blake2s") {
3599 o.via.map.ptr[0].val.convert(v);
3600 }
catch (
const msgpack::type_error&) {
3602 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Blake2s'");
3606 }
else if (
tag ==
"Blake3") {
3609 o.via.map.ptr[0].val.convert(v);
3610 }
catch (
const msgpack::type_error&) {
3612 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Blake3'");
3616 }
else if (
tag ==
"EcdsaSecp256k1") {
3619 o.via.map.ptr[0].val.convert(v);
3620 }
catch (
const msgpack::type_error&) {
3622 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EcdsaSecp256k1'");
3626 }
else if (
tag ==
"EcdsaSecp256r1") {
3629 o.via.map.ptr[0].val.convert(v);
3630 }
catch (
const msgpack::type_error&) {
3632 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EcdsaSecp256r1'");
3636 }
else if (
tag ==
"MultiScalarMul") {
3639 o.via.map.ptr[0].val.convert(v);
3640 }
catch (
const msgpack::type_error&) {
3642 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::MultiScalarMul'");
3646 }
else if (
tag ==
"EmbeddedCurveAdd") {
3649 o.via.map.ptr[0].val.convert(v);
3650 }
catch (
const msgpack::type_error&) {
3652 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EmbeddedCurveAdd'");
3656 }
else if (
tag ==
"Keccakf1600") {
3659 o.via.map.ptr[0].val.convert(v);
3660 }
catch (
const msgpack::type_error&) {
3662 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Keccakf1600'");
3666 }
else if (
tag ==
"RecursiveAggregation") {
3669 o.via.map.ptr[0].val.convert(v);
3670 }
catch (
const msgpack::type_error&) {
3672 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::RecursiveAggregation'");
3676 }
else if (
tag ==
"Poseidon2Permutation") {
3679 o.via.map.ptr[0].val.convert(v);
3680 }
catch (
const msgpack::type_error&) {
3682 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Poseidon2Permutation'");
3686 }
else if (
tag ==
"Sha256Compression") {
3689 o.via.map.ptr[0].val.convert(v);
3690 }
catch (
const msgpack::type_error&) {
3692 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Sha256Compression'");
3714 }
catch (
const msgpack::type_error&) {
3741 }
catch (
const msgpack::type_error&) {
3763 switch (
value.index()) {
3784 [&packer,
tag](
const auto& arg) {
3796 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
3800 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
3805 if (o.type == msgpack::type::object_type::MAP) {
3806 o.via.map.ptr[0].key.convert(
tag);
3810 }
catch (
const msgpack::type_error&) {
3812 throw_or_abort(
"error converting tag to string for enum 'BlockType'");
3814 if (
tag ==
"Memory") {
3817 }
else if (
tag ==
"CallData") {
3820 o.via.map.ptr[0].val.convert(v);
3821 }
catch (
const msgpack::type_error&) {
3823 throw_or_abort(
"error converting into enum variant 'BlockType::CallData'");
3827 }
else if (
tag ==
"ReturnData") {
3846 packer.pack_array(3);
3854 std::string name =
"Expression";
3855 if (o.type == msgpack::type::MAP) {
3860 }
else if (o.type == msgpack::type::ARRAY) {
3861 auto array = o.via.array;
3884 }
catch (
const msgpack::type_error&) {
3902 }
catch (
const msgpack::type_error&) {
3920 }
catch (
const msgpack::type_error&) {
3935 switch (
value.index()) {
3946 tag =
"MemoryArray";
3956 [&packer,
tag](
const auto& arg) {
3968 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
3972 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
3977 if (o.type == msgpack::type::object_type::MAP) {
3978 o.via.map.ptr[0].key.convert(
tag);
3982 }
catch (
const msgpack::type_error&) {
3984 throw_or_abort(
"error converting tag to string for enum 'BrilligInputs'");
3986 if (
tag ==
"Single") {
3989 o.via.map.ptr[0].val.convert(v);
3990 }
catch (
const msgpack::type_error&) {
3992 throw_or_abort(
"error converting into enum variant 'BrilligInputs::Single'");
3996 }
else if (
tag ==
"Array") {
3999 o.via.map.ptr[0].val.convert(v);
4000 }
catch (
const msgpack::type_error&) {
4002 throw_or_abort(
"error converting into enum variant 'BrilligInputs::Array'");
4006 }
else if (
tag ==
"MemoryArray") {
4009 o.via.map.ptr[0].val.convert(v);
4010 }
catch (
const msgpack::type_error&) {
4012 throw_or_abort(
"error converting into enum variant 'BrilligInputs::MemoryArray'");
4036 }
catch (
const msgpack::type_error&) {
4054 }
catch (
const msgpack::type_error&) {
4069 switch (
value.index()) {
4086 [&packer,
tag](
const auto& arg) {
4098 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
4102 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
4107 if (o.type == msgpack::type::object_type::MAP) {
4108 o.via.map.ptr[0].key.convert(
tag);
4112 }
catch (
const msgpack::type_error&) {
4114 throw_or_abort(
"error converting tag to string for enum 'BrilligOutputs'");
4116 if (
tag ==
"Simple") {
4119 o.via.map.ptr[0].val.convert(v);
4120 }
catch (
const msgpack::type_error&) {
4122 throw_or_abort(
"error converting into enum variant 'BrilligOutputs::Simple'");
4126 }
else if (
tag ==
"Array") {
4129 o.via.map.ptr[0].val.convert(v);
4130 }
catch (
const msgpack::type_error&) {
4132 throw_or_abort(
"error converting into enum variant 'BrilligOutputs::Array'");
4152 packer.pack_array(3);
4160 std::string name =
"MemOp";
4161 if (o.type == msgpack::type::MAP) {
4166 }
else if (o.type == msgpack::type::ARRAY) {
4167 auto array = o.via.array;
4190 }
catch (
const msgpack::type_error&) {
4208 }
catch (
const msgpack::type_error&) {
4210 throw_or_abort(
"error converting into newtype 'BlackBoxFuncCall'");
4223 packer.pack_array(2);
4230 std::string name =
"MemoryOp";
4231 if (o.type == msgpack::type::MAP) {
4235 }
else if (o.type == msgpack::type::ARRAY) {
4236 auto array = o.via.array;
4254 packer.pack_array(3);
4262 std::string name =
"MemoryInit";
4263 if (o.type == msgpack::type::MAP) {
4268 }
else if (o.type == msgpack::type::ARRAY) {
4269 auto array = o.via.array;
4289 packer.pack_array(4);
4298 std::string name =
"BrilligCall";
4299 if (o.type == msgpack::type::MAP) {
4305 }
else if (o.type == msgpack::type::ARRAY) {
4306 auto array = o.via.array;
4327 packer.pack_array(4);
4336 std::string name =
"Call";
4337 if (o.type == msgpack::type::MAP) {
4343 }
else if (o.type == msgpack::type::ARRAY) {
4344 auto array = o.via.array;
4363 switch (
value.index()) {
4370 tag =
"BlackBoxFuncCall";
4382 tag =
"BrilligCall";
4396 [&packer,
tag](
const auto& arg) {
4408 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
4412 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
4417 if (o.type == msgpack::type::object_type::MAP) {
4418 o.via.map.ptr[0].key.convert(
tag);
4422 }
catch (
const msgpack::type_error&) {
4424 throw_or_abort(
"error converting tag to string for enum 'Opcode'");
4426 if (
tag ==
"AssertZero") {
4429 o.via.map.ptr[0].val.convert(v);
4430 }
catch (
const msgpack::type_error&) {
4432 throw_or_abort(
"error converting into enum variant 'Opcode::AssertZero'");
4436 }
else if (
tag ==
"BlackBoxFuncCall") {
4439 o.via.map.ptr[0].val.convert(v);
4440 }
catch (
const msgpack::type_error&) {
4442 throw_or_abort(
"error converting into enum variant 'Opcode::BlackBoxFuncCall'");
4446 }
else if (
tag ==
"MemoryOp") {
4449 o.via.map.ptr[0].val.convert(v);
4450 }
catch (
const msgpack::type_error&) {
4452 throw_or_abort(
"error converting into enum variant 'Opcode::MemoryOp'");
4456 }
else if (
tag ==
"MemoryInit") {
4459 o.via.map.ptr[0].val.convert(v);
4460 }
catch (
const msgpack::type_error&) {
4462 throw_or_abort(
"error converting into enum variant 'Opcode::MemoryInit'");
4466 }
else if (
tag ==
"BrilligCall") {
4469 o.via.map.ptr[0].val.convert(v);
4470 }
catch (
const msgpack::type_error&) {
4472 throw_or_abort(
"error converting into enum variant 'Opcode::BrilligCall'");
4476 }
else if (
tag ==
"Call") {
4479 o.via.map.ptr[0].val.convert(v);
4480 }
catch (
const msgpack::type_error&) {
4482 throw_or_abort(
"error converting into enum variant 'Opcode::Call'");
4506 }
catch (
const msgpack::type_error&) {
4524 }
catch (
const msgpack::type_error&) {
4539 switch (
value.index()) {
4556 [&packer,
tag](
const auto& arg) {
4568 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
4572 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
4577 if (o.type == msgpack::type::object_type::MAP) {
4578 o.via.map.ptr[0].key.convert(
tag);
4582 }
catch (
const msgpack::type_error&) {
4584 throw_or_abort(
"error converting tag to string for enum 'ExpressionOrMemory'");
4586 if (
tag ==
"Expression") {
4589 o.via.map.ptr[0].val.convert(v);
4590 }
catch (
const msgpack::type_error&) {
4592 throw_or_abort(
"error converting into enum variant 'ExpressionOrMemory::Expression'");
4596 }
else if (
tag ==
"Memory") {
4599 o.via.map.ptr[0].val.convert(v);
4600 }
catch (
const msgpack::type_error&) {
4602 throw_or_abort(
"error converting into enum variant 'ExpressionOrMemory::Memory'");
4621 packer.pack_array(2);
4628 std::string name =
"AssertionPayload";
4629 if (o.type == msgpack::type::MAP) {
4633 }
else if (o.type == msgpack::type::ARRAY) {
4634 auto array = o.via.array;
4656 }
catch (
const msgpack::type_error&) {
4671 packer.pack_array(2);
4678 std::string name =
"Brillig";
4679 if (o.type == msgpack::type::MAP) {
4683 }
else if (o.type == msgpack::type::ARRAY) {
4684 auto array = o.via.array;
4701 switch (
value.index()) {
4718 [&packer,
tag](
const auto& arg) {
4730 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
4734 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
4739 if (o.type == msgpack::type::object_type::MAP) {
4740 o.via.map.ptr[0].key.convert(
tag);
4744 }
catch (
const msgpack::type_error&) {
4746 throw_or_abort(
"error converting tag to string for enum 'OpcodeLocation'");
4748 if (
tag ==
"Acir") {
4751 o.via.map.ptr[0].val.convert(v);
4752 }
catch (
const msgpack::type_error&) {
4754 throw_or_abort(
"error converting into enum variant 'OpcodeLocation::Acir'");
4758 }
else if (
tag ==
"Brillig") {
4761 o.via.map.ptr[0].val.convert(v);
4762 }
catch (
const msgpack::type_error&) {
4764 throw_or_abort(
"error converting into enum variant 'OpcodeLocation::Brillig'");
4786 }
catch (
const msgpack::type_error&) {
4806 packer.pack_array(7);
4818 std::string name =
"Circuit";
4819 if (o.type == msgpack::type::MAP) {
4828 }
else if (o.type == msgpack::type::ARRAY) {
4829 auto array = o.via.array;
4851 packer.pack_array(2);
4858 std::string name =
"BrilligBytecode";
4859 if (o.type == msgpack::type::MAP) {
4863 }
else if (o.type == msgpack::type::ARRAY) {
4864 auto array = o.via.array;
4881 packer.pack_array(2);
4888 std::string name =
"Program";
4889 if (o.type == msgpack::type::MAP) {
4893 }
else if (o.type == msgpack::type::ARRAY) {
4894 auto array = o.via.array;
4911 packer.pack_array(2);
4918 std::string name =
"ProgramWithoutBrillig";
4919 if (o.type == msgpack::type::MAP) {
4922 }
else if (o.type == msgpack::type::ARRAY) {
4923 auto array = o.via.array;
4940 if (!(lhs.
payload == rhs.payload)) {
4949template <
typename Serializer>
4952 serializer.increase_container_depth();
4955 serializer.decrease_container_depth();
4959template <
typename Deserializer>
4962 deserializer.increase_container_depth();
4966 deserializer.decrease_container_depth();
4974 if (!(lhs.
value == rhs.value)) {
4983template <
typename Serializer>
4986 serializer.increase_container_depth();
4988 serializer.decrease_container_depth();
4992template <
typename Deserializer>
4995 deserializer.increase_container_depth();
4998 deserializer.decrease_container_depth();
5012template <
typename Serializer>
5014 Serializer& serializer)
5018template <
typename Deserializer>
5035template <
typename Serializer>
5037 Serializer& serializer)
5041template <
typename Deserializer>
5058template <
typename Serializer>
5060 Serializer& serializer)
5064template <
typename Deserializer>
5081template <
typename Serializer>
5083 Serializer& serializer)
5087template <
typename Deserializer>
5104template <
typename Serializer>
5106 Serializer& serializer)
5110template <
typename Deserializer>
5112 Deserializer& deserializer)
5128template <
typename Serializer>
5130 Serializer& serializer)
5134template <
typename Deserializer>
5151template <
typename Serializer>
5153 Serializer& serializer)
5157template <
typename Deserializer>
5159 Deserializer& deserializer)
5175template <
typename Serializer>
5177 Serializer& serializer)
5181template <
typename Deserializer>
5183 Deserializer& deserializer)
5193 if (!(lhs.
value == rhs.value)) {
5202template <
typename Serializer>
5205 serializer.increase_container_depth();
5207 serializer.decrease_container_depth();
5211template <
typename Deserializer>
5214 deserializer.increase_container_depth();
5217 deserializer.decrease_container_depth();
5231template <
typename Serializer>
5236template <
typename Deserializer>
5253template <
typename Serializer>
5258template <
typename Deserializer>
5275template <
typename Serializer>
5280template <
typename Deserializer>
5297template <
typename Serializer>
5302template <
typename Deserializer>
5319template <
typename Serializer>
5321 Serializer& serializer)
5325template <
typename Deserializer>
5342template <
typename Serializer>
5344 Serializer& serializer)
5348template <
typename Deserializer>
5365template <
typename Serializer>
5367 Serializer& serializer)
5371template <
typename Deserializer>
5373 Deserializer& deserializer)
5389template <
typename Serializer>
5394template <
typename Deserializer>
5411template <
typename Serializer>
5416template <
typename Deserializer>
5433template <
typename Serializer>
5438template <
typename Deserializer>
5455template <
typename Serializer>
5460template <
typename Deserializer>
5477template <
typename Serializer>
5482template <
typename Deserializer>
5493 if (!(lhs.
value == rhs.value)) {
5502template <
typename Serializer>
5505 serializer.increase_container_depth();
5507 serializer.decrease_container_depth();
5511template <
typename Deserializer>
5514 deserializer.increase_container_depth();
5517 deserializer.decrease_container_depth();
5531template <
typename Serializer>
5536template <
typename Deserializer>
5547 if (!(lhs.
value == rhs.value)) {
5556template <
typename Serializer>
5563template <
typename Deserializer>
5575 if (!(lhs.
value == rhs.value)) {
5584template <
typename Serializer>
5587 serializer.increase_container_depth();
5589 serializer.decrease_container_depth();
5593template <
typename Deserializer>
5596 deserializer.increase_container_depth();
5599 deserializer.decrease_container_depth();
5607 if (!(lhs.
inputs == rhs.inputs)) {
5610 if (!(lhs.
iv == rhs.iv)) {
5613 if (!(lhs.
key == rhs.key)) {
5616 if (!(lhs.
outputs == rhs.outputs)) {
5625template <
typename Serializer>
5636template <
typename Deserializer>
5638 Deserializer& deserializer)
5652 if (!(lhs.
lhs == rhs.lhs)) {
5655 if (!(lhs.
rhs == rhs.rhs)) {
5658 if (!(lhs.
num_bits == rhs.num_bits)) {
5661 if (!(lhs.
output == rhs.output)) {
5670template <
typename Serializer>
5672 Serializer& serializer)
5681template <
typename Deserializer>
5696 if (!(lhs.
lhs == rhs.lhs)) {
5699 if (!(lhs.
rhs == rhs.rhs)) {
5702 if (!(lhs.
num_bits == rhs.num_bits)) {
5705 if (!(lhs.
output == rhs.output)) {
5714template <
typename Serializer>
5716 Serializer& serializer)
5725template <
typename Deserializer>
5740 if (!(lhs.
input == rhs.input)) {
5743 if (!(lhs.
num_bits == rhs.num_bits)) {
5752template <
typename Serializer>
5754 Serializer& serializer)
5761template <
typename Deserializer>
5763 Deserializer& deserializer)
5775 if (!(lhs.
inputs == rhs.inputs)) {
5778 if (!(lhs.
outputs == rhs.outputs)) {
5787template <
typename Serializer>
5789 Serializer& serializer)
5796template <
typename Deserializer>
5798 Deserializer& deserializer)
5810 if (!(lhs.
inputs == rhs.inputs)) {
5813 if (!(lhs.
outputs == rhs.outputs)) {
5822template <
typename Serializer>
5824 Serializer& serializer)
5831template <
typename Deserializer>
5833 Deserializer& deserializer)
5851 if (!(lhs.
signature == rhs.signature)) {
5857 if (!(lhs.
predicate == rhs.predicate)) {
5860 if (!(lhs.
output == rhs.output)) {
5869template <
typename Serializer>
5882template <
typename Deserializer>
5884 Deserializer& deserializer)
5906 if (!(lhs.
signature == rhs.signature)) {
5912 if (!(lhs.
predicate == rhs.predicate)) {
5915 if (!(lhs.
output == rhs.output)) {
5924template <
typename Serializer>
5937template <
typename Deserializer>
5939 Deserializer& deserializer)
5955 if (!(lhs.
points == rhs.points)) {
5958 if (!(lhs.
scalars == rhs.scalars)) {
5961 if (!(lhs.
predicate == rhs.predicate)) {
5964 if (!(lhs.
outputs == rhs.outputs)) {
5973template <
typename Serializer>
5984template <
typename Deserializer>
5986 Deserializer& deserializer)
6000 if (!(lhs.
input1 == rhs.input1)) {
6003 if (!(lhs.
input2 == rhs.input2)) {
6006 if (!(lhs.
predicate == rhs.predicate)) {
6009 if (!(lhs.
outputs == rhs.outputs)) {
6018template <
typename Serializer>
6029template <
typename Deserializer>
6031 Deserializer& deserializer)
6045 if (!(lhs.
inputs == rhs.inputs)) {
6048 if (!(lhs.
outputs == rhs.outputs)) {
6057template <
typename Serializer>
6059 Serializer& serializer)
6066template <
typename Deserializer>
6068 Deserializer& deserializer)
6084 if (!(lhs.
proof == rhs.proof)) {
6090 if (!(lhs.
key_hash == rhs.key_hash)) {
6096 if (!(lhs.
predicate == rhs.predicate)) {
6105template <
typename Serializer>
6118template <
typename Deserializer>
6137 if (!(lhs.
inputs == rhs.inputs)) {
6140 if (!(lhs.
outputs == rhs.outputs)) {
6149template <
typename Serializer>
6158template <
typename Deserializer>
6172 if (!(lhs.
inputs == rhs.inputs)) {
6178 if (!(lhs.
outputs == rhs.outputs)) {
6187template <
typename Serializer>
6197template <
typename Deserializer>
6199 Deserializer& deserializer)
6212 if (!(lhs.
value == rhs.value)) {
6221template <
typename Serializer>
6224 serializer.increase_container_depth();
6226 serializer.decrease_container_depth();
6230template <
typename Deserializer>
6233 deserializer.increase_container_depth();
6236 deserializer.decrease_container_depth();
6244 if (!(lhs.
inputs == rhs.inputs)) {
6247 if (!(lhs.
iv == rhs.iv)) {
6250 if (!(lhs.
key == rhs.key)) {
6253 if (!(lhs.
outputs == rhs.outputs)) {
6262template <
typename Serializer>
6264 Serializer& serializer)
6273template <
typename Deserializer>
6275 Deserializer& deserializer)
6289 if (!(lhs.
message == rhs.message)) {
6292 if (!(lhs.
output == rhs.output)) {
6301template <
typename Serializer>
6303 Serializer& serializer)
6310template <
typename Deserializer>
6323 if (!(lhs.
message == rhs.message)) {
6326 if (!(lhs.
output == rhs.output)) {
6335template <
typename Serializer>
6337 Serializer& serializer)
6344template <
typename Deserializer>
6357 if (!(lhs.
input == rhs.input)) {
6360 if (!(lhs.
output == rhs.output)) {
6369template <
typename Serializer>
6371 Serializer& serializer)
6378template <
typename Deserializer>
6380 Deserializer& deserializer)
6401 if (!(lhs.
signature == rhs.signature)) {
6404 if (!(lhs.
result == rhs.result)) {
6413template <
typename Serializer>
6415 Serializer& serializer)
6425template <
typename Deserializer>
6427 Deserializer& deserializer)
6451 if (!(lhs.
signature == rhs.signature)) {
6454 if (!(lhs.
result == rhs.result)) {
6463template <
typename Serializer>
6465 Serializer& serializer)
6475template <
typename Deserializer>
6477 Deserializer& deserializer)
6492 if (!(lhs.
points == rhs.points)) {
6495 if (!(lhs.
scalars == rhs.scalars)) {
6498 if (!(lhs.
outputs == rhs.outputs)) {
6507template <
typename Serializer>
6509 Serializer& serializer)
6517template <
typename Deserializer>
6519 Deserializer& deserializer)
6532 if (!(lhs.
input1_x == rhs.input1_x)) {
6535 if (!(lhs.
input1_y == rhs.input1_y)) {
6541 if (!(lhs.
input2_x == rhs.input2_x)) {
6544 if (!(lhs.
input2_y == rhs.input2_y)) {
6550 if (!(lhs.
result == rhs.result)) {
6559template <
typename Serializer>
6561 Serializer& serializer)
6573template <
typename Deserializer>
6575 Deserializer& deserializer)
6592 if (!(lhs.
message == rhs.message)) {
6595 if (!(lhs.
output == rhs.output)) {
6604template <
typename Serializer>
6613template <
typename Deserializer>
6615 Deserializer& deserializer)
6627 if (!(lhs.
input == rhs.input)) {
6633 if (!(lhs.
output == rhs.output)) {
6642template <
typename Serializer>
6644 Serializer& serializer)
6652template <
typename Deserializer>
6654 Deserializer& deserializer)
6667 if (!(lhs.
input == rhs.input)) {
6670 if (!(lhs.
radix == rhs.radix)) {
6676 if (!(lhs.
num_limbs == rhs.num_limbs)) {
6688template <
typename Serializer>
6690 Serializer& serializer)
6700template <
typename Deserializer>
6716 if (!(lhs.
value == rhs.value)) {
6725template <
typename Serializer>
6728 serializer.increase_container_depth();
6730 serializer.decrease_container_depth();
6734template <
typename Deserializer>
6737 deserializer.increase_container_depth();
6740 deserializer.decrease_container_depth();
6748 if (!(lhs.
value == rhs.value)) {
6757template <
typename Serializer>
6760 serializer.increase_container_depth();
6762 serializer.decrease_container_depth();
6766template <
typename Deserializer>
6769 deserializer.increase_container_depth();
6772 deserializer.decrease_container_depth();
6786template <
typename Serializer>
6791template <
typename Deserializer>
6802 if (!(lhs.
value == rhs.value)) {
6811template <
typename Serializer>
6813 Serializer& serializer)
6819template <
typename Deserializer>
6837template <
typename Serializer>
6839 Serializer& serializer)
6843template <
typename Deserializer>
6857 if (!(lhs.
bytecode == rhs.bytecode)) {
6866template <
typename Serializer>
6869 serializer.increase_container_depth();
6872 serializer.decrease_container_depth();
6876template <
typename Deserializer>
6879 deserializer.increase_container_depth();
6883 deserializer.decrease_container_depth();
6891 if (!(lhs.
value == rhs.value)) {
6900template <
typename Serializer>
6903 serializer.increase_container_depth();
6905 serializer.decrease_container_depth();
6909template <
typename Deserializer>
6912 deserializer.increase_container_depth();
6915 deserializer.decrease_container_depth();
6923 if (!(lhs.
value == rhs.value)) {
6932template <
typename Serializer>
6934 Serializer& serializer)
6940template <
typename Deserializer>
6952 if (!(lhs.
value == rhs.value)) {
6961template <
typename Serializer>
6963 Serializer& serializer)
6969template <
typename Deserializer>
6981 if (!(lhs.
value == rhs.value)) {
6990template <
typename Serializer>
6992 Serializer& serializer)
6998template <
typename Deserializer>
7000 Deserializer& deserializer)
7011 if (!(lhs.
value == rhs.value)) {
7020template <
typename Serializer>
7023 serializer.increase_container_depth();
7025 serializer.decrease_container_depth();
7029template <
typename Deserializer>
7032 deserializer.increase_container_depth();
7035 deserializer.decrease_container_depth();
7046 if (!(lhs.
op == rhs.op)) {
7049 if (!(lhs.
lhs == rhs.lhs)) {
7052 if (!(lhs.
rhs == rhs.rhs)) {
7061template <
typename Serializer>
7063 Serializer& serializer)
7072template <
typename Deserializer>
7074 Deserializer& deserializer)
7091 if (!(lhs.
op == rhs.op)) {
7094 if (!(lhs.
bit_size == rhs.bit_size)) {
7097 if (!(lhs.
lhs == rhs.lhs)) {
7100 if (!(lhs.
rhs == rhs.rhs)) {
7109template <
typename Serializer>
7111 Serializer& serializer)
7121template <
typename Deserializer>
7123 Deserializer& deserializer)
7141 if (!(lhs.
source == rhs.source)) {
7144 if (!(lhs.
bit_size == rhs.bit_size)) {
7153template <
typename Serializer>
7155 Serializer& serializer)
7163template <
typename Deserializer>
7180 if (!(lhs.
source == rhs.source)) {
7183 if (!(lhs.
bit_size == rhs.bit_size)) {
7192template <
typename Serializer>
7194 Serializer& serializer)
7202template <
typename Deserializer>
7216 if (!(lhs.
condition == rhs.condition)) {
7219 if (!(lhs.
location == rhs.location)) {
7228template <
typename Serializer>
7230 Serializer& serializer)
7237template <
typename Deserializer>
7250 if (!(lhs.
location == rhs.location)) {
7259template <
typename Serializer>
7261 Serializer& serializer)
7267template <
typename Deserializer>
7294template <
typename Serializer>
7296 Serializer& serializer)
7304template <
typename Deserializer>
7306 Deserializer& deserializer)
7319 if (!(lhs.
location == rhs.location)) {
7328template <
typename Serializer>
7330 Serializer& serializer)
7336template <
typename Deserializer>
7351 if (!(lhs.
bit_size == rhs.bit_size)) {
7354 if (!(lhs.
value == rhs.value)) {
7363template <
typename Serializer>
7365 Serializer& serializer)
7373template <
typename Deserializer>
7390 if (!(lhs.
bit_size == rhs.bit_size)) {
7393 if (!(lhs.
value == rhs.value)) {
7402template <
typename Serializer>
7404 Serializer& serializer)
7412template <
typename Deserializer>
7414 Deserializer& deserializer)
7433template <
typename Serializer>
7435 Serializer& serializer)
7439template <
typename Deserializer>
7450 if (!(lhs.
function == rhs.function)) {
7459 if (!(lhs.
inputs == rhs.inputs)) {
7471template <
typename Serializer>
7473 Serializer& serializer)
7483template <
typename Deserializer>
7485 Deserializer& deserializer)
7504 if (!(lhs.
source == rhs.source)) {
7513template <
typename Serializer>
7515 Serializer& serializer)
7522template <
typename Deserializer>
7538 if (!(lhs.
source_a == rhs.source_a)) {
7541 if (!(lhs.
source_b == rhs.source_b)) {
7544 if (!(lhs.
condition == rhs.condition)) {
7553template <
typename Serializer>
7555 Serializer& serializer)
7564template <
typename Deserializer>
7566 Deserializer& deserializer)
7592template <
typename Serializer>
7594 Serializer& serializer)
7601template <
typename Deserializer>
7617 if (!(lhs.
source == rhs.source)) {
7626template <
typename Serializer>
7628 Serializer& serializer)
7635template <
typename Deserializer>
7648 if (!(lhs.
value == rhs.value)) {
7657template <
typename Serializer>
7659 Serializer& serializer)
7665template <
typename Deserializer>
7667 Deserializer& deserializer)
7687template <
typename Serializer>
7689 Serializer& serializer)
7695template <
typename Deserializer>
7716template <
typename Serializer>
7718 Serializer& serializer)
7724template <
typename Deserializer>
7736 if (!(lhs.
value == rhs.value)) {
7745template <
typename Serializer>
7748 serializer.increase_container_depth();
7750 serializer.decrease_container_depth();
7754template <
typename Deserializer>
7757 deserializer.increase_container_depth();
7760 deserializer.decrease_container_depth();
7768 if (!(lhs.
value == rhs.value)) {
7777template <
typename Serializer>
7779 Serializer& serializer)
7785template <
typename Deserializer>
7787 Deserializer& deserializer)
7798 if (!(lhs.
value == rhs.value)) {
7807template <
typename Serializer>
7809 Serializer& serializer)
7815template <
typename Deserializer>
7833 if (!(lhs.
opcodes == rhs.opcodes)) {
7854template <
typename Serializer>
7857 serializer.increase_container_depth();
7865 serializer.decrease_container_depth();
7869template <
typename Deserializer>
7872 deserializer.increase_container_depth();
7881 deserializer.decrease_container_depth();
7889 if (!(lhs.
mul_terms == rhs.mul_terms)) {
7895 if (!(lhs.
q_c == rhs.q_c)) {
7904template <
typename Serializer>
7907 serializer.increase_container_depth();
7911 serializer.decrease_container_depth();
7915template <
typename Deserializer>
7918 deserializer.increase_container_depth();
7923 deserializer.decrease_container_depth();
7931 if (!(lhs.
value == rhs.value)) {
7940template <
typename Serializer>
7942 Serializer& serializer)
7944 serializer.increase_container_depth();
7946 serializer.decrease_container_depth();
7950template <
typename Deserializer>
7953 deserializer.increase_container_depth();
7956 deserializer.decrease_container_depth();
7964 if (!(lhs.
value == rhs.value)) {
7973template <
typename Serializer>
7981template <
typename Deserializer>
7983 Deserializer& deserializer)
7994 if (!(lhs.
value == rhs.value)) {
8003template <
typename Serializer>
8005 Serializer& serializer)
8011template <
typename Deserializer>
8013 Deserializer& deserializer)
8024 if (!(lhs.
value == rhs.value)) {
8033template <
typename Serializer>
8036 serializer.increase_container_depth();
8038 serializer.decrease_container_depth();
8042template <
typename Deserializer>
8045 deserializer.increase_container_depth();
8048 deserializer.decrease_container_depth();
8056 if (!(lhs.
value == rhs.value)) {
8065template <
typename Serializer>
8067 Serializer& serializer)
8073template <
typename Deserializer>
8075 Deserializer& deserializer)
8086 if (!(lhs.
value == rhs.value)) {
8095template <
typename Serializer>
8097 Serializer& serializer)
8103template <
typename Deserializer>
8105 Deserializer& deserializer)
8116 if (!(lhs.
pointer == rhs.pointer)) {
8119 if (!(lhs.
size == rhs.size)) {
8128template <
typename Serializer>
8131 serializer.increase_container_depth();
8134 serializer.decrease_container_depth();
8138template <
typename Deserializer>
8141 deserializer.increase_container_depth();
8145 deserializer.decrease_container_depth();
8153 if (!(lhs.
value == rhs.value)) {
8162template <
typename Serializer>
8165 serializer.increase_container_depth();
8167 serializer.decrease_container_depth();
8171template <
typename Deserializer>
8174 deserializer.increase_container_depth();
8177 deserializer.decrease_container_depth();
8185 if (!(lhs.
value == rhs.value)) {
8194template <
typename Serializer>
8196 Serializer& serializer)
8202template <
typename Deserializer>
8217 if (!(lhs.
size == rhs.size)) {
8226template <
typename Serializer>
8228 Serializer& serializer)
8235template <
typename Deserializer>
8257template <
typename Serializer>
8259 Serializer& serializer)
8265template <
typename Deserializer>
8277 if (!(lhs.
pointer == rhs.pointer)) {
8280 if (!(lhs.
size == rhs.size)) {
8289template <
typename Serializer>
8292 serializer.increase_container_depth();
8295 serializer.decrease_container_depth();
8299template <
typename Deserializer>
8302 deserializer.increase_container_depth();
8306 deserializer.decrease_container_depth();
8314 if (!(lhs.
value == rhs.value)) {
8323template <
typename Serializer>
8326 serializer.increase_container_depth();
8328 serializer.decrease_container_depth();
8332template <
typename Deserializer>
8335 deserializer.increase_container_depth();
8338 deserializer.decrease_container_depth();
8352template <
typename Serializer>
8354 Serializer& serializer)
8358template <
typename Deserializer>
8375template <
typename Serializer>
8377 Serializer& serializer)
8381template <
typename Deserializer>
8398template <
typename Serializer>
8400 Serializer& serializer)
8404template <
typename Deserializer>
8421template <
typename Serializer>
8423 Serializer& serializer)
8427template <
typename Deserializer>
8444template <
typename Serializer>
8446 Serializer& serializer)
8450template <
typename Deserializer>
8467template <
typename Serializer>
8469 Serializer& serializer)
8473template <
typename Deserializer>
8484 if (!(lhs.
operation == rhs.operation)) {
8487 if (!(lhs.
index == rhs.index)) {
8490 if (!(lhs.
value == rhs.value)) {
8499template <
typename Serializer>
8502 serializer.increase_container_depth();
8506 serializer.decrease_container_depth();
8510template <
typename Deserializer>
8513 deserializer.increase_container_depth();
8518 deserializer.decrease_container_depth();
8526 if (!(lhs.
value == rhs.value)) {
8535template <
typename Serializer>
8538 serializer.increase_container_depth();
8540 serializer.decrease_container_depth();
8544template <
typename Deserializer>
8547 deserializer.increase_container_depth();
8550 deserializer.decrease_container_depth();
8558 if (!(lhs.
value == rhs.value)) {
8567template <
typename Serializer>
8569 Serializer& serializer)
8575template <
typename Deserializer>
8587 if (!(lhs.
value == rhs.value)) {
8596template <
typename Serializer>
8598 Serializer& serializer)
8604template <
typename Deserializer>
8606 Deserializer& deserializer)
8617 if (!(lhs.
value == rhs.value)) {
8626template <
typename Serializer>
8629 serializer.increase_container_depth();
8631 serializer.decrease_container_depth();
8635template <
typename Deserializer>
8638 deserializer.increase_container_depth();
8641 deserializer.decrease_container_depth();
8649 if (!(lhs.
value == rhs.value)) {
8658template <
typename Serializer>
8660 Serializer& serializer)
8666template <
typename Deserializer>
8678 if (!(lhs.
value == rhs.value)) {
8687template <
typename Serializer>
8689 Serializer& serializer)
8695template <
typename Deserializer>
8697 Deserializer& deserializer)
8708 if (!(lhs.
block_id == rhs.block_id)) {
8711 if (!(lhs.
op == rhs.op)) {
8720template <
typename Serializer>
8728template <
typename Deserializer>
8741 if (!(lhs.
block_id == rhs.block_id)) {
8744 if (!(lhs.
init == rhs.init)) {
8756template <
typename Serializer>
8758 Serializer& serializer)
8766template <
typename Deserializer>
8780 if (!(lhs.
id == rhs.id)) {
8783 if (!(lhs.
inputs == rhs.inputs)) {
8786 if (!(lhs.
outputs == rhs.outputs)) {
8789 if (!(lhs.
predicate == rhs.predicate)) {
8798template <
typename Serializer>
8800 Serializer& serializer)
8809template <
typename Deserializer>
8824 if (!(lhs.
id == rhs.id)) {
8827 if (!(lhs.
inputs == rhs.inputs)) {
8830 if (!(lhs.
outputs == rhs.outputs)) {
8833 if (!(lhs.
predicate == rhs.predicate)) {
8842template <
typename Serializer>
8852template <
typename Deserializer>
8867 if (!(lhs.
value == rhs.value)) {
8876template <
typename Serializer>
8879 serializer.increase_container_depth();
8881 serializer.decrease_container_depth();
8885template <
typename Deserializer>
8888 deserializer.increase_container_depth();
8891 deserializer.decrease_container_depth();
8899 if (!(lhs.
value == rhs.value)) {
8908template <
typename Serializer>
8910 Serializer& serializer)
8916template <
typename Deserializer>
8940template <
typename Serializer>
8942 Serializer& serializer)
8949template <
typename Deserializer>
8951 Deserializer& deserializer)
8963 if (!(lhs.
functions == rhs.functions)) {
8975template <
typename Serializer>
8978 serializer.increase_container_depth();
8981 serializer.decrease_container_depth();
8985template <
typename Deserializer>
8988 deserializer.increase_container_depth();
8993 deserializer.decrease_container_depth();
9001 if (!(lhs.
functions == rhs.functions)) {
9013template <
typename Serializer>
9015 Serializer& serializer)
9017 serializer.increase_container_depth();
9020 serializer.decrease_container_depth();
9024template <
typename Deserializer>
9027 deserializer.increase_container_depth();
9032 deserializer.decrease_container_depth();
9040 if (!(lhs.
value == rhs.value)) {
9049template <
typename Serializer>
9052 serializer.increase_container_depth();
9054 serializer.decrease_container_depth();
9058template <
typename Deserializer>
9061 deserializer.increase_container_depth();
9064 deserializer.decrease_container_depth();
9072 if (!(lhs.
value == rhs.value)) {
9081template <
typename Serializer>
9084 serializer.increase_container_depth();
9086 serializer.decrease_container_depth();
9090template <
typename Deserializer>
9093 deserializer.increase_container_depth();
9096 deserializer.decrease_container_depth();
9104 if (!(lhs.
value == rhs.value)) {
9113template <
typename Serializer>
9115 Serializer& serializer)
9117 serializer.increase_container_depth();
9119 serializer.decrease_container_depth();
9123template <
typename Deserializer>
9126 deserializer.increase_container_depth();
9129 deserializer.decrease_container_depth();
9137 if (!(lhs.
value == rhs.value)) {
9146template <
typename Serializer>
9149 serializer.increase_container_depth();
9151 serializer.decrease_container_depth();
9155template <
typename Deserializer>
9158 deserializer.increase_container_depth();
9161 deserializer.decrease_container_depth();
9169 if (!(lhs.
value == rhs.value)) {
9178template <
typename Serializer>
9180 Serializer& serializer)
9186template <
typename Deserializer>
9188 Deserializer& deserializer)
9199 if (!(lhs.
value == rhs.value)) {
9208template <
typename Serializer>
9210 Serializer& serializer)
9216template <
typename Deserializer>
9218 Deserializer& deserializer)
9229 if (!(lhs.
value == rhs.value)) {
9238template <
typename Serializer>
9240 Serializer& serializer)
9246template <
typename Deserializer>
9248 Deserializer& deserializer)
9259 if (!(lhs.
value == rhs.value)) {
9268template <
typename Serializer>
9271 serializer.increase_container_depth();
9273 serializer.decrease_container_depth();
9277template <
typename Deserializer>
9280 deserializer.increase_container_depth();
9283 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_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
friend bool operator==(const Add &, const Add &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Div &, const Div &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Equals &, const Equals &)
friend bool operator==(const IntegerDiv &, const IntegerDiv &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const LessThanEquals &, const LessThanEquals &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
friend bool operator==(const LessThan &, const LessThan &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Mul &, const Mul &)
void msgpack_pack(auto &packer) const
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_pack(auto &packer) const
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 &)
void msgpack_pack(auto &packer) const
void msgpack_pack(auto &packer) const
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_pack(auto &packer) const
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Equals &, const Equals &)
friend bool operator==(const LessThanEquals &, const LessThanEquals &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const LessThan &, const LessThan &)
void msgpack_pack(auto &packer) const
void msgpack_pack(auto &packer) const
friend bool operator==(const Mul &, const Mul &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
friend bool operator==(const Or &, const Or &)
friend bool operator==(const Shl &, const Shl &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Shr &, const Shr &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
friend bool operator==(const Sub &, const Sub &)
friend bool operator==(const Xor &, const Xor &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
void msgpack_pack(auto &packer) const
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)
void msgpack_pack(auto &packer) const
Acir::IntegerBitSize value
friend bool operator==(const Integer &, const Integer &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
std::variant< Field, Integer > value
friend bool operator==(const BitSize &, const BitSize &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
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)
void msgpack_pack(auto &packer) const
std::shared_ptr< std::array< Acir::Witness, 32 > > outputs
void msgpack_pack(auto &packer) const
friend bool operator==(const Blake2s &, const Blake2s &)
std::vector< Acir::FunctionInput > inputs
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
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
void msgpack_pack(auto &packer) const
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
void msgpack_pack(auto &packer) const
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 &)
void msgpack_pack(auto &packer) const
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)
void msgpack_pack(auto &packer) const
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_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
std::vector< Acir::Witness > outputs
std::vector< Acir::FunctionInput > inputs
void msgpack_pack(auto &packer) const
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 &)
void msgpack_pack(auto &packer) const
Acir::FunctionInput input
std::vector< Acir::FunctionInput > verification_key
std::vector< Acir::FunctionInput > proof
Acir::FunctionInput predicate
Acir::FunctionInput key_hash
void msgpack_pack(auto &packer) const
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_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
friend bool operator==(const XOR &, const XOR &)
void msgpack_pack(auto &packer) const
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)
void msgpack_pack(auto &packer) const
friend bool operator==(const AES128Encrypt &, const AES128Encrypt &)
friend bool operator==(const Blake2s &, const Blake2s &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
void msgpack_pack(auto &packer) const
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 &)
void msgpack_pack(auto &packer) const
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 &)
void msgpack_pack(auto &packer) const
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)
void msgpack_pack(auto &packer) const
Acir::MemoryAddress input2_y
friend bool operator==(const Keccakf1600 &, const Keccakf1600 &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const MultiScalarMul &, const MultiScalarMul &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Poseidon2Permutation &, const Poseidon2Permutation &)
friend bool operator==(const Sha256Compression &, const Sha256Compression &)
void msgpack_pack(auto &packer) const
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_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
friend bool operator==(const BlackBoxOp &, const BlackBoxOp &)
std::variant< AES128Encrypt, Blake2s, Blake3, Keccakf1600, EcdsaSecp256k1, EcdsaSecp256r1, MultiScalarMul, EmbeddedCurveAdd, Poseidon2Permutation, Sha256Compression, ToRadix > value
void msgpack_pack(auto &packer) const
friend bool operator==(const BlockId &, const BlockId &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const CallData &, const CallData &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Memory &, const Memory &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const ReturnData &, const ReturnData &)
void msgpack_pack(auto &packer) const
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
std::variant< Memory, CallData, ReturnData > value
friend bool operator==(const BlockType &, const BlockType &)
void msgpack_pack(auto &packer) const
friend bool operator==(const BrilligBytecode &, const BrilligBytecode &)
std::vector< Acir::BrilligOpcode > bytecode
std::string function_name
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
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
void msgpack_pack(auto &packer) const
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 &)
void msgpack_pack(auto &packer) const
void msgpack_pack(auto &packer) const
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
void msgpack_pack(auto &packer) const
Acir::MemoryAddress size_address
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress source
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
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)
void msgpack_pack(auto &packer) const
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)
void msgpack_pack(auto &packer) const
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)
void msgpack_pack(auto &packer) const
std::vector< Acir::ValueOrArray > inputs
std::vector< uint8_t > value
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const IndirectConst &, const IndirectConst &)
Acir::MemoryAddress destination_pointer
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Jump &, const Jump &)
void msgpack_pack(auto &packer) const
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 &)
void msgpack_pack(auto &packer) const
Acir::MemoryAddress destination
friend bool operator==(const Mov &, const Mov &)
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress source
void msgpack_pack(auto &packer) const
friend bool operator==(const Not &, const Not &)
Acir::MemoryAddress source
void msgpack_pack(auto &packer) const
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)
void msgpack_pack(auto &packer) const
friend bool operator==(const Stop &, const Stop &)
void msgpack_pack(auto &packer) const
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
void msgpack_pack(auto &packer) const
friend bool operator==(const Trap &, const Trap &)
void msgpack_pack(auto &packer) const
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_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
std::vector< Acir::Witness > value
friend bool operator==(const Array &, const Array &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
friend bool operator==(const Simple &, const Simple &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const BrilligOutputs &, const BrilligOutputs &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
std::variant< Simple, Array > value
Acir::PublicInputs return_values
void msgpack_pack(auto &packer) const
std::vector< Acir::Opcode > opcodes
friend bool operator==(const Circuit &, const Circuit &)
void msgpack_unpack(msgpack::object const &o)
uint32_t current_witness_index
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)
void msgpack_pack(auto &packer) const
friend bool operator==(const Expression &, const Expression &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Expression &, const Expression &)
void msgpack_pack(auto &packer) const
friend bool operator==(const Memory &, const Memory &)
void msgpack_unpack(msgpack::object const &o)
std::variant< Expression, Memory > value
void msgpack_pack(auto &packer) const
friend bool operator==(const ExpressionOrMemory &, const ExpressionOrMemory &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
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)
void msgpack_pack(auto &packer) const
friend bool operator==(const Array &, const Array &)
std::vector< Acir::HeapValueType > value_types
void msgpack_pack(auto &packer) const
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)
void msgpack_pack(auto &packer) const
std::vector< Acir::HeapValueType > value_types
void msgpack_pack(auto &packer) const
friend bool operator==(const HeapValueType &, const HeapValueType &)
void msgpack_unpack(msgpack::object const &o)
std::variant< Simple, Array, Vector > value
void msgpack_pack(auto &packer) const
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_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const U16 &, const U16 &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
friend bool operator==(const U1 &, const U1 &)
void msgpack_pack(auto &packer) const
friend bool operator==(const U32 &, const U32 &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const U64 &, const U64 &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
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
void msgpack_pack(auto &packer) const
friend bool operator==(const MemOp &, const MemOp &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
Acir::Expression operation
void msgpack_pack(auto &packer) const
friend bool operator==(const Direct &, const Direct &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
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 &)
void msgpack_pack(auto &packer) const
std::variant< Direct, Relative > value
void msgpack_pack(auto &packer) const
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 &)
void msgpack_pack(auto &packer) const
friend bool operator==(const BrilligCall &, const BrilligCall &)
std::vector< Acir::BrilligInputs > inputs
Acir::Expression predicate
void msgpack_pack(auto &packer) const
std::vector< Acir::BrilligOutputs > outputs
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
Acir::Expression predicate
friend bool operator==(const Call &, const Call &)
void msgpack_pack(auto &packer) const
std::vector< Acir::Witness > outputs
std::vector< Acir::Witness > inputs
std::vector< Acir::Witness > init
Acir::BlockType block_type
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
friend bool operator==(const MemoryInit &, const MemoryInit &)
friend bool operator==(const MemoryOp &, const MemoryOp &)
void msgpack_pack(auto &packer) const
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_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Acir &, const Acir &)
void msgpack_pack(auto &packer) const
friend bool operator==(const Brillig &, const Brillig &)
void msgpack_pack(auto &packer) const
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
void msgpack_pack(auto &packer) const
void msgpack_pack(auto &packer) const
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)
void msgpack_pack(auto &packer) const
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_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const SemiFlattenedLength &, const SemiFlattenedLength &)
void msgpack_pack(auto &packer) const
void msgpack_pack(auto &packer) const
friend bool operator==(const HeapArray &, const HeapArray &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
void msgpack_pack(auto &packer) const
friend bool operator==(const HeapVector &, const HeapVector &)
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const MemoryAddress &, const MemoryAddress &)
Acir::MemoryAddress value
void msgpack_pack(auto &packer) const
void msgpack_unpack(msgpack::object const &o)
std::variant< MemoryAddress, HeapArray, HeapVector > value
friend bool operator==(const ValueOrArray &, const ValueOrArray &)
void msgpack_pack(auto &packer) const
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)