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);
135 switch (
value.index()) {
166 tag =
"LessThanEquals";
176 [&packer,
tag](
const auto& arg) {
188 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
192 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
197 if (o.type == msgpack::type::object_type::MAP) {
198 o.via.map.ptr[0].key.convert(
tag);
202 }
catch (
const msgpack::type_error&) {
204 throw_or_abort(
"error converting tag to string for enum 'BinaryFieldOp'");
209 }
else if (
tag ==
"Sub") {
212 }
else if (
tag ==
"Mul") {
215 }
else if (
tag ==
"Div") {
218 }
else if (
tag ==
"IntegerDiv") {
221 }
else if (
tag ==
"Equals") {
224 }
else if (
tag ==
"LessThan") {
227 }
else if (
tag ==
"LessThanEquals") {
323 std::variant<Add, Sub, Mul, Div, Equals, LessThan, LessThanEquals, And, Or, Xor, Shl, Shr> value;
331 switch (
value.index()) {
358 tag =
"LessThanEquals";
388 [&packer,
tag](
const auto& arg) {
400 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
404 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
409 if (o.type == msgpack::type::object_type::MAP) {
410 o.via.map.ptr[0].key.convert(
tag);
414 }
catch (
const msgpack::type_error&) {
416 throw_or_abort(
"error converting tag to string for enum 'BinaryIntOp'");
421 }
else if (
tag ==
"Sub") {
424 }
else if (
tag ==
"Mul") {
427 }
else if (
tag ==
"Div") {
430 }
else if (
tag ==
"Equals") {
433 }
else if (
tag ==
"LessThan") {
436 }
else if (
tag ==
"LessThanEquals") {
439 }
else if (
tag ==
"And") {
442 }
else if (
tag ==
"Or") {
445 }
else if (
tag ==
"Xor") {
448 }
else if (
tag ==
"Shl") {
451 }
else if (
tag ==
"Shr") {
513 switch (
value.index()) {
546 [&packer,
tag](
const auto& arg) {
558 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
562 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
567 if (o.type == msgpack::type::object_type::MAP) {
568 o.via.map.ptr[0].key.convert(
tag);
572 }
catch (
const msgpack::type_error&) {
574 throw_or_abort(
"error converting tag to string for enum 'IntegerBitSize'");
579 }
else if (
tag ==
"U8") {
582 }
else if (
tag ==
"U16") {
585 }
else if (
tag ==
"U32") {
588 }
else if (
tag ==
"U64") {
591 }
else if (
tag ==
"U128") {
621 }
catch (
const msgpack::type_error&) {
636 switch (
value.index()) {
653 [&packer,
tag](
const auto& arg) {
665 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
669 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
674 if (o.type == msgpack::type::object_type::MAP) {
675 o.via.map.ptr[0].key.convert(
tag);
679 }
catch (
const msgpack::type_error&) {
681 throw_or_abort(
"error converting tag to string for enum 'BitSize'");
683 if (
tag ==
"Field") {
686 }
else if (
tag ==
"Integer") {
689 o.via.map.ptr[0].val.convert(v);
690 }
catch (
const msgpack::type_error&) {
692 throw_or_abort(
"error converting into enum variant 'BitSize::Integer'");
716 }
catch (
const msgpack::type_error&) {
734 }
catch (
const msgpack::type_error&) {
749 switch (
value.index()) {
766 [&packer,
tag](
const auto& arg) {
778 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
782 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
787 if (o.type == msgpack::type::object_type::MAP) {
788 o.via.map.ptr[0].key.convert(
tag);
792 }
catch (
const msgpack::type_error&) {
794 throw_or_abort(
"error converting tag to string for enum 'MemoryAddress'");
796 if (
tag ==
"Direct") {
799 o.via.map.ptr[0].val.convert(v);
800 }
catch (
const msgpack::type_error&) {
802 throw_or_abort(
"error converting into enum variant 'MemoryAddress::Direct'");
806 }
else if (
tag ==
"Relative") {
809 o.via.map.ptr[0].val.convert(v);
810 }
catch (
const msgpack::type_error&) {
812 throw_or_abort(
"error converting into enum variant 'MemoryAddress::Relative'");
834 }
catch (
const msgpack::type_error&) {
836 throw_or_abort(
"error converting into newtype 'SemiFlattenedLength'");
849 packer.pack_array(2);
856 std::string name =
"HeapArray";
857 if (o.type == msgpack::type::MAP) {
861 }
else if (o.type == msgpack::type::ARRAY) {
862 auto array = o.via.array;
883 packer.pack_array(4);
892 std::string name =
"AES128Encrypt";
893 if (o.type == msgpack::type::MAP) {
899 }
else if (o.type == msgpack::type::ARRAY) {
900 auto array = o.via.array;
919 packer.pack_array(2);
926 std::string name =
"Blake2s";
927 if (o.type == msgpack::type::MAP) {
931 }
else if (o.type == msgpack::type::ARRAY) {
932 auto array = o.via.array;
949 packer.pack_array(2);
956 std::string name =
"Blake3";
957 if (o.type == msgpack::type::MAP) {
961 }
else if (o.type == msgpack::type::ARRAY) {
962 auto array = o.via.array;
979 packer.pack_array(2);
986 std::string name =
"Keccakf1600";
987 if (o.type == msgpack::type::MAP) {
991 }
else if (o.type == msgpack::type::ARRAY) {
992 auto array = o.via.array;
1012 packer.pack_array(5);
1022 std::string name =
"EcdsaSecp256k1";
1023 if (o.type == msgpack::type::MAP) {
1030 }
else if (o.type == msgpack::type::ARRAY) {
1031 auto array = o.via.array;
1054 packer.pack_array(5);
1064 std::string name =
"EcdsaSecp256r1";
1065 if (o.type == msgpack::type::MAP) {
1072 }
else if (o.type == msgpack::type::ARRAY) {
1073 auto array = o.via.array;
1094 packer.pack_array(3);
1102 std::string name =
"MultiScalarMul";
1103 if (o.type == msgpack::type::MAP) {
1108 }
else if (o.type == msgpack::type::ARRAY) {
1109 auto array = o.via.array;
1132 packer.pack_array(7);
1144 std::string name =
"EmbeddedCurveAdd";
1145 if (o.type == msgpack::type::MAP) {
1154 }
else if (o.type == msgpack::type::ARRAY) {
1155 auto array = o.via.array;
1177 packer.pack_array(2);
1184 std::string name =
"Poseidon2Permutation";
1185 if (o.type == msgpack::type::MAP) {
1189 }
else if (o.type == msgpack::type::ARRAY) {
1190 auto array = o.via.array;
1208 packer.pack_array(3);
1216 std::string name =
"Sha256Compression";
1217 if (o.type == msgpack::type::MAP) {
1222 }
else if (o.type == msgpack::type::ARRAY) {
1223 auto array = o.via.array;
1244 packer.pack_array(5);
1254 std::string name =
"ToRadix";
1255 if (o.type == msgpack::type::MAP) {
1262 }
else if (o.type == msgpack::type::ARRAY) {
1263 auto array = o.via.array;
1283 Poseidon2Permutation,
1294 switch (
value.index()) {
1297 tag =
"AES128Encrypt";
1309 tag =
"Keccakf1600";
1313 tag =
"EcdsaSecp256k1";
1317 tag =
"EcdsaSecp256r1";
1321 tag =
"MultiScalarMul";
1325 tag =
"EmbeddedCurveAdd";
1329 tag =
"Poseidon2Permutation";
1333 tag =
"Sha256Compression";
1347 [&packer,
tag](
const auto& arg) {
1359 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
1363 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
1368 if (o.type == msgpack::type::object_type::MAP) {
1369 o.via.map.ptr[0].key.convert(
tag);
1373 }
catch (
const msgpack::type_error&) {
1375 throw_or_abort(
"error converting tag to string for enum 'BlackBoxOp'");
1377 if (
tag ==
"AES128Encrypt") {
1380 o.via.map.ptr[0].val.convert(v);
1381 }
catch (
const msgpack::type_error&) {
1383 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::AES128Encrypt'");
1387 }
else if (
tag ==
"Blake2s") {
1390 o.via.map.ptr[0].val.convert(v);
1391 }
catch (
const msgpack::type_error&) {
1393 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Blake2s'");
1397 }
else if (
tag ==
"Blake3") {
1400 o.via.map.ptr[0].val.convert(v);
1401 }
catch (
const msgpack::type_error&) {
1403 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Blake3'");
1407 }
else if (
tag ==
"Keccakf1600") {
1410 o.via.map.ptr[0].val.convert(v);
1411 }
catch (
const msgpack::type_error&) {
1413 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Keccakf1600'");
1417 }
else if (
tag ==
"EcdsaSecp256k1") {
1420 o.via.map.ptr[0].val.convert(v);
1421 }
catch (
const msgpack::type_error&) {
1423 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EcdsaSecp256k1'");
1427 }
else if (
tag ==
"EcdsaSecp256r1") {
1430 o.via.map.ptr[0].val.convert(v);
1431 }
catch (
const msgpack::type_error&) {
1433 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EcdsaSecp256r1'");
1437 }
else if (
tag ==
"MultiScalarMul") {
1440 o.via.map.ptr[0].val.convert(v);
1441 }
catch (
const msgpack::type_error&) {
1443 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::MultiScalarMul'");
1447 }
else if (
tag ==
"EmbeddedCurveAdd") {
1450 o.via.map.ptr[0].val.convert(v);
1451 }
catch (
const msgpack::type_error&) {
1453 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EmbeddedCurveAdd'");
1457 }
else if (
tag ==
"Poseidon2Permutation") {
1460 o.via.map.ptr[0].val.convert(v);
1461 }
catch (
const msgpack::type_error&) {
1463 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Poseidon2Permutation'");
1467 }
else if (
tag ==
"Sha256Compression") {
1470 o.via.map.ptr[0].val.convert(v);
1471 }
catch (
const msgpack::type_error&) {
1473 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Sha256Compression'");
1477 }
else if (
tag ==
"ToRadix") {
1480 o.via.map.ptr[0].val.convert(v);
1481 }
catch (
const msgpack::type_error&) {
1483 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::ToRadix'");
1505 }
catch (
const msgpack::type_error&) {
1507 throw_or_abort(
"error converting into newtype 'SemanticLength'");
1512struct HeapValueType;
1527 }
catch (
const msgpack::type_error&) {
1542 packer.pack_array(2);
1549 std::string name =
"Array";
1550 if (o.type == msgpack::type::MAP) {
1554 }
else if (o.type == msgpack::type::ARRAY) {
1555 auto array = o.via.array;
1571 packer.pack_array(1);
1577 std::string name =
"Vector";
1578 if (o.type == msgpack::type::MAP) {
1581 }
else if (o.type == msgpack::type::ARRAY) {
1582 auto array = o.via.array;
1598 switch (
value.index()) {
1619 [&packer,
tag](
const auto& arg) {
1631 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
1635 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
1640 if (o.type == msgpack::type::object_type::MAP) {
1641 o.via.map.ptr[0].key.convert(
tag);
1645 }
catch (
const msgpack::type_error&) {
1647 throw_or_abort(
"error converting tag to string for enum 'HeapValueType'");
1649 if (
tag ==
"Simple") {
1652 o.via.map.ptr[0].val.convert(v);
1653 }
catch (
const msgpack::type_error&) {
1655 throw_or_abort(
"error converting into enum variant 'HeapValueType::Simple'");
1659 }
else if (
tag ==
"Array") {
1662 o.via.map.ptr[0].val.convert(v);
1663 }
catch (
const msgpack::type_error&) {
1665 throw_or_abort(
"error converting into enum variant 'HeapValueType::Array'");
1669 }
else if (
tag ==
"Vector") {
1672 o.via.map.ptr[0].val.convert(v);
1673 }
catch (
const msgpack::type_error&) {
1675 throw_or_abort(
"error converting into enum variant 'HeapValueType::Vector'");
1694 packer.pack_array(2);
1701 std::string name =
"HeapVector";
1702 if (o.type == msgpack::type::MAP) {
1706 }
else if (o.type == msgpack::type::ARRAY) {
1707 auto array = o.via.array;
1729 }
catch (
const msgpack::type_error&) {
1747 }
catch (
const msgpack::type_error&) {
1765 }
catch (
const msgpack::type_error&) {
1780 switch (
value.index()) {
1783 tag =
"MemoryAddress";
1801 [&packer,
tag](
const auto& arg) {
1813 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
1817 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
1822 if (o.type == msgpack::type::object_type::MAP) {
1823 o.via.map.ptr[0].key.convert(
tag);
1827 }
catch (
const msgpack::type_error&) {
1829 throw_or_abort(
"error converting tag to string for enum 'ValueOrArray'");
1831 if (
tag ==
"MemoryAddress") {
1834 o.via.map.ptr[0].val.convert(v);
1835 }
catch (
const msgpack::type_error&) {
1837 throw_or_abort(
"error converting into enum variant 'ValueOrArray::MemoryAddress'");
1841 }
else if (
tag ==
"HeapArray") {
1844 o.via.map.ptr[0].val.convert(v);
1845 }
catch (
const msgpack::type_error&) {
1847 throw_or_abort(
"error converting into enum variant 'ValueOrArray::HeapArray'");
1851 }
else if (
tag ==
"HeapVector") {
1854 o.via.map.ptr[0].val.convert(v);
1855 }
catch (
const msgpack::type_error&) {
1857 throw_or_abort(
"error converting into enum variant 'ValueOrArray::HeapVector'");
1880 packer.pack_array(4);
1889 std::string name =
"BinaryFieldOp";
1890 if (o.type == msgpack::type::MAP) {
1896 }
else if (o.type == msgpack::type::ARRAY) {
1897 auto array = o.via.array;
1919 packer.pack_array(5);
1929 std::string name =
"BinaryIntOp";
1930 if (o.type == msgpack::type::MAP) {
1937 }
else if (o.type == msgpack::type::ARRAY) {
1938 auto array = o.via.array;
1959 packer.pack_array(3);
1967 std::string name =
"Not";
1968 if (o.type == msgpack::type::MAP) {
1973 }
else if (o.type == msgpack::type::ARRAY) {
1974 auto array = o.via.array;
1993 packer.pack_array(3);
2001 std::string name =
"Cast";
2002 if (o.type == msgpack::type::MAP) {
2007 }
else if (o.type == msgpack::type::ARRAY) {
2008 auto array = o.via.array;
2026 packer.pack_array(2);
2033 std::string name =
"JumpIf";
2034 if (o.type == msgpack::type::MAP) {
2038 }
else if (o.type == msgpack::type::ARRAY) {
2039 auto array = o.via.array;
2055 packer.pack_array(1);
2061 std::string name =
"Jump";
2062 if (o.type == msgpack::type::MAP) {
2065 }
else if (o.type == msgpack::type::ARRAY) {
2066 auto array = o.via.array;
2083 packer.pack_array(3);
2091 std::string name =
"CalldataCopy";
2092 if (o.type == msgpack::type::MAP) {
2097 }
else if (o.type == msgpack::type::ARRAY) {
2098 auto array = o.via.array;
2115 packer.pack_array(1);
2121 std::string name =
"Call";
2122 if (o.type == msgpack::type::MAP) {
2125 }
else if (o.type == msgpack::type::ARRAY) {
2126 auto array = o.via.array;
2143 packer.pack_array(3);
2151 std::string name =
"Const";
2152 if (o.type == msgpack::type::MAP) {
2157 }
else if (o.type == msgpack::type::ARRAY) {
2158 auto array = o.via.array;
2177 packer.pack_array(3);
2185 std::string name =
"IndirectConst";
2186 if (o.type == msgpack::type::MAP) {
2191 }
else if (o.type == msgpack::type::ARRAY) {
2192 auto array = o.via.array;
2220 packer.pack_array(5);
2230 std::string name =
"ForeignCall";
2231 if (o.type == msgpack::type::MAP) {
2238 }
else if (o.type == msgpack::type::ARRAY) {
2239 auto array = o.via.array;
2259 packer.pack_array(2);
2266 std::string name =
"Mov";
2267 if (o.type == msgpack::type::MAP) {
2271 }
else if (o.type == msgpack::type::ARRAY) {
2272 auto array = o.via.array;
2291 packer.pack_array(4);
2300 std::string name =
"ConditionalMov";
2301 if (o.type == msgpack::type::MAP) {
2307 }
else if (o.type == msgpack::type::ARRAY) {
2308 auto array = o.via.array;
2327 packer.pack_array(2);
2334 std::string name =
"Load";
2335 if (o.type == msgpack::type::MAP) {
2339 }
else if (o.type == msgpack::type::ARRAY) {
2340 auto array = o.via.array;
2357 packer.pack_array(2);
2364 std::string name =
"Store";
2365 if (o.type == msgpack::type::MAP) {
2369 }
else if (o.type == msgpack::type::ARRAY) {
2370 auto array = o.via.array;
2390 }
catch (
const msgpack::type_error&) {
2404 packer.pack_array(1);
2410 std::string name =
"Trap";
2411 if (o.type == msgpack::type::MAP) {
2414 }
else if (o.type == msgpack::type::ARRAY) {
2415 auto array = o.via.array;
2430 packer.pack_array(1);
2436 std::string name =
"Stop";
2437 if (o.type == msgpack::type::MAP) {
2440 }
else if (o.type == msgpack::type::ARRAY) {
2441 auto array = o.via.array;
2476 switch (
value.index()) {
2479 tag =
"BinaryFieldOp";
2483 tag =
"BinaryIntOp";
2503 tag =
"CalldataCopy";
2515 tag =
"IndirectConst";
2523 tag =
"ForeignCall";
2531 tag =
"ConditionalMov";
2561 [&packer,
tag](
const auto& arg) {
2573 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
2577 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
2582 if (o.type == msgpack::type::object_type::MAP) {
2583 o.via.map.ptr[0].key.convert(
tag);
2587 }
catch (
const msgpack::type_error&) {
2589 throw_or_abort(
"error converting tag to string for enum 'BrilligOpcode'");
2591 if (
tag ==
"BinaryFieldOp") {
2594 o.via.map.ptr[0].val.convert(v);
2595 }
catch (
const msgpack::type_error&) {
2597 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BinaryFieldOp'");
2601 }
else if (
tag ==
"BinaryIntOp") {
2604 o.via.map.ptr[0].val.convert(v);
2605 }
catch (
const msgpack::type_error&) {
2607 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BinaryIntOp'");
2611 }
else if (
tag ==
"Not") {
2614 o.via.map.ptr[0].val.convert(v);
2615 }
catch (
const msgpack::type_error&) {
2617 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Not'");
2621 }
else if (
tag ==
"Cast") {
2624 o.via.map.ptr[0].val.convert(v);
2625 }
catch (
const msgpack::type_error&) {
2627 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Cast'");
2631 }
else if (
tag ==
"JumpIf") {
2634 o.via.map.ptr[0].val.convert(v);
2635 }
catch (
const msgpack::type_error&) {
2637 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::JumpIf'");
2641 }
else if (
tag ==
"Jump") {
2644 o.via.map.ptr[0].val.convert(v);
2645 }
catch (
const msgpack::type_error&) {
2647 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Jump'");
2651 }
else if (
tag ==
"CalldataCopy") {
2654 o.via.map.ptr[0].val.convert(v);
2655 }
catch (
const msgpack::type_error&) {
2657 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::CalldataCopy'");
2661 }
else if (
tag ==
"Call") {
2664 o.via.map.ptr[0].val.convert(v);
2665 }
catch (
const msgpack::type_error&) {
2667 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Call'");
2671 }
else if (
tag ==
"Const") {
2674 o.via.map.ptr[0].val.convert(v);
2675 }
catch (
const msgpack::type_error&) {
2677 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Const'");
2681 }
else if (
tag ==
"IndirectConst") {
2684 o.via.map.ptr[0].val.convert(v);
2685 }
catch (
const msgpack::type_error&) {
2687 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::IndirectConst'");
2691 }
else if (
tag ==
"Return") {
2694 }
else if (
tag ==
"ForeignCall") {
2697 o.via.map.ptr[0].val.convert(v);
2698 }
catch (
const msgpack::type_error&) {
2700 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::ForeignCall'");
2704 }
else if (
tag ==
"Mov") {
2707 o.via.map.ptr[0].val.convert(v);
2708 }
catch (
const msgpack::type_error&) {
2710 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Mov'");
2714 }
else if (
tag ==
"ConditionalMov") {
2717 o.via.map.ptr[0].val.convert(v);
2718 }
catch (
const msgpack::type_error&) {
2720 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::ConditionalMov'");
2724 }
else if (
tag ==
"Load") {
2727 o.via.map.ptr[0].val.convert(v);
2728 }
catch (
const msgpack::type_error&) {
2730 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Load'");
2734 }
else if (
tag ==
"Store") {
2737 o.via.map.ptr[0].val.convert(v);
2738 }
catch (
const msgpack::type_error&) {
2740 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Store'");
2744 }
else if (
tag ==
"BlackBox") {
2747 o.via.map.ptr[0].val.convert(v);
2748 }
catch (
const msgpack::type_error&) {
2750 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BlackBox'");
2754 }
else if (
tag ==
"Trap") {
2757 o.via.map.ptr[0].val.convert(v);
2758 }
catch (
const msgpack::type_error&) {
2760 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Trap'");
2764 }
else if (
tag ==
"Stop") {
2767 o.via.map.ptr[0].val.convert(v);
2768 }
catch (
const msgpack::type_error&) {
2770 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Stop'");
2792 }
catch (
const msgpack::type_error&) {
2812 }
catch (
const msgpack::type_error&) {
2830 }
catch (
const msgpack::type_error&) {
2845 switch (
value.index()) {
2862 [&packer,
tag](
const auto& arg) {
2874 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
2878 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
2883 if (o.type == msgpack::type::object_type::MAP) {
2884 o.via.map.ptr[0].key.convert(
tag);
2888 }
catch (
const msgpack::type_error&) {
2890 throw_or_abort(
"error converting tag to string for enum 'FunctionInput'");
2892 if (
tag ==
"Constant") {
2895 o.via.map.ptr[0].val.convert(v);
2896 }
catch (
const msgpack::type_error&) {
2898 throw_or_abort(
"error converting into enum variant 'FunctionInput::Constant'");
2902 }
else if (
tag ==
"Witness") {
2905 o.via.map.ptr[0].val.convert(v);
2906 }
catch (
const msgpack::type_error&) {
2908 throw_or_abort(
"error converting into enum variant 'FunctionInput::Witness'");
2931 packer.pack_array(4);
2940 std::string name =
"AES128Encrypt";
2941 if (o.type == msgpack::type::MAP) {
2947 }
else if (o.type == msgpack::type::ARRAY) {
2948 auto array = o.via.array;
2969 packer.pack_array(4);
2978 std::string name =
"AND";
2979 if (o.type == msgpack::type::MAP) {
2985 }
else if (o.type == msgpack::type::ARRAY) {
2986 auto array = o.via.array;
3007 packer.pack_array(4);
3016 std::string name =
"XOR";
3017 if (o.type == msgpack::type::MAP) {
3023 }
else if (o.type == msgpack::type::ARRAY) {
3024 auto array = o.via.array;
3043 packer.pack_array(2);
3050 std::string name =
"RANGE";
3051 if (o.type == msgpack::type::MAP) {
3055 }
else if (o.type == msgpack::type::ARRAY) {
3056 auto array = o.via.array;
3073 packer.pack_array(2);
3080 std::string name =
"Blake2s";
3081 if (o.type == msgpack::type::MAP) {
3085 }
else if (o.type == msgpack::type::ARRAY) {
3086 auto array = o.via.array;
3103 packer.pack_array(2);
3110 std::string name =
"Blake3";
3111 if (o.type == msgpack::type::MAP) {
3115 }
else if (o.type == msgpack::type::ARRAY) {
3116 auto array = o.via.array;
3137 packer.pack_array(6);
3148 std::string name =
"EcdsaSecp256k1";
3149 if (o.type == msgpack::type::MAP) {
3157 }
else if (o.type == msgpack::type::ARRAY) {
3158 auto array = o.via.array;
3183 packer.pack_array(6);
3194 std::string name =
"EcdsaSecp256r1";
3195 if (o.type == msgpack::type::MAP) {
3203 }
else if (o.type == msgpack::type::ARRAY) {
3204 auto array = o.via.array;
3227 packer.pack_array(4);
3236 std::string name =
"MultiScalarMul";
3237 if (o.type == msgpack::type::MAP) {
3243 }
else if (o.type == msgpack::type::ARRAY) {
3244 auto array = o.via.array;
3265 packer.pack_array(4);
3274 std::string name =
"EmbeddedCurveAdd";
3275 if (o.type == msgpack::type::MAP) {
3281 }
else if (o.type == msgpack::type::ARRAY) {
3282 auto array = o.via.array;
3301 packer.pack_array(2);
3308 std::string name =
"Keccakf1600";
3309 if (o.type == msgpack::type::MAP) {
3313 }
else if (o.type == msgpack::type::ARRAY) {
3314 auto array = o.via.array;
3335 packer.pack_array(6);
3346 std::string name =
"RecursiveAggregation";
3347 if (o.type == msgpack::type::MAP) {
3355 }
else if (o.type == msgpack::type::ARRAY) {
3356 auto array = o.via.array;
3377 packer.pack_array(2);
3384 std::string name =
"Poseidon2Permutation";
3385 if (o.type == msgpack::type::MAP) {
3389 }
else if (o.type == msgpack::type::ARRAY) {
3390 auto array = o.via.array;
3408 packer.pack_array(3);
3416 std::string name =
"Sha256Compression";
3417 if (o.type == msgpack::type::MAP) {
3422 }
else if (o.type == msgpack::type::ARRAY) {
3423 auto array = o.via.array;
3444 RecursiveAggregation,
3445 Poseidon2Permutation,
3455 switch (
value.index()) {
3458 tag =
"AES128Encrypt";
3482 tag =
"EcdsaSecp256k1";
3486 tag =
"EcdsaSecp256r1";
3490 tag =
"MultiScalarMul";
3494 tag =
"EmbeddedCurveAdd";
3498 tag =
"Keccakf1600";
3502 tag =
"RecursiveAggregation";
3506 tag =
"Poseidon2Permutation";
3510 tag =
"Sha256Compression";
3520 [&packer,
tag](
const auto& arg) {
3532 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
3536 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
3541 if (o.type == msgpack::type::object_type::MAP) {
3542 o.via.map.ptr[0].key.convert(
tag);
3546 }
catch (
const msgpack::type_error&) {
3548 throw_or_abort(
"error converting tag to string for enum 'BlackBoxFuncCall'");
3550 if (
tag ==
"AES128Encrypt") {
3553 o.via.map.ptr[0].val.convert(v);
3554 }
catch (
const msgpack::type_error&) {
3556 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::AES128Encrypt'");
3560 }
else if (
tag ==
"AND") {
3563 o.via.map.ptr[0].val.convert(v);
3564 }
catch (
const msgpack::type_error&) {
3566 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::AND'");
3570 }
else if (
tag ==
"XOR") {
3573 o.via.map.ptr[0].val.convert(v);
3574 }
catch (
const msgpack::type_error&) {
3576 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::XOR'");
3580 }
else if (
tag ==
"RANGE") {
3583 o.via.map.ptr[0].val.convert(v);
3584 }
catch (
const msgpack::type_error&) {
3586 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::RANGE'");
3590 }
else if (
tag ==
"Blake2s") {
3593 o.via.map.ptr[0].val.convert(v);
3594 }
catch (
const msgpack::type_error&) {
3596 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Blake2s'");
3600 }
else if (
tag ==
"Blake3") {
3603 o.via.map.ptr[0].val.convert(v);
3604 }
catch (
const msgpack::type_error&) {
3606 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Blake3'");
3610 }
else if (
tag ==
"EcdsaSecp256k1") {
3613 o.via.map.ptr[0].val.convert(v);
3614 }
catch (
const msgpack::type_error&) {
3616 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EcdsaSecp256k1'");
3620 }
else if (
tag ==
"EcdsaSecp256r1") {
3623 o.via.map.ptr[0].val.convert(v);
3624 }
catch (
const msgpack::type_error&) {
3626 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EcdsaSecp256r1'");
3630 }
else if (
tag ==
"MultiScalarMul") {
3633 o.via.map.ptr[0].val.convert(v);
3634 }
catch (
const msgpack::type_error&) {
3636 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::MultiScalarMul'");
3640 }
else if (
tag ==
"EmbeddedCurveAdd") {
3643 o.via.map.ptr[0].val.convert(v);
3644 }
catch (
const msgpack::type_error&) {
3646 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EmbeddedCurveAdd'");
3650 }
else if (
tag ==
"Keccakf1600") {
3653 o.via.map.ptr[0].val.convert(v);
3654 }
catch (
const msgpack::type_error&) {
3656 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Keccakf1600'");
3660 }
else if (
tag ==
"RecursiveAggregation") {
3663 o.via.map.ptr[0].val.convert(v);
3664 }
catch (
const msgpack::type_error&) {
3666 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::RecursiveAggregation'");
3670 }
else if (
tag ==
"Poseidon2Permutation") {
3673 o.via.map.ptr[0].val.convert(v);
3674 }
catch (
const msgpack::type_error&) {
3676 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Poseidon2Permutation'");
3680 }
else if (
tag ==
"Sha256Compression") {
3683 o.via.map.ptr[0].val.convert(v);
3684 }
catch (
const msgpack::type_error&) {
3686 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Sha256Compression'");
3708 }
catch (
const msgpack::type_error&) {
3735 }
catch (
const msgpack::type_error&) {
3757 switch (
value.index()) {
3778 [&packer,
tag](
const auto& arg) {
3790 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
3794 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
3799 if (o.type == msgpack::type::object_type::MAP) {
3800 o.via.map.ptr[0].key.convert(
tag);
3804 }
catch (
const msgpack::type_error&) {
3806 throw_or_abort(
"error converting tag to string for enum 'BlockType'");
3808 if (
tag ==
"Memory") {
3811 }
else if (
tag ==
"CallData") {
3814 o.via.map.ptr[0].val.convert(v);
3815 }
catch (
const msgpack::type_error&) {
3817 throw_or_abort(
"error converting into enum variant 'BlockType::CallData'");
3821 }
else if (
tag ==
"ReturnData") {
3840 packer.pack_array(3);
3848 std::string name =
"Expression";
3849 if (o.type == msgpack::type::MAP) {
3854 }
else if (o.type == msgpack::type::ARRAY) {
3855 auto array = o.via.array;
3878 }
catch (
const msgpack::type_error&) {
3896 }
catch (
const msgpack::type_error&) {
3914 }
catch (
const msgpack::type_error&) {
3929 switch (
value.index()) {
3940 tag =
"MemoryArray";
3950 [&packer,
tag](
const auto& arg) {
3962 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
3966 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
3971 if (o.type == msgpack::type::object_type::MAP) {
3972 o.via.map.ptr[0].key.convert(
tag);
3976 }
catch (
const msgpack::type_error&) {
3978 throw_or_abort(
"error converting tag to string for enum 'BrilligInputs'");
3980 if (
tag ==
"Single") {
3983 o.via.map.ptr[0].val.convert(v);
3984 }
catch (
const msgpack::type_error&) {
3986 throw_or_abort(
"error converting into enum variant 'BrilligInputs::Single'");
3990 }
else if (
tag ==
"Array") {
3993 o.via.map.ptr[0].val.convert(v);
3994 }
catch (
const msgpack::type_error&) {
3996 throw_or_abort(
"error converting into enum variant 'BrilligInputs::Array'");
4000 }
else if (
tag ==
"MemoryArray") {
4003 o.via.map.ptr[0].val.convert(v);
4004 }
catch (
const msgpack::type_error&) {
4006 throw_or_abort(
"error converting into enum variant 'BrilligInputs::MemoryArray'");
4030 }
catch (
const msgpack::type_error&) {
4048 }
catch (
const msgpack::type_error&) {
4063 switch (
value.index()) {
4080 [&packer,
tag](
const auto& arg) {
4092 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
4096 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
4101 if (o.type == msgpack::type::object_type::MAP) {
4102 o.via.map.ptr[0].key.convert(
tag);
4106 }
catch (
const msgpack::type_error&) {
4108 throw_or_abort(
"error converting tag to string for enum 'BrilligOutputs'");
4110 if (
tag ==
"Simple") {
4113 o.via.map.ptr[0].val.convert(v);
4114 }
catch (
const msgpack::type_error&) {
4116 throw_or_abort(
"error converting into enum variant 'BrilligOutputs::Simple'");
4120 }
else if (
tag ==
"Array") {
4123 o.via.map.ptr[0].val.convert(v);
4124 }
catch (
const msgpack::type_error&) {
4126 throw_or_abort(
"error converting into enum variant 'BrilligOutputs::Array'");
4146 packer.pack_array(3);
4154 std::string name =
"MemOp";
4155 if (o.type == msgpack::type::MAP) {
4160 }
else if (o.type == msgpack::type::ARRAY) {
4161 auto array = o.via.array;
4184 }
catch (
const msgpack::type_error&) {
4202 }
catch (
const msgpack::type_error&) {
4204 throw_or_abort(
"error converting into newtype 'BlackBoxFuncCall'");
4217 packer.pack_array(2);
4224 std::string name =
"MemoryOp";
4225 if (o.type == msgpack::type::MAP) {
4229 }
else if (o.type == msgpack::type::ARRAY) {
4230 auto array = o.via.array;
4248 packer.pack_array(3);
4256 std::string name =
"MemoryInit";
4257 if (o.type == msgpack::type::MAP) {
4262 }
else if (o.type == msgpack::type::ARRAY) {
4263 auto array = o.via.array;
4283 packer.pack_array(4);
4292 std::string name =
"BrilligCall";
4293 if (o.type == msgpack::type::MAP) {
4299 }
else if (o.type == msgpack::type::ARRAY) {
4300 auto array = o.via.array;
4321 packer.pack_array(4);
4330 std::string name =
"Call";
4331 if (o.type == msgpack::type::MAP) {
4337 }
else if (o.type == msgpack::type::ARRAY) {
4338 auto array = o.via.array;
4357 switch (
value.index()) {
4364 tag =
"BlackBoxFuncCall";
4376 tag =
"BrilligCall";
4390 [&packer,
tag](
const auto& arg) {
4402 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
4406 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
4411 if (o.type == msgpack::type::object_type::MAP) {
4412 o.via.map.ptr[0].key.convert(
tag);
4416 }
catch (
const msgpack::type_error&) {
4418 throw_or_abort(
"error converting tag to string for enum 'Opcode'");
4420 if (
tag ==
"AssertZero") {
4423 o.via.map.ptr[0].val.convert(v);
4424 }
catch (
const msgpack::type_error&) {
4426 throw_or_abort(
"error converting into enum variant 'Opcode::AssertZero'");
4430 }
else if (
tag ==
"BlackBoxFuncCall") {
4433 o.via.map.ptr[0].val.convert(v);
4434 }
catch (
const msgpack::type_error&) {
4436 throw_or_abort(
"error converting into enum variant 'Opcode::BlackBoxFuncCall'");
4440 }
else if (
tag ==
"MemoryOp") {
4443 o.via.map.ptr[0].val.convert(v);
4444 }
catch (
const msgpack::type_error&) {
4446 throw_or_abort(
"error converting into enum variant 'Opcode::MemoryOp'");
4450 }
else if (
tag ==
"MemoryInit") {
4453 o.via.map.ptr[0].val.convert(v);
4454 }
catch (
const msgpack::type_error&) {
4456 throw_or_abort(
"error converting into enum variant 'Opcode::MemoryInit'");
4460 }
else if (
tag ==
"BrilligCall") {
4463 o.via.map.ptr[0].val.convert(v);
4464 }
catch (
const msgpack::type_error&) {
4466 throw_or_abort(
"error converting into enum variant 'Opcode::BrilligCall'");
4470 }
else if (
tag ==
"Call") {
4473 o.via.map.ptr[0].val.convert(v);
4474 }
catch (
const msgpack::type_error&) {
4476 throw_or_abort(
"error converting into enum variant 'Opcode::Call'");
4500 }
catch (
const msgpack::type_error&) {
4518 }
catch (
const msgpack::type_error&) {
4533 switch (
value.index()) {
4550 [&packer,
tag](
const auto& arg) {
4562 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
4566 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
4571 if (o.type == msgpack::type::object_type::MAP) {
4572 o.via.map.ptr[0].key.convert(
tag);
4576 }
catch (
const msgpack::type_error&) {
4578 throw_or_abort(
"error converting tag to string for enum 'ExpressionOrMemory'");
4580 if (
tag ==
"Expression") {
4583 o.via.map.ptr[0].val.convert(v);
4584 }
catch (
const msgpack::type_error&) {
4586 throw_or_abort(
"error converting into enum variant 'ExpressionOrMemory::Expression'");
4590 }
else if (
tag ==
"Memory") {
4593 o.via.map.ptr[0].val.convert(v);
4594 }
catch (
const msgpack::type_error&) {
4596 throw_or_abort(
"error converting into enum variant 'ExpressionOrMemory::Memory'");
4615 packer.pack_array(2);
4622 std::string name =
"AssertionPayload";
4623 if (o.type == msgpack::type::MAP) {
4627 }
else if (o.type == msgpack::type::ARRAY) {
4628 auto array = o.via.array;
4650 }
catch (
const msgpack::type_error&) {
4665 packer.pack_array(2);
4672 std::string name =
"Brillig";
4673 if (o.type == msgpack::type::MAP) {
4677 }
else if (o.type == msgpack::type::ARRAY) {
4678 auto array = o.via.array;
4695 switch (
value.index()) {
4712 [&packer,
tag](
const auto& arg) {
4724 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
4728 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
4733 if (o.type == msgpack::type::object_type::MAP) {
4734 o.via.map.ptr[0].key.convert(
tag);
4738 }
catch (
const msgpack::type_error&) {
4740 throw_or_abort(
"error converting tag to string for enum 'OpcodeLocation'");
4742 if (
tag ==
"Acir") {
4745 o.via.map.ptr[0].val.convert(v);
4746 }
catch (
const msgpack::type_error&) {
4748 throw_or_abort(
"error converting into enum variant 'OpcodeLocation::Acir'");
4752 }
else if (
tag ==
"Brillig") {
4755 o.via.map.ptr[0].val.convert(v);
4756 }
catch (
const msgpack::type_error&) {
4758 throw_or_abort(
"error converting into enum variant 'OpcodeLocation::Brillig'");
4780 }
catch (
const msgpack::type_error&) {
4800 packer.pack_array(7);
4812 std::string name =
"Circuit";
4813 if (o.type == msgpack::type::MAP) {
4822 }
else if (o.type == msgpack::type::ARRAY) {
4823 auto array = o.via.array;
4845 packer.pack_array(2);
4852 std::string name =
"BrilligBytecode";
4853 if (o.type == msgpack::type::MAP) {
4857 }
else if (o.type == msgpack::type::ARRAY) {
4858 auto array = o.via.array;
4875 packer.pack_array(2);
4882 std::string name =
"Program";
4883 if (o.type == msgpack::type::MAP) {
4887 }
else if (o.type == msgpack::type::ARRAY) {
4888 auto array = o.via.array;
4905 packer.pack_array(2);
4912 std::string name =
"ProgramWithoutBrillig";
4913 if (o.type == msgpack::type::MAP) {
4916 }
else if (o.type == msgpack::type::ARRAY) {
4917 auto array = o.via.array;
4934 if (!(lhs.
payload == rhs.payload)) {
4943template <
typename Serializer>
4946 serializer.increase_container_depth();
4949 serializer.decrease_container_depth();
4953template <
typename Deserializer>
4956 deserializer.increase_container_depth();
4960 deserializer.decrease_container_depth();
4968 if (!(lhs.
value == rhs.value)) {
4977template <
typename Serializer>
4980 serializer.increase_container_depth();
4982 serializer.decrease_container_depth();
4986template <
typename Deserializer>
4989 deserializer.increase_container_depth();
4992 deserializer.decrease_container_depth();
5006template <
typename Serializer>
5008 Serializer& serializer)
5012template <
typename Deserializer>
5029template <
typename Serializer>
5031 Serializer& serializer)
5035template <
typename Deserializer>
5052template <
typename Serializer>
5054 Serializer& serializer)
5058template <
typename Deserializer>
5075template <
typename Serializer>
5077 Serializer& serializer)
5081template <
typename Deserializer>
5098template <
typename Serializer>
5100 Serializer& serializer)
5104template <
typename Deserializer>
5106 Deserializer& deserializer)
5122template <
typename Serializer>
5124 Serializer& serializer)
5128template <
typename Deserializer>
5145template <
typename Serializer>
5147 Serializer& serializer)
5151template <
typename Deserializer>
5153 Deserializer& deserializer)
5169template <
typename Serializer>
5171 Serializer& serializer)
5175template <
typename Deserializer>
5177 Deserializer& deserializer)
5187 if (!(lhs.
value == rhs.value)) {
5196template <
typename Serializer>
5199 serializer.increase_container_depth();
5201 serializer.decrease_container_depth();
5205template <
typename Deserializer>
5208 deserializer.increase_container_depth();
5211 deserializer.decrease_container_depth();
5225template <
typename Serializer>
5230template <
typename Deserializer>
5247template <
typename Serializer>
5252template <
typename Deserializer>
5269template <
typename Serializer>
5274template <
typename Deserializer>
5291template <
typename Serializer>
5296template <
typename Deserializer>
5313template <
typename Serializer>
5315 Serializer& serializer)
5319template <
typename Deserializer>
5336template <
typename Serializer>
5338 Serializer& serializer)
5342template <
typename Deserializer>
5359template <
typename Serializer>
5361 Serializer& serializer)
5365template <
typename Deserializer>
5367 Deserializer& deserializer)
5383template <
typename Serializer>
5388template <
typename Deserializer>
5405template <
typename Serializer>
5410template <
typename Deserializer>
5427template <
typename Serializer>
5432template <
typename Deserializer>
5449template <
typename Serializer>
5454template <
typename Deserializer>
5471template <
typename Serializer>
5476template <
typename Deserializer>
5487 if (!(lhs.
value == rhs.value)) {
5496template <
typename Serializer>
5499 serializer.increase_container_depth();
5501 serializer.decrease_container_depth();
5505template <
typename Deserializer>
5508 deserializer.increase_container_depth();
5511 deserializer.decrease_container_depth();
5525template <
typename Serializer>
5530template <
typename Deserializer>
5541 if (!(lhs.
value == rhs.value)) {
5550template <
typename Serializer>
5557template <
typename Deserializer>
5569 if (!(lhs.
value == rhs.value)) {
5578template <
typename Serializer>
5581 serializer.increase_container_depth();
5583 serializer.decrease_container_depth();
5587template <
typename Deserializer>
5590 deserializer.increase_container_depth();
5593 deserializer.decrease_container_depth();
5601 if (!(lhs.
inputs == rhs.inputs)) {
5604 if (!(lhs.
iv == rhs.iv)) {
5607 if (!(lhs.
key == rhs.key)) {
5610 if (!(lhs.
outputs == rhs.outputs)) {
5619template <
typename Serializer>
5630template <
typename Deserializer>
5632 Deserializer& deserializer)
5646 if (!(lhs.
lhs == rhs.lhs)) {
5649 if (!(lhs.
rhs == rhs.rhs)) {
5652 if (!(lhs.
num_bits == rhs.num_bits)) {
5655 if (!(lhs.
output == rhs.output)) {
5664template <
typename Serializer>
5666 Serializer& serializer)
5675template <
typename Deserializer>
5690 if (!(lhs.
lhs == rhs.lhs)) {
5693 if (!(lhs.
rhs == rhs.rhs)) {
5696 if (!(lhs.
num_bits == rhs.num_bits)) {
5699 if (!(lhs.
output == rhs.output)) {
5708template <
typename Serializer>
5710 Serializer& serializer)
5719template <
typename Deserializer>
5734 if (!(lhs.
input == rhs.input)) {
5737 if (!(lhs.
num_bits == rhs.num_bits)) {
5746template <
typename Serializer>
5748 Serializer& serializer)
5755template <
typename Deserializer>
5757 Deserializer& deserializer)
5769 if (!(lhs.
inputs == rhs.inputs)) {
5772 if (!(lhs.
outputs == rhs.outputs)) {
5781template <
typename Serializer>
5783 Serializer& serializer)
5790template <
typename Deserializer>
5792 Deserializer& deserializer)
5804 if (!(lhs.
inputs == rhs.inputs)) {
5807 if (!(lhs.
outputs == rhs.outputs)) {
5816template <
typename Serializer>
5818 Serializer& serializer)
5825template <
typename Deserializer>
5827 Deserializer& deserializer)
5845 if (!(lhs.
signature == rhs.signature)) {
5851 if (!(lhs.
predicate == rhs.predicate)) {
5854 if (!(lhs.
output == rhs.output)) {
5863template <
typename Serializer>
5876template <
typename Deserializer>
5878 Deserializer& deserializer)
5900 if (!(lhs.
signature == rhs.signature)) {
5906 if (!(lhs.
predicate == rhs.predicate)) {
5909 if (!(lhs.
output == rhs.output)) {
5918template <
typename Serializer>
5931template <
typename Deserializer>
5933 Deserializer& deserializer)
5949 if (!(lhs.
points == rhs.points)) {
5952 if (!(lhs.
scalars == rhs.scalars)) {
5955 if (!(lhs.
predicate == rhs.predicate)) {
5958 if (!(lhs.
outputs == rhs.outputs)) {
5967template <
typename Serializer>
5978template <
typename Deserializer>
5980 Deserializer& deserializer)
5994 if (!(lhs.
input1 == rhs.input1)) {
5997 if (!(lhs.
input2 == rhs.input2)) {
6000 if (!(lhs.
predicate == rhs.predicate)) {
6003 if (!(lhs.
outputs == rhs.outputs)) {
6012template <
typename Serializer>
6023template <
typename Deserializer>
6025 Deserializer& deserializer)
6039 if (!(lhs.
inputs == rhs.inputs)) {
6042 if (!(lhs.
outputs == rhs.outputs)) {
6051template <
typename Serializer>
6053 Serializer& serializer)
6060template <
typename Deserializer>
6062 Deserializer& deserializer)
6078 if (!(lhs.
proof == rhs.proof)) {
6084 if (!(lhs.
key_hash == rhs.key_hash)) {
6090 if (!(lhs.
predicate == rhs.predicate)) {
6099template <
typename Serializer>
6112template <
typename Deserializer>
6131 if (!(lhs.
inputs == rhs.inputs)) {
6134 if (!(lhs.
outputs == rhs.outputs)) {
6143template <
typename Serializer>
6152template <
typename Deserializer>
6166 if (!(lhs.
inputs == rhs.inputs)) {
6172 if (!(lhs.
outputs == rhs.outputs)) {
6181template <
typename Serializer>
6191template <
typename Deserializer>
6193 Deserializer& deserializer)
6206 if (!(lhs.
value == rhs.value)) {
6215template <
typename Serializer>
6218 serializer.increase_container_depth();
6220 serializer.decrease_container_depth();
6224template <
typename Deserializer>
6227 deserializer.increase_container_depth();
6230 deserializer.decrease_container_depth();
6238 if (!(lhs.
inputs == rhs.inputs)) {
6241 if (!(lhs.
iv == rhs.iv)) {
6244 if (!(lhs.
key == rhs.key)) {
6247 if (!(lhs.
outputs == rhs.outputs)) {
6256template <
typename Serializer>
6258 Serializer& serializer)
6267template <
typename Deserializer>
6269 Deserializer& deserializer)
6283 if (!(lhs.
message == rhs.message)) {
6286 if (!(lhs.
output == rhs.output)) {
6295template <
typename Serializer>
6297 Serializer& serializer)
6304template <
typename Deserializer>
6317 if (!(lhs.
message == rhs.message)) {
6320 if (!(lhs.
output == rhs.output)) {
6329template <
typename Serializer>
6331 Serializer& serializer)
6338template <
typename Deserializer>
6351 if (!(lhs.
input == rhs.input)) {
6354 if (!(lhs.
output == rhs.output)) {
6363template <
typename Serializer>
6365 Serializer& serializer)
6372template <
typename Deserializer>
6374 Deserializer& deserializer)
6395 if (!(lhs.
signature == rhs.signature)) {
6398 if (!(lhs.
result == rhs.result)) {
6407template <
typename Serializer>
6409 Serializer& serializer)
6419template <
typename Deserializer>
6421 Deserializer& deserializer)
6445 if (!(lhs.
signature == rhs.signature)) {
6448 if (!(lhs.
result == rhs.result)) {
6457template <
typename Serializer>
6459 Serializer& serializer)
6469template <
typename Deserializer>
6471 Deserializer& deserializer)
6486 if (!(lhs.
points == rhs.points)) {
6489 if (!(lhs.
scalars == rhs.scalars)) {
6492 if (!(lhs.
outputs == rhs.outputs)) {
6501template <
typename Serializer>
6503 Serializer& serializer)
6511template <
typename Deserializer>
6513 Deserializer& deserializer)
6526 if (!(lhs.
input1_x == rhs.input1_x)) {
6529 if (!(lhs.
input1_y == rhs.input1_y)) {
6535 if (!(lhs.
input2_x == rhs.input2_x)) {
6538 if (!(lhs.
input2_y == rhs.input2_y)) {
6544 if (!(lhs.
result == rhs.result)) {
6553template <
typename Serializer>
6555 Serializer& serializer)
6567template <
typename Deserializer>
6569 Deserializer& deserializer)
6586 if (!(lhs.
message == rhs.message)) {
6589 if (!(lhs.
output == rhs.output)) {
6598template <
typename Serializer>
6607template <
typename Deserializer>
6609 Deserializer& deserializer)
6621 if (!(lhs.
input == rhs.input)) {
6627 if (!(lhs.
output == rhs.output)) {
6636template <
typename Serializer>
6638 Serializer& serializer)
6646template <
typename Deserializer>
6648 Deserializer& deserializer)
6661 if (!(lhs.
input == rhs.input)) {
6664 if (!(lhs.
radix == rhs.radix)) {
6670 if (!(lhs.
num_limbs == rhs.num_limbs)) {
6682template <
typename Serializer>
6684 Serializer& serializer)
6694template <
typename Deserializer>
6710 if (!(lhs.
value == rhs.value)) {
6719template <
typename Serializer>
6722 serializer.increase_container_depth();
6724 serializer.decrease_container_depth();
6728template <
typename Deserializer>
6731 deserializer.increase_container_depth();
6734 deserializer.decrease_container_depth();
6742 if (!(lhs.
value == rhs.value)) {
6751template <
typename Serializer>
6754 serializer.increase_container_depth();
6756 serializer.decrease_container_depth();
6760template <
typename Deserializer>
6763 deserializer.increase_container_depth();
6766 deserializer.decrease_container_depth();
6780template <
typename Serializer>
6785template <
typename Deserializer>
6796 if (!(lhs.
value == rhs.value)) {
6805template <
typename Serializer>
6807 Serializer& serializer)
6813template <
typename Deserializer>
6831template <
typename Serializer>
6833 Serializer& serializer)
6837template <
typename Deserializer>
6851 if (!(lhs.
bytecode == rhs.bytecode)) {
6860template <
typename Serializer>
6863 serializer.increase_container_depth();
6866 serializer.decrease_container_depth();
6870template <
typename Deserializer>
6873 deserializer.increase_container_depth();
6877 deserializer.decrease_container_depth();
6885 if (!(lhs.
value == rhs.value)) {
6894template <
typename Serializer>
6897 serializer.increase_container_depth();
6899 serializer.decrease_container_depth();
6903template <
typename Deserializer>
6906 deserializer.increase_container_depth();
6909 deserializer.decrease_container_depth();
6917 if (!(lhs.
value == rhs.value)) {
6926template <
typename Serializer>
6928 Serializer& serializer)
6934template <
typename Deserializer>
6946 if (!(lhs.
value == rhs.value)) {
6955template <
typename Serializer>
6957 Serializer& serializer)
6963template <
typename Deserializer>
6975 if (!(lhs.
value == rhs.value)) {
6984template <
typename Serializer>
6986 Serializer& serializer)
6992template <
typename Deserializer>
6994 Deserializer& deserializer)
7005 if (!(lhs.
value == rhs.value)) {
7014template <
typename Serializer>
7017 serializer.increase_container_depth();
7019 serializer.decrease_container_depth();
7023template <
typename Deserializer>
7026 deserializer.increase_container_depth();
7029 deserializer.decrease_container_depth();
7040 if (!(lhs.
op == rhs.op)) {
7043 if (!(lhs.
lhs == rhs.lhs)) {
7046 if (!(lhs.
rhs == rhs.rhs)) {
7055template <
typename Serializer>
7057 Serializer& serializer)
7066template <
typename Deserializer>
7068 Deserializer& deserializer)
7085 if (!(lhs.
op == rhs.op)) {
7088 if (!(lhs.
bit_size == rhs.bit_size)) {
7091 if (!(lhs.
lhs == rhs.lhs)) {
7094 if (!(lhs.
rhs == rhs.rhs)) {
7103template <
typename Serializer>
7105 Serializer& serializer)
7115template <
typename Deserializer>
7117 Deserializer& deserializer)
7135 if (!(lhs.
source == rhs.source)) {
7138 if (!(lhs.
bit_size == rhs.bit_size)) {
7147template <
typename Serializer>
7149 Serializer& serializer)
7157template <
typename Deserializer>
7174 if (!(lhs.
source == rhs.source)) {
7177 if (!(lhs.
bit_size == rhs.bit_size)) {
7186template <
typename Serializer>
7188 Serializer& serializer)
7196template <
typename Deserializer>
7210 if (!(lhs.
condition == rhs.condition)) {
7213 if (!(lhs.
location == rhs.location)) {
7222template <
typename Serializer>
7224 Serializer& serializer)
7231template <
typename Deserializer>
7244 if (!(lhs.
location == rhs.location)) {
7253template <
typename Serializer>
7255 Serializer& serializer)
7261template <
typename Deserializer>
7288template <
typename Serializer>
7290 Serializer& serializer)
7298template <
typename Deserializer>
7300 Deserializer& deserializer)
7313 if (!(lhs.
location == rhs.location)) {
7322template <
typename Serializer>
7324 Serializer& serializer)
7330template <
typename Deserializer>
7345 if (!(lhs.
bit_size == rhs.bit_size)) {
7348 if (!(lhs.
value == rhs.value)) {
7357template <
typename Serializer>
7359 Serializer& serializer)
7367template <
typename Deserializer>
7384 if (!(lhs.
bit_size == rhs.bit_size)) {
7387 if (!(lhs.
value == rhs.value)) {
7396template <
typename Serializer>
7398 Serializer& serializer)
7406template <
typename Deserializer>
7408 Deserializer& deserializer)
7427template <
typename Serializer>
7429 Serializer& serializer)
7433template <
typename Deserializer>
7444 if (!(lhs.
function == rhs.function)) {
7453 if (!(lhs.
inputs == rhs.inputs)) {
7465template <
typename Serializer>
7467 Serializer& serializer)
7477template <
typename Deserializer>
7479 Deserializer& deserializer)
7498 if (!(lhs.
source == rhs.source)) {
7507template <
typename Serializer>
7509 Serializer& serializer)
7516template <
typename Deserializer>
7532 if (!(lhs.
source_a == rhs.source_a)) {
7535 if (!(lhs.
source_b == rhs.source_b)) {
7538 if (!(lhs.
condition == rhs.condition)) {
7547template <
typename Serializer>
7549 Serializer& serializer)
7558template <
typename Deserializer>
7560 Deserializer& deserializer)
7586template <
typename Serializer>
7588 Serializer& serializer)
7595template <
typename Deserializer>
7611 if (!(lhs.
source == rhs.source)) {
7620template <
typename Serializer>
7622 Serializer& serializer)
7629template <
typename Deserializer>
7642 if (!(lhs.
value == rhs.value)) {
7651template <
typename Serializer>
7653 Serializer& serializer)
7659template <
typename Deserializer>
7661 Deserializer& deserializer)
7681template <
typename Serializer>
7683 Serializer& serializer)
7689template <
typename Deserializer>
7710template <
typename Serializer>
7712 Serializer& serializer)
7718template <
typename Deserializer>
7730 if (!(lhs.
value == rhs.value)) {
7739template <
typename Serializer>
7742 serializer.increase_container_depth();
7744 serializer.decrease_container_depth();
7748template <
typename Deserializer>
7751 deserializer.increase_container_depth();
7754 deserializer.decrease_container_depth();
7762 if (!(lhs.
value == rhs.value)) {
7771template <
typename Serializer>
7773 Serializer& serializer)
7779template <
typename Deserializer>
7781 Deserializer& deserializer)
7792 if (!(lhs.
value == rhs.value)) {
7801template <
typename Serializer>
7803 Serializer& serializer)
7809template <
typename Deserializer>
7827 if (!(lhs.
opcodes == rhs.opcodes)) {
7848template <
typename Serializer>
7851 serializer.increase_container_depth();
7859 serializer.decrease_container_depth();
7863template <
typename Deserializer>
7866 deserializer.increase_container_depth();
7875 deserializer.decrease_container_depth();
7883 if (!(lhs.
mul_terms == rhs.mul_terms)) {
7889 if (!(lhs.
q_c == rhs.q_c)) {
7898template <
typename Serializer>
7901 serializer.increase_container_depth();
7905 serializer.decrease_container_depth();
7909template <
typename Deserializer>
7912 deserializer.increase_container_depth();
7917 deserializer.decrease_container_depth();
7925 if (!(lhs.
value == rhs.value)) {
7934template <
typename Serializer>
7936 Serializer& serializer)
7938 serializer.increase_container_depth();
7940 serializer.decrease_container_depth();
7944template <
typename Deserializer>
7947 deserializer.increase_container_depth();
7950 deserializer.decrease_container_depth();
7958 if (!(lhs.
value == rhs.value)) {
7967template <
typename Serializer>
7975template <
typename Deserializer>
7977 Deserializer& deserializer)
7988 if (!(lhs.
value == rhs.value)) {
7997template <
typename Serializer>
7999 Serializer& serializer)
8005template <
typename Deserializer>
8007 Deserializer& deserializer)
8018 if (!(lhs.
value == rhs.value)) {
8027template <
typename Serializer>
8030 serializer.increase_container_depth();
8032 serializer.decrease_container_depth();
8036template <
typename Deserializer>
8039 deserializer.increase_container_depth();
8042 deserializer.decrease_container_depth();
8050 if (!(lhs.
value == rhs.value)) {
8059template <
typename Serializer>
8061 Serializer& serializer)
8067template <
typename Deserializer>
8069 Deserializer& deserializer)
8080 if (!(lhs.
value == rhs.value)) {
8089template <
typename Serializer>
8091 Serializer& serializer)
8097template <
typename Deserializer>
8099 Deserializer& deserializer)
8110 if (!(lhs.
pointer == rhs.pointer)) {
8113 if (!(lhs.
size == rhs.size)) {
8122template <
typename Serializer>
8125 serializer.increase_container_depth();
8128 serializer.decrease_container_depth();
8132template <
typename Deserializer>
8135 deserializer.increase_container_depth();
8139 deserializer.decrease_container_depth();
8147 if (!(lhs.
value == rhs.value)) {
8156template <
typename Serializer>
8159 serializer.increase_container_depth();
8161 serializer.decrease_container_depth();
8165template <
typename Deserializer>
8168 deserializer.increase_container_depth();
8171 deserializer.decrease_container_depth();
8179 if (!(lhs.
value == rhs.value)) {
8188template <
typename Serializer>
8190 Serializer& serializer)
8196template <
typename Deserializer>
8211 if (!(lhs.
size == rhs.size)) {
8220template <
typename Serializer>
8222 Serializer& serializer)
8229template <
typename Deserializer>
8251template <
typename Serializer>
8253 Serializer& serializer)
8259template <
typename Deserializer>
8271 if (!(lhs.
pointer == rhs.pointer)) {
8274 if (!(lhs.
size == rhs.size)) {
8283template <
typename Serializer>
8286 serializer.increase_container_depth();
8289 serializer.decrease_container_depth();
8293template <
typename Deserializer>
8296 deserializer.increase_container_depth();
8300 deserializer.decrease_container_depth();
8308 if (!(lhs.
value == rhs.value)) {
8317template <
typename Serializer>
8320 serializer.increase_container_depth();
8322 serializer.decrease_container_depth();
8326template <
typename Deserializer>
8329 deserializer.increase_container_depth();
8332 deserializer.decrease_container_depth();
8346template <
typename Serializer>
8348 Serializer& serializer)
8352template <
typename Deserializer>
8369template <
typename Serializer>
8371 Serializer& serializer)
8375template <
typename Deserializer>
8392template <
typename Serializer>
8394 Serializer& serializer)
8398template <
typename Deserializer>
8415template <
typename Serializer>
8417 Serializer& serializer)
8421template <
typename Deserializer>
8438template <
typename Serializer>
8440 Serializer& serializer)
8444template <
typename Deserializer>
8461template <
typename Serializer>
8463 Serializer& serializer)
8467template <
typename Deserializer>
8478 if (!(lhs.
operation == rhs.operation)) {
8481 if (!(lhs.
index == rhs.index)) {
8484 if (!(lhs.
value == rhs.value)) {
8493template <
typename Serializer>
8496 serializer.increase_container_depth();
8500 serializer.decrease_container_depth();
8504template <
typename Deserializer>
8507 deserializer.increase_container_depth();
8512 deserializer.decrease_container_depth();
8520 if (!(lhs.
value == rhs.value)) {
8529template <
typename Serializer>
8532 serializer.increase_container_depth();
8534 serializer.decrease_container_depth();
8538template <
typename Deserializer>
8541 deserializer.increase_container_depth();
8544 deserializer.decrease_container_depth();
8552 if (!(lhs.
value == rhs.value)) {
8561template <
typename Serializer>
8563 Serializer& serializer)
8569template <
typename Deserializer>
8581 if (!(lhs.
value == rhs.value)) {
8590template <
typename Serializer>
8592 Serializer& serializer)
8598template <
typename Deserializer>
8600 Deserializer& deserializer)
8611 if (!(lhs.
value == rhs.value)) {
8620template <
typename Serializer>
8623 serializer.increase_container_depth();
8625 serializer.decrease_container_depth();
8629template <
typename Deserializer>
8632 deserializer.increase_container_depth();
8635 deserializer.decrease_container_depth();
8643 if (!(lhs.
value == rhs.value)) {
8652template <
typename Serializer>
8654 Serializer& serializer)
8660template <
typename Deserializer>
8672 if (!(lhs.
value == rhs.value)) {
8681template <
typename Serializer>
8683 Serializer& serializer)
8689template <
typename Deserializer>
8691 Deserializer& deserializer)
8702 if (!(lhs.
block_id == rhs.block_id)) {
8705 if (!(lhs.
op == rhs.op)) {
8714template <
typename Serializer>
8722template <
typename Deserializer>
8735 if (!(lhs.
block_id == rhs.block_id)) {
8738 if (!(lhs.
init == rhs.init)) {
8750template <
typename Serializer>
8752 Serializer& serializer)
8760template <
typename Deserializer>
8774 if (!(lhs.
id == rhs.id)) {
8777 if (!(lhs.
inputs == rhs.inputs)) {
8780 if (!(lhs.
outputs == rhs.outputs)) {
8783 if (!(lhs.
predicate == rhs.predicate)) {
8792template <
typename Serializer>
8794 Serializer& serializer)
8803template <
typename Deserializer>
8818 if (!(lhs.
id == rhs.id)) {
8821 if (!(lhs.
inputs == rhs.inputs)) {
8824 if (!(lhs.
outputs == rhs.outputs)) {
8827 if (!(lhs.
predicate == rhs.predicate)) {
8836template <
typename Serializer>
8846template <
typename Deserializer>
8861 if (!(lhs.
value == rhs.value)) {
8870template <
typename Serializer>
8873 serializer.increase_container_depth();
8875 serializer.decrease_container_depth();
8879template <
typename Deserializer>
8882 deserializer.increase_container_depth();
8885 deserializer.decrease_container_depth();
8893 if (!(lhs.
value == rhs.value)) {
8902template <
typename Serializer>
8904 Serializer& serializer)
8910template <
typename Deserializer>
8934template <
typename Serializer>
8936 Serializer& serializer)
8943template <
typename Deserializer>
8945 Deserializer& deserializer)
8957 if (!(lhs.
functions == rhs.functions)) {
8969template <
typename Serializer>
8972 serializer.increase_container_depth();
8975 serializer.decrease_container_depth();
8979template <
typename Deserializer>
8982 deserializer.increase_container_depth();
8987 deserializer.decrease_container_depth();
8995 if (!(lhs.
functions == rhs.functions)) {
9007template <
typename Serializer>
9009 Serializer& serializer)
9011 serializer.increase_container_depth();
9014 serializer.decrease_container_depth();
9018template <
typename Deserializer>
9021 deserializer.increase_container_depth();
9026 deserializer.decrease_container_depth();
9034 if (!(lhs.
value == rhs.value)) {
9043template <
typename Serializer>
9046 serializer.increase_container_depth();
9048 serializer.decrease_container_depth();
9052template <
typename Deserializer>
9055 deserializer.increase_container_depth();
9058 deserializer.decrease_container_depth();
9066 if (!(lhs.
value == rhs.value)) {
9075template <
typename Serializer>
9078 serializer.increase_container_depth();
9080 serializer.decrease_container_depth();
9084template <
typename Deserializer>
9087 deserializer.increase_container_depth();
9090 deserializer.decrease_container_depth();
9098 if (!(lhs.
value == rhs.value)) {
9107template <
typename Serializer>
9109 Serializer& serializer)
9111 serializer.increase_container_depth();
9113 serializer.decrease_container_depth();
9117template <
typename Deserializer>
9120 deserializer.increase_container_depth();
9123 deserializer.decrease_container_depth();
9131 if (!(lhs.
value == rhs.value)) {
9140template <
typename Serializer>
9143 serializer.increase_container_depth();
9145 serializer.decrease_container_depth();
9149template <
typename Deserializer>
9152 deserializer.increase_container_depth();
9155 deserializer.decrease_container_depth();
9163 if (!(lhs.
value == rhs.value)) {
9172template <
typename Serializer>
9174 Serializer& serializer)
9180template <
typename Deserializer>
9182 Deserializer& deserializer)
9193 if (!(lhs.
value == rhs.value)) {
9202template <
typename Serializer>
9204 Serializer& serializer)
9210template <
typename Deserializer>
9212 Deserializer& deserializer)
9223 if (!(lhs.
value == rhs.value)) {
9232template <
typename Serializer>
9234 Serializer& serializer)
9240template <
typename Deserializer>
9242 Deserializer& deserializer)
9253 if (!(lhs.
value == rhs.value)) {
9262template <
typename Serializer>
9265 serializer.increase_container_depth();
9267 serializer.decrease_container_depth();
9271template <
typename Deserializer>
9274 deserializer.increase_container_depth();
9277 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)