17 if (o.type != msgpack::type::MAP) {
22 for (uint32_t i = 0; i < o.via.map.size; ++i) {
23 if (o.via.map.ptr[i].key.type != msgpack::type::STR) {
27 kvmap.emplace(std::string(o.via.map.ptr[i].key.via.str.ptr, o.via.map.ptr[i].key.via.str.size),
28 &o.via.map.ptr[i].val);
35 std::string
const& struct_name,
36 std::string
const& field_name,
40 auto it = kvmap.find(field_name);
41 if (it != kvmap.end()) {
42 if (!is_optional && it->second->type == msgpack::type::NIL) {
43 throw_or_abort(
"nil value for required field: " + struct_name +
"::" + field_name);
46 it->second->convert(field);
47 }
catch (
const msgpack::type_error&) {
49 throw_or_abort(
"error converting into field " + struct_name +
"::" + field_name);
51 }
else if (!is_optional) {
52 throw_or_abort(
"missing field: " + struct_name +
"::" + field_name);
58 std::string
const& struct_name,
59 std::string
const& field_name,
63 if (
index >= array.size) {
66 auto element = array.ptr[
index];
67 if (element.type == msgpack::type::NIL) {
68 throw_or_abort(
"nil value for required field: " + struct_name +
"::" + field_name);
71 element.convert(field);
72 }
catch (
const msgpack::type_error&) {
74 throw_or_abort(
"error converting into field " + struct_name +
"::" + field_name);
83 std::string
const& struct_name,
84 std::string
const& field_name,
89 }
catch (
const msgpack::type_error&) {
91 throw_or_abort(
"error converting into field " + struct_name +
"::" + field_name);
102 return o.type == msgpack::type::MAP && o.via.map.size > 0 &&
103 o.via.map.ptr[0].key.type == msgpack::type::POSITIVE_INTEGER;
112 template <
typename Dispatch>
113 static void int_map_dispatch(msgpack::object
const& o, std::string
const& name, Dispatch&& dispatch)
115 for (uint32_t i = 0; i < o.via.map.size; ++i) {
118 o.via.map.ptr[i].key.convert(
tag);
119 }
catch (
const msgpack::type_error&) {
123 dispatch(
tag, o.via.map.ptr[i].val);
138 static void check_size(uint32_t actual, std::string
const& name, uint32_t active, uint32_t reserved)
140 uint32_t max_size = active + reserved;
141 if (actual > max_size) {
145 " reserved); opt into `#[tagged(allow_unknown_tags)]` on the Rust type to accept extras");
219 switch (
value.index()) {
250 tag =
"LessThanEquals";
260 [&packer,
tag](
const auto& arg) {
272 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
276 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
283 o.via.map.ptr[0].key.convert(
tag);
284 }
catch (
const msgpack::type_error&) {
286 throw_or_abort(
"expected u8 variant tag for enum 'BinaryFieldOp'");
338 if (o.type == msgpack::type::object_type::MAP) {
339 o.via.map.ptr[0].key.convert(
tag);
343 }
catch (
const msgpack::type_error&) {
345 throw_or_abort(
"error converting tag to string for enum 'BinaryFieldOp'");
350 }
else if (
tag ==
"Sub") {
353 }
else if (
tag ==
"Mul") {
356 }
else if (
tag ==
"Div") {
359 }
else if (
tag ==
"IntegerDiv") {
362 }
else if (
tag ==
"Equals") {
365 }
else if (
tag ==
"LessThan") {
368 }
else if (
tag ==
"LessThanEquals") {
465 std::variant<Add, Sub, Mul, Div, Equals, LessThan, LessThanEquals, And, Or, Xor, Shl, Shr> value;
473 switch (
value.index()) {
500 tag =
"LessThanEquals";
530 [&packer,
tag](
const auto& arg) {
542 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
546 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
553 o.via.map.ptr[0].key.convert(
tag);
554 }
catch (
const msgpack::type_error&) {
628 if (o.type == msgpack::type::object_type::MAP) {
629 o.via.map.ptr[0].key.convert(
tag);
633 }
catch (
const msgpack::type_error&) {
635 throw_or_abort(
"error converting tag to string for enum 'BinaryIntOp'");
640 }
else if (
tag ==
"Sub") {
643 }
else if (
tag ==
"Mul") {
646 }
else if (
tag ==
"Div") {
649 }
else if (
tag ==
"Equals") {
652 }
else if (
tag ==
"LessThan") {
655 }
else if (
tag ==
"LessThanEquals") {
658 }
else if (
tag ==
"And") {
661 }
else if (
tag ==
"Or") {
664 }
else if (
tag ==
"Xor") {
667 }
else if (
tag ==
"Shl") {
670 }
else if (
tag ==
"Shr") {
733 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) {
789 o.via.map.ptr[0].key.convert(
tag);
790 }
catch (
const msgpack::type_error&) {
792 throw_or_abort(
"expected u8 variant tag for enum 'IntegerBitSize'");
834 if (o.type == msgpack::type::object_type::MAP) {
835 o.via.map.ptr[0].key.convert(
tag);
839 }
catch (
const msgpack::type_error&) {
841 throw_or_abort(
"error converting tag to string for enum 'IntegerBitSize'");
846 }
else if (
tag ==
"U8") {
849 }
else if (
tag ==
"U16") {
852 }
else if (
tag ==
"U32") {
855 }
else if (
tag ==
"U64") {
858 }
else if (
tag ==
"U128") {
889 }
catch (
const msgpack::type_error&) {
904 switch (
value.index()) {
921 [&packer,
tag](
const auto& arg) {
933 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
937 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
944 o.via.map.ptr[0].key.convert(
tag);
945 }
catch (
const msgpack::type_error&) {
958 o.via.map.ptr[0].val.convert(v);
959 }
catch (
const msgpack::type_error&) {
961 throw_or_abort(
"error converting into enum variant 'BitSize::Integer'");
975 if (o.type == msgpack::type::object_type::MAP) {
976 o.via.map.ptr[0].key.convert(
tag);
980 }
catch (
const msgpack::type_error&) {
982 throw_or_abort(
"error converting tag to string for enum 'BitSize'");
984 if (
tag ==
"Field") {
987 }
else if (
tag ==
"Integer") {
990 o.via.map.ptr[0].val.convert(v);
991 }
catch (
const msgpack::type_error&) {
993 throw_or_abort(
"error converting into enum variant 'BitSize::Integer'");
1018 }
catch (
const msgpack::type_error&) {
1036 }
catch (
const msgpack::type_error&) {
1051 switch (
value.index()) {
1068 [&packer,
tag](
const auto& arg) {
1080 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
1084 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
1091 o.via.map.ptr[0].key.convert(
tag);
1092 }
catch (
const msgpack::type_error&) {
1094 throw_or_abort(
"expected u8 variant tag for enum 'MemoryAddress'");
1100 o.via.map.ptr[0].val.convert(v);
1101 }
catch (
const msgpack::type_error&) {
1103 throw_or_abort(
"error converting into enum variant 'MemoryAddress::Direct'");
1111 o.via.map.ptr[0].val.convert(v);
1112 }
catch (
const msgpack::type_error&) {
1114 throw_or_abort(
"error converting into enum variant 'MemoryAddress::Relative'");
1128 if (o.type == msgpack::type::object_type::MAP) {
1129 o.via.map.ptr[0].key.convert(
tag);
1133 }
catch (
const msgpack::type_error&) {
1135 throw_or_abort(
"error converting tag to string for enum 'MemoryAddress'");
1137 if (
tag ==
"Direct") {
1140 o.via.map.ptr[0].val.convert(v);
1141 }
catch (
const msgpack::type_error&) {
1143 throw_or_abort(
"error converting into enum variant 'MemoryAddress::Direct'");
1147 }
else if (
tag ==
"Relative") {
1150 o.via.map.ptr[0].val.convert(v);
1151 }
catch (
const msgpack::type_error&) {
1153 throw_or_abort(
"error converting into enum variant 'MemoryAddress::Relative'");
1176 }
catch (
const msgpack::type_error&) {
1178 throw_or_abort(
"error converting into newtype 'SemiFlattenedLength'");
1191 packer.pack_array(2);
1198 std::string name =
"HeapArray";
1199 if (o.type == msgpack::type::MAP) {
1220 }
else if (o.type == msgpack::type::ARRAY) {
1221 auto array = o.via.array;
1243 packer.pack_array(4);
1252 std::string name =
"AES128Encrypt";
1253 if (o.type == msgpack::type::MAP) {
1282 }
else if (o.type == msgpack::type::ARRAY) {
1283 auto array = o.via.array;
1303 packer.pack_array(2);
1310 std::string name =
"Blake2s";
1311 if (o.type == msgpack::type::MAP) {
1332 }
else if (o.type == msgpack::type::ARRAY) {
1333 auto array = o.via.array;
1351 packer.pack_array(2);
1358 std::string name =
"Blake3";
1359 if (o.type == msgpack::type::MAP) {
1380 }
else if (o.type == msgpack::type::ARRAY) {
1381 auto array = o.via.array;
1399 packer.pack_array(2);
1406 std::string name =
"Keccakf1600";
1407 if (o.type == msgpack::type::MAP) {
1428 }
else if (o.type == msgpack::type::ARRAY) {
1429 auto array = o.via.array;
1450 packer.pack_array(5);
1460 std::string name =
"EcdsaSecp256k1";
1461 if (o.type == msgpack::type::MAP) {
1494 }
else if (o.type == msgpack::type::ARRAY) {
1495 auto array = o.via.array;
1519 packer.pack_array(5);
1529 std::string name =
"EcdsaSecp256r1";
1530 if (o.type == msgpack::type::MAP) {
1563 }
else if (o.type == msgpack::type::ARRAY) {
1564 auto array = o.via.array;
1586 packer.pack_array(3);
1594 std::string name =
"MultiScalarMul";
1595 if (o.type == msgpack::type::MAP) {
1620 }
else if (o.type == msgpack::type::ARRAY) {
1621 auto array = o.via.array;
1643 packer.pack_array(5);
1653 std::string name =
"EmbeddedCurveAdd";
1654 if (o.type == msgpack::type::MAP) {
1687 }
else if (o.type == msgpack::type::ARRAY) {
1688 auto array = o.via.array;
1709 packer.pack_array(2);
1716 std::string name =
"Poseidon2Permutation";
1717 if (o.type == msgpack::type::MAP) {
1738 }
else if (o.type == msgpack::type::ARRAY) {
1739 auto array = o.via.array;
1758 packer.pack_array(3);
1766 std::string name =
"Sha256Compression";
1767 if (o.type == msgpack::type::MAP) {
1792 }
else if (o.type == msgpack::type::ARRAY) {
1793 auto array = o.via.array;
1815 packer.pack_array(5);
1825 std::string name =
"ToRadix";
1826 if (o.type == msgpack::type::MAP) {
1859 }
else if (o.type == msgpack::type::ARRAY) {
1860 auto array = o.via.array;
1881 Poseidon2Permutation,
1892 switch (
value.index()) {
1895 tag =
"AES128Encrypt";
1907 tag =
"Keccakf1600";
1911 tag =
"EcdsaSecp256k1";
1915 tag =
"EcdsaSecp256r1";
1919 tag =
"MultiScalarMul";
1923 tag =
"EmbeddedCurveAdd";
1927 tag =
"Poseidon2Permutation";
1931 tag =
"Sha256Compression";
1945 [&packer,
tag](
const auto& arg) {
1957 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
1961 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
1968 o.via.map.ptr[0].key.convert(
tag);
1969 }
catch (
const msgpack::type_error&) {
1977 o.via.map.ptr[0].val.convert(v);
1978 }
catch (
const msgpack::type_error&) {
1980 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::AES128Encrypt'");
1988 o.via.map.ptr[0].val.convert(v);
1989 }
catch (
const msgpack::type_error&) {
1991 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Blake2s'");
1999 o.via.map.ptr[0].val.convert(v);
2000 }
catch (
const msgpack::type_error&) {
2002 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Blake3'");
2010 o.via.map.ptr[0].val.convert(v);
2011 }
catch (
const msgpack::type_error&) {
2013 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Keccakf1600'");
2021 o.via.map.ptr[0].val.convert(v);
2022 }
catch (
const msgpack::type_error&) {
2024 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EcdsaSecp256k1'");
2032 o.via.map.ptr[0].val.convert(v);
2033 }
catch (
const msgpack::type_error&) {
2035 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EcdsaSecp256r1'");
2043 o.via.map.ptr[0].val.convert(v);
2044 }
catch (
const msgpack::type_error&) {
2046 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::MultiScalarMul'");
2054 o.via.map.ptr[0].val.convert(v);
2055 }
catch (
const msgpack::type_error&) {
2057 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EmbeddedCurveAdd'");
2065 o.via.map.ptr[0].val.convert(v);
2066 }
catch (
const msgpack::type_error&) {
2068 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Poseidon2Permutation'");
2076 o.via.map.ptr[0].val.convert(v);
2077 }
catch (
const msgpack::type_error&) {
2079 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Sha256Compression'");
2087 o.via.map.ptr[0].val.convert(v);
2088 }
catch (
const msgpack::type_error&) {
2090 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::ToRadix'");
2104 if (o.type == msgpack::type::object_type::MAP) {
2105 o.via.map.ptr[0].key.convert(
tag);
2109 }
catch (
const msgpack::type_error&) {
2111 throw_or_abort(
"error converting tag to string for enum 'BlackBoxOp'");
2113 if (
tag ==
"AES128Encrypt") {
2116 o.via.map.ptr[0].val.convert(v);
2117 }
catch (
const msgpack::type_error&) {
2119 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::AES128Encrypt'");
2123 }
else if (
tag ==
"Blake2s") {
2126 o.via.map.ptr[0].val.convert(v);
2127 }
catch (
const msgpack::type_error&) {
2129 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Blake2s'");
2133 }
else if (
tag ==
"Blake3") {
2136 o.via.map.ptr[0].val.convert(v);
2137 }
catch (
const msgpack::type_error&) {
2139 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Blake3'");
2143 }
else if (
tag ==
"Keccakf1600") {
2146 o.via.map.ptr[0].val.convert(v);
2147 }
catch (
const msgpack::type_error&) {
2149 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Keccakf1600'");
2153 }
else if (
tag ==
"EcdsaSecp256k1") {
2156 o.via.map.ptr[0].val.convert(v);
2157 }
catch (
const msgpack::type_error&) {
2159 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EcdsaSecp256k1'");
2163 }
else if (
tag ==
"EcdsaSecp256r1") {
2166 o.via.map.ptr[0].val.convert(v);
2167 }
catch (
const msgpack::type_error&) {
2169 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EcdsaSecp256r1'");
2173 }
else if (
tag ==
"MultiScalarMul") {
2176 o.via.map.ptr[0].val.convert(v);
2177 }
catch (
const msgpack::type_error&) {
2179 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::MultiScalarMul'");
2183 }
else if (
tag ==
"EmbeddedCurveAdd") {
2186 o.via.map.ptr[0].val.convert(v);
2187 }
catch (
const msgpack::type_error&) {
2189 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EmbeddedCurveAdd'");
2193 }
else if (
tag ==
"Poseidon2Permutation") {
2196 o.via.map.ptr[0].val.convert(v);
2197 }
catch (
const msgpack::type_error&) {
2199 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Poseidon2Permutation'");
2203 }
else if (
tag ==
"Sha256Compression") {
2206 o.via.map.ptr[0].val.convert(v);
2207 }
catch (
const msgpack::type_error&) {
2209 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Sha256Compression'");
2213 }
else if (
tag ==
"ToRadix") {
2216 o.via.map.ptr[0].val.convert(v);
2217 }
catch (
const msgpack::type_error&) {
2219 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::ToRadix'");
2242 }
catch (
const msgpack::type_error&) {
2244 throw_or_abort(
"error converting into newtype 'SemanticLength'");
2249struct HeapValueType;
2264 }
catch (
const msgpack::type_error&) {
2279 packer.pack_array(2);
2286 std::string name =
"Array";
2287 if (o.type == msgpack::type::MAP) {
2308 }
else if (o.type == msgpack::type::ARRAY) {
2309 auto array = o.via.array;
2326 packer.pack_array(1);
2332 std::string name =
"Vector";
2333 if (o.type == msgpack::type::MAP) {
2350 }
else if (o.type == msgpack::type::ARRAY) {
2351 auto array = o.via.array;
2368 switch (
value.index()) {
2389 [&packer,
tag](
const auto& arg) {
2401 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
2405 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
2412 o.via.map.ptr[0].key.convert(
tag);
2413 }
catch (
const msgpack::type_error&) {
2415 throw_or_abort(
"expected u8 variant tag for enum 'HeapValueType'");
2421 o.via.map.ptr[0].val.convert(v);
2422 }
catch (
const msgpack::type_error&) {
2424 throw_or_abort(
"error converting into enum variant 'HeapValueType::Simple'");
2432 o.via.map.ptr[0].val.convert(v);
2433 }
catch (
const msgpack::type_error&) {
2435 throw_or_abort(
"error converting into enum variant 'HeapValueType::Array'");
2443 o.via.map.ptr[0].val.convert(v);
2444 }
catch (
const msgpack::type_error&) {
2446 throw_or_abort(
"error converting into enum variant 'HeapValueType::Vector'");
2460 if (o.type == msgpack::type::object_type::MAP) {
2461 o.via.map.ptr[0].key.convert(
tag);
2465 }
catch (
const msgpack::type_error&) {
2467 throw_or_abort(
"error converting tag to string for enum 'HeapValueType'");
2469 if (
tag ==
"Simple") {
2472 o.via.map.ptr[0].val.convert(v);
2473 }
catch (
const msgpack::type_error&) {
2475 throw_or_abort(
"error converting into enum variant 'HeapValueType::Simple'");
2479 }
else if (
tag ==
"Array") {
2482 o.via.map.ptr[0].val.convert(v);
2483 }
catch (
const msgpack::type_error&) {
2485 throw_or_abort(
"error converting into enum variant 'HeapValueType::Array'");
2489 }
else if (
tag ==
"Vector") {
2492 o.via.map.ptr[0].val.convert(v);
2493 }
catch (
const msgpack::type_error&) {
2495 throw_or_abort(
"error converting into enum variant 'HeapValueType::Vector'");
2515 packer.pack_array(2);
2522 std::string name =
"HeapVector";
2523 if (o.type == msgpack::type::MAP) {
2544 }
else if (o.type == msgpack::type::ARRAY) {
2545 auto array = o.via.array;
2568 }
catch (
const msgpack::type_error&) {
2586 }
catch (
const msgpack::type_error&) {
2604 }
catch (
const msgpack::type_error&) {
2619 switch (
value.index()) {
2622 tag =
"MemoryAddress";
2640 [&packer,
tag](
const auto& arg) {
2652 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
2656 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
2663 o.via.map.ptr[0].key.convert(
tag);
2664 }
catch (
const msgpack::type_error&) {
2666 throw_or_abort(
"expected u8 variant tag for enum 'ValueOrArray'");
2672 o.via.map.ptr[0].val.convert(v);
2673 }
catch (
const msgpack::type_error&) {
2675 throw_or_abort(
"error converting into enum variant 'ValueOrArray::MemoryAddress'");
2683 o.via.map.ptr[0].val.convert(v);
2684 }
catch (
const msgpack::type_error&) {
2686 throw_or_abort(
"error converting into enum variant 'ValueOrArray::HeapArray'");
2694 o.via.map.ptr[0].val.convert(v);
2695 }
catch (
const msgpack::type_error&) {
2697 throw_or_abort(
"error converting into enum variant 'ValueOrArray::HeapVector'");
2711 if (o.type == msgpack::type::object_type::MAP) {
2712 o.via.map.ptr[0].key.convert(
tag);
2716 }
catch (
const msgpack::type_error&) {
2718 throw_or_abort(
"error converting tag to string for enum 'ValueOrArray'");
2720 if (
tag ==
"MemoryAddress") {
2723 o.via.map.ptr[0].val.convert(v);
2724 }
catch (
const msgpack::type_error&) {
2726 throw_or_abort(
"error converting into enum variant 'ValueOrArray::MemoryAddress'");
2730 }
else if (
tag ==
"HeapArray") {
2733 o.via.map.ptr[0].val.convert(v);
2734 }
catch (
const msgpack::type_error&) {
2736 throw_or_abort(
"error converting into enum variant 'ValueOrArray::HeapArray'");
2740 }
else if (
tag ==
"HeapVector") {
2743 o.via.map.ptr[0].val.convert(v);
2744 }
catch (
const msgpack::type_error&) {
2746 throw_or_abort(
"error converting into enum variant 'ValueOrArray::HeapVector'");
2770 packer.pack_array(4);
2779 std::string name =
"BinaryFieldOp";
2780 if (o.type == msgpack::type::MAP) {
2809 }
else if (o.type == msgpack::type::ARRAY) {
2810 auto array = o.via.array;
2833 packer.pack_array(5);
2843 std::string name =
"BinaryIntOp";
2844 if (o.type == msgpack::type::MAP) {
2877 }
else if (o.type == msgpack::type::ARRAY) {
2878 auto array = o.via.array;
2900 packer.pack_array(3);
2908 std::string name =
"Not";
2909 if (o.type == msgpack::type::MAP) {
2934 }
else if (o.type == msgpack::type::ARRAY) {
2935 auto array = o.via.array;
2955 packer.pack_array(3);
2963 std::string name =
"Cast";
2964 if (o.type == msgpack::type::MAP) {
2989 }
else if (o.type == msgpack::type::ARRAY) {
2990 auto array = o.via.array;
3009 packer.pack_array(2);
3016 std::string name =
"JumpIf";
3017 if (o.type == msgpack::type::MAP) {
3038 }
else if (o.type == msgpack::type::ARRAY) {
3039 auto array = o.via.array;
3056 packer.pack_array(1);
3062 std::string name =
"Jump";
3063 if (o.type == msgpack::type::MAP) {
3080 }
else if (o.type == msgpack::type::ARRAY) {
3081 auto array = o.via.array;
3099 packer.pack_array(3);
3107 std::string name =
"CalldataCopy";
3108 if (o.type == msgpack::type::MAP) {
3133 }
else if (o.type == msgpack::type::ARRAY) {
3134 auto array = o.via.array;
3152 packer.pack_array(1);
3158 std::string name =
"Call";
3159 if (o.type == msgpack::type::MAP) {
3176 }
else if (o.type == msgpack::type::ARRAY) {
3177 auto array = o.via.array;
3195 packer.pack_array(3);
3203 std::string name =
"Const";
3204 if (o.type == msgpack::type::MAP) {
3229 }
else if (o.type == msgpack::type::ARRAY) {
3230 auto array = o.via.array;
3250 packer.pack_array(3);
3258 std::string name =
"IndirectConst";
3259 if (o.type == msgpack::type::MAP) {
3284 }
else if (o.type == msgpack::type::ARRAY) {
3285 auto array = o.via.array;
3314 packer.pack_array(5);
3324 std::string name =
"ForeignCall";
3325 if (o.type == msgpack::type::MAP) {
3359 }
else if (o.type == msgpack::type::ARRAY) {
3360 auto array = o.via.array;
3381 packer.pack_array(2);
3388 std::string name =
"Mov";
3389 if (o.type == msgpack::type::MAP) {
3410 }
else if (o.type == msgpack::type::ARRAY) {
3411 auto array = o.via.array;
3431 packer.pack_array(4);
3440 std::string name =
"ConditionalMov";
3441 if (o.type == msgpack::type::MAP) {
3470 }
else if (o.type == msgpack::type::ARRAY) {
3471 auto array = o.via.array;
3491 packer.pack_array(2);
3498 std::string name =
"Load";
3499 if (o.type == msgpack::type::MAP) {
3520 }
else if (o.type == msgpack::type::ARRAY) {
3521 auto array = o.via.array;
3539 packer.pack_array(2);
3546 std::string name =
"Store";
3547 if (o.type == msgpack::type::MAP) {
3568 }
else if (o.type == msgpack::type::ARRAY) {
3569 auto array = o.via.array;
3590 }
catch (
const msgpack::type_error&) {
3604 packer.pack_array(1);
3610 std::string name =
"Trap";
3611 if (o.type == msgpack::type::MAP) {
3628 }
else if (o.type == msgpack::type::ARRAY) {
3629 auto array = o.via.array;
3645 packer.pack_array(1);
3651 std::string name =
"Stop";
3652 if (o.type == msgpack::type::MAP) {
3669 }
else if (o.type == msgpack::type::ARRAY) {
3670 auto array = o.via.array;
3706 switch (
value.index()) {
3709 tag =
"BinaryFieldOp";
3713 tag =
"BinaryIntOp";
3733 tag =
"CalldataCopy";
3745 tag =
"IndirectConst";
3753 tag =
"ForeignCall";
3761 tag =
"ConditionalMov";
3791 [&packer,
tag](
const auto& arg) {
3803 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
3807 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
3814 o.via.map.ptr[0].key.convert(
tag);
3815 }
catch (
const msgpack::type_error&) {
3817 throw_or_abort(
"expected u8 variant tag for enum 'BrilligOpcode'");
3823 o.via.map.ptr[0].val.convert(v);
3824 }
catch (
const msgpack::type_error&) {
3826 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BinaryFieldOp'");
3834 o.via.map.ptr[0].val.convert(v);
3835 }
catch (
const msgpack::type_error&) {
3837 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BinaryIntOp'");
3845 o.via.map.ptr[0].val.convert(v);
3846 }
catch (
const msgpack::type_error&) {
3848 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Not'");
3856 o.via.map.ptr[0].val.convert(v);
3857 }
catch (
const msgpack::type_error&) {
3859 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Cast'");
3867 o.via.map.ptr[0].val.convert(v);
3868 }
catch (
const msgpack::type_error&) {
3870 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::JumpIf'");
3878 o.via.map.ptr[0].val.convert(v);
3879 }
catch (
const msgpack::type_error&) {
3881 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Jump'");
3889 o.via.map.ptr[0].val.convert(v);
3890 }
catch (
const msgpack::type_error&) {
3892 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::CalldataCopy'");
3900 o.via.map.ptr[0].val.convert(v);
3901 }
catch (
const msgpack::type_error&) {
3903 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Call'");
3911 o.via.map.ptr[0].val.convert(v);
3912 }
catch (
const msgpack::type_error&) {
3914 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Const'");
3922 o.via.map.ptr[0].val.convert(v);
3923 }
catch (
const msgpack::type_error&) {
3925 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::IndirectConst'");
3938 o.via.map.ptr[0].val.convert(v);
3939 }
catch (
const msgpack::type_error&) {
3941 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::ForeignCall'");
3949 o.via.map.ptr[0].val.convert(v);
3950 }
catch (
const msgpack::type_error&) {
3952 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Mov'");
3960 o.via.map.ptr[0].val.convert(v);
3961 }
catch (
const msgpack::type_error&) {
3963 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::ConditionalMov'");
3971 o.via.map.ptr[0].val.convert(v);
3972 }
catch (
const msgpack::type_error&) {
3974 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Load'");
3982 o.via.map.ptr[0].val.convert(v);
3983 }
catch (
const msgpack::type_error&) {
3985 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Store'");
3993 o.via.map.ptr[0].val.convert(v);
3994 }
catch (
const msgpack::type_error&) {
3996 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BlackBox'");
4004 o.via.map.ptr[0].val.convert(v);
4005 }
catch (
const msgpack::type_error&) {
4007 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Trap'");
4015 o.via.map.ptr[0].val.convert(v);
4016 }
catch (
const msgpack::type_error&) {
4018 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Stop'");
4032 if (o.type == msgpack::type::object_type::MAP) {
4033 o.via.map.ptr[0].key.convert(
tag);
4037 }
catch (
const msgpack::type_error&) {
4039 throw_or_abort(
"error converting tag to string for enum 'BrilligOpcode'");
4041 if (
tag ==
"BinaryFieldOp") {
4044 o.via.map.ptr[0].val.convert(v);
4045 }
catch (
const msgpack::type_error&) {
4047 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BinaryFieldOp'");
4051 }
else if (
tag ==
"BinaryIntOp") {
4054 o.via.map.ptr[0].val.convert(v);
4055 }
catch (
const msgpack::type_error&) {
4057 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BinaryIntOp'");
4061 }
else if (
tag ==
"Not") {
4064 o.via.map.ptr[0].val.convert(v);
4065 }
catch (
const msgpack::type_error&) {
4067 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Not'");
4071 }
else if (
tag ==
"Cast") {
4074 o.via.map.ptr[0].val.convert(v);
4075 }
catch (
const msgpack::type_error&) {
4077 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Cast'");
4081 }
else if (
tag ==
"JumpIf") {
4084 o.via.map.ptr[0].val.convert(v);
4085 }
catch (
const msgpack::type_error&) {
4087 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::JumpIf'");
4091 }
else if (
tag ==
"Jump") {
4094 o.via.map.ptr[0].val.convert(v);
4095 }
catch (
const msgpack::type_error&) {
4097 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Jump'");
4101 }
else if (
tag ==
"CalldataCopy") {
4104 o.via.map.ptr[0].val.convert(v);
4105 }
catch (
const msgpack::type_error&) {
4107 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::CalldataCopy'");
4111 }
else if (
tag ==
"Call") {
4114 o.via.map.ptr[0].val.convert(v);
4115 }
catch (
const msgpack::type_error&) {
4117 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Call'");
4121 }
else if (
tag ==
"Const") {
4124 o.via.map.ptr[0].val.convert(v);
4125 }
catch (
const msgpack::type_error&) {
4127 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Const'");
4131 }
else if (
tag ==
"IndirectConst") {
4134 o.via.map.ptr[0].val.convert(v);
4135 }
catch (
const msgpack::type_error&) {
4137 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::IndirectConst'");
4141 }
else if (
tag ==
"Return") {
4144 }
else if (
tag ==
"ForeignCall") {
4147 o.via.map.ptr[0].val.convert(v);
4148 }
catch (
const msgpack::type_error&) {
4150 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::ForeignCall'");
4154 }
else if (
tag ==
"Mov") {
4157 o.via.map.ptr[0].val.convert(v);
4158 }
catch (
const msgpack::type_error&) {
4160 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Mov'");
4164 }
else if (
tag ==
"ConditionalMov") {
4167 o.via.map.ptr[0].val.convert(v);
4168 }
catch (
const msgpack::type_error&) {
4170 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::ConditionalMov'");
4174 }
else if (
tag ==
"Load") {
4177 o.via.map.ptr[0].val.convert(v);
4178 }
catch (
const msgpack::type_error&) {
4180 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Load'");
4184 }
else if (
tag ==
"Store") {
4187 o.via.map.ptr[0].val.convert(v);
4188 }
catch (
const msgpack::type_error&) {
4190 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Store'");
4194 }
else if (
tag ==
"BlackBox") {
4197 o.via.map.ptr[0].val.convert(v);
4198 }
catch (
const msgpack::type_error&) {
4200 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BlackBox'");
4204 }
else if (
tag ==
"Trap") {
4207 o.via.map.ptr[0].val.convert(v);
4208 }
catch (
const msgpack::type_error&) {
4210 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Trap'");
4214 }
else if (
tag ==
"Stop") {
4217 o.via.map.ptr[0].val.convert(v);
4218 }
catch (
const msgpack::type_error&) {
4220 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Stop'");
4243 }
catch (
const msgpack::type_error&) {
4263 }
catch (
const msgpack::type_error&) {
4281 }
catch (
const msgpack::type_error&) {
4296 switch (
value.index()) {
4313 [&packer,
tag](
const auto& arg) {
4325 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
4329 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
4336 o.via.map.ptr[0].key.convert(
tag);
4337 }
catch (
const msgpack::type_error&) {
4339 throw_or_abort(
"expected u8 variant tag for enum 'FunctionInput'");
4345 o.via.map.ptr[0].val.convert(v);
4346 }
catch (
const msgpack::type_error&) {
4348 throw_or_abort(
"error converting into enum variant 'FunctionInput::Constant'");
4356 o.via.map.ptr[0].val.convert(v);
4357 }
catch (
const msgpack::type_error&) {
4359 throw_or_abort(
"error converting into enum variant 'FunctionInput::Witness'");
4373 if (o.type == msgpack::type::object_type::MAP) {
4374 o.via.map.ptr[0].key.convert(
tag);
4378 }
catch (
const msgpack::type_error&) {
4380 throw_or_abort(
"error converting tag to string for enum 'FunctionInput'");
4382 if (
tag ==
"Constant") {
4385 o.via.map.ptr[0].val.convert(v);
4386 }
catch (
const msgpack::type_error&) {
4388 throw_or_abort(
"error converting into enum variant 'FunctionInput::Constant'");
4392 }
else if (
tag ==
"Witness") {
4395 o.via.map.ptr[0].val.convert(v);
4396 }
catch (
const msgpack::type_error&) {
4398 throw_or_abort(
"error converting into enum variant 'FunctionInput::Witness'");
4422 packer.pack_array(4);
4431 std::string name =
"AES128Encrypt";
4432 if (o.type == msgpack::type::MAP) {
4461 }
else if (o.type == msgpack::type::ARRAY) {
4462 auto array = o.via.array;
4484 packer.pack_array(4);
4493 std::string name =
"AND";
4494 if (o.type == msgpack::type::MAP) {
4523 }
else if (o.type == msgpack::type::ARRAY) {
4524 auto array = o.via.array;
4546 packer.pack_array(4);
4555 std::string name =
"XOR";
4556 if (o.type == msgpack::type::MAP) {
4585 }
else if (o.type == msgpack::type::ARRAY) {
4586 auto array = o.via.array;
4606 packer.pack_array(2);
4613 std::string name =
"RANGE";
4614 if (o.type == msgpack::type::MAP) {
4635 }
else if (o.type == msgpack::type::ARRAY) {
4636 auto array = o.via.array;
4654 packer.pack_array(2);
4661 std::string name =
"Blake2s";
4662 if (o.type == msgpack::type::MAP) {
4683 }
else if (o.type == msgpack::type::ARRAY) {
4684 auto array = o.via.array;
4702 packer.pack_array(2);
4709 std::string name =
"Blake3";
4710 if (o.type == msgpack::type::MAP) {
4731 }
else if (o.type == msgpack::type::ARRAY) {
4732 auto array = o.via.array;
4754 packer.pack_array(6);
4765 std::string name =
"EcdsaSecp256k1";
4766 if (o.type == msgpack::type::MAP) {
4803 }
else if (o.type == msgpack::type::ARRAY) {
4804 auto array = o.via.array;
4830 packer.pack_array(6);
4841 std::string name =
"EcdsaSecp256r1";
4842 if (o.type == msgpack::type::MAP) {
4879 }
else if (o.type == msgpack::type::ARRAY) {
4880 auto array = o.via.array;
4904 packer.pack_array(4);
4913 std::string name =
"MultiScalarMul";
4914 if (o.type == msgpack::type::MAP) {
4943 }
else if (o.type == msgpack::type::ARRAY) {
4944 auto array = o.via.array;
4966 packer.pack_array(4);
4975 std::string name =
"EmbeddedCurveAdd";
4976 if (o.type == msgpack::type::MAP) {
5005 }
else if (o.type == msgpack::type::ARRAY) {
5006 auto array = o.via.array;
5026 packer.pack_array(2);
5033 std::string name =
"Keccakf1600";
5034 if (o.type == msgpack::type::MAP) {
5055 }
else if (o.type == msgpack::type::ARRAY) {
5056 auto array = o.via.array;
5078 packer.pack_array(6);
5089 std::string name =
"RecursiveAggregation";
5090 if (o.type == msgpack::type::MAP) {
5127 }
else if (o.type == msgpack::type::ARRAY) {
5128 auto array = o.via.array;
5150 packer.pack_array(2);
5157 std::string name =
"Poseidon2Permutation";
5158 if (o.type == msgpack::type::MAP) {
5179 }
else if (o.type == msgpack::type::ARRAY) {
5180 auto array = o.via.array;
5199 packer.pack_array(3);
5207 std::string name =
"Sha256Compression";
5208 if (o.type == msgpack::type::MAP) {
5233 }
else if (o.type == msgpack::type::ARRAY) {
5234 auto array = o.via.array;
5256 RecursiveAggregation,
5257 Poseidon2Permutation,
5267 switch (
value.index()) {
5270 tag =
"AES128Encrypt";
5294 tag =
"EcdsaSecp256k1";
5298 tag =
"EcdsaSecp256r1";
5302 tag =
"MultiScalarMul";
5306 tag =
"EmbeddedCurveAdd";
5310 tag =
"Keccakf1600";
5314 tag =
"RecursiveAggregation";
5318 tag =
"Poseidon2Permutation";
5322 tag =
"Sha256Compression";
5332 [&packer,
tag](
const auto& arg) {
5344 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
5348 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
5355 o.via.map.ptr[0].key.convert(
tag);
5356 }
catch (
const msgpack::type_error&) {
5358 throw_or_abort(
"expected u8 variant tag for enum 'BlackBoxFuncCall'");
5364 o.via.map.ptr[0].val.convert(v);
5365 }
catch (
const msgpack::type_error&) {
5367 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::AES128Encrypt'");
5375 o.via.map.ptr[0].val.convert(v);
5376 }
catch (
const msgpack::type_error&) {
5378 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::AND'");
5386 o.via.map.ptr[0].val.convert(v);
5387 }
catch (
const msgpack::type_error&) {
5389 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::XOR'");
5397 o.via.map.ptr[0].val.convert(v);
5398 }
catch (
const msgpack::type_error&) {
5400 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::RANGE'");
5408 o.via.map.ptr[0].val.convert(v);
5409 }
catch (
const msgpack::type_error&) {
5411 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Blake2s'");
5419 o.via.map.ptr[0].val.convert(v);
5420 }
catch (
const msgpack::type_error&) {
5422 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Blake3'");
5430 o.via.map.ptr[0].val.convert(v);
5431 }
catch (
const msgpack::type_error&) {
5433 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EcdsaSecp256k1'");
5441 o.via.map.ptr[0].val.convert(v);
5442 }
catch (
const msgpack::type_error&) {
5444 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EcdsaSecp256r1'");
5452 o.via.map.ptr[0].val.convert(v);
5453 }
catch (
const msgpack::type_error&) {
5455 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::MultiScalarMul'");
5463 o.via.map.ptr[0].val.convert(v);
5464 }
catch (
const msgpack::type_error&) {
5466 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EmbeddedCurveAdd'");
5474 o.via.map.ptr[0].val.convert(v);
5475 }
catch (
const msgpack::type_error&) {
5477 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Keccakf1600'");
5485 o.via.map.ptr[0].val.convert(v);
5486 }
catch (
const msgpack::type_error&) {
5488 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::RecursiveAggregation'");
5496 o.via.map.ptr[0].val.convert(v);
5497 }
catch (
const msgpack::type_error&) {
5499 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Poseidon2Permutation'");
5507 o.via.map.ptr[0].val.convert(v);
5508 }
catch (
const msgpack::type_error&) {
5510 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Sha256Compression'");
5524 if (o.type == msgpack::type::object_type::MAP) {
5525 o.via.map.ptr[0].key.convert(
tag);
5529 }
catch (
const msgpack::type_error&) {
5531 throw_or_abort(
"error converting tag to string for enum 'BlackBoxFuncCall'");
5533 if (
tag ==
"AES128Encrypt") {
5536 o.via.map.ptr[0].val.convert(v);
5537 }
catch (
const msgpack::type_error&) {
5539 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::AES128Encrypt'");
5543 }
else if (
tag ==
"AND") {
5546 o.via.map.ptr[0].val.convert(v);
5547 }
catch (
const msgpack::type_error&) {
5549 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::AND'");
5553 }
else if (
tag ==
"XOR") {
5556 o.via.map.ptr[0].val.convert(v);
5557 }
catch (
const msgpack::type_error&) {
5559 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::XOR'");
5563 }
else if (
tag ==
"RANGE") {
5566 o.via.map.ptr[0].val.convert(v);
5567 }
catch (
const msgpack::type_error&) {
5569 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::RANGE'");
5573 }
else if (
tag ==
"Blake2s") {
5576 o.via.map.ptr[0].val.convert(v);
5577 }
catch (
const msgpack::type_error&) {
5579 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Blake2s'");
5583 }
else if (
tag ==
"Blake3") {
5586 o.via.map.ptr[0].val.convert(v);
5587 }
catch (
const msgpack::type_error&) {
5589 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Blake3'");
5593 }
else if (
tag ==
"EcdsaSecp256k1") {
5596 o.via.map.ptr[0].val.convert(v);
5597 }
catch (
const msgpack::type_error&) {
5599 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EcdsaSecp256k1'");
5603 }
else if (
tag ==
"EcdsaSecp256r1") {
5606 o.via.map.ptr[0].val.convert(v);
5607 }
catch (
const msgpack::type_error&) {
5609 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EcdsaSecp256r1'");
5613 }
else if (
tag ==
"MultiScalarMul") {
5616 o.via.map.ptr[0].val.convert(v);
5617 }
catch (
const msgpack::type_error&) {
5619 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::MultiScalarMul'");
5623 }
else if (
tag ==
"EmbeddedCurveAdd") {
5626 o.via.map.ptr[0].val.convert(v);
5627 }
catch (
const msgpack::type_error&) {
5629 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EmbeddedCurveAdd'");
5633 }
else if (
tag ==
"Keccakf1600") {
5636 o.via.map.ptr[0].val.convert(v);
5637 }
catch (
const msgpack::type_error&) {
5639 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Keccakf1600'");
5643 }
else if (
tag ==
"RecursiveAggregation") {
5646 o.via.map.ptr[0].val.convert(v);
5647 }
catch (
const msgpack::type_error&) {
5649 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::RecursiveAggregation'");
5653 }
else if (
tag ==
"Poseidon2Permutation") {
5656 o.via.map.ptr[0].val.convert(v);
5657 }
catch (
const msgpack::type_error&) {
5659 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Poseidon2Permutation'");
5663 }
else if (
tag ==
"Sha256Compression") {
5666 o.via.map.ptr[0].val.convert(v);
5667 }
catch (
const msgpack::type_error&) {
5669 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Sha256Compression'");
5692 }
catch (
const msgpack::type_error&) {
5719 }
catch (
const msgpack::type_error&) {
5741 switch (
value.index()) {
5762 [&packer,
tag](
const auto& arg) {
5774 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
5778 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
5785 o.via.map.ptr[0].key.convert(
tag);
5786 }
catch (
const msgpack::type_error&) {
5799 o.via.map.ptr[0].val.convert(v);
5800 }
catch (
const msgpack::type_error&) {
5802 throw_or_abort(
"error converting into enum variant 'BlockType::CallData'");
5821 if (o.type == msgpack::type::object_type::MAP) {
5822 o.via.map.ptr[0].key.convert(
tag);
5826 }
catch (
const msgpack::type_error&) {
5828 throw_or_abort(
"error converting tag to string for enum 'BlockType'");
5830 if (
tag ==
"Memory") {
5833 }
else if (
tag ==
"CallData") {
5836 o.via.map.ptr[0].val.convert(v);
5837 }
catch (
const msgpack::type_error&) {
5839 throw_or_abort(
"error converting into enum variant 'BlockType::CallData'");
5843 }
else if (
tag ==
"ReturnData") {
5863 packer.pack_array(3);
5871 std::string name =
"Expression";
5872 if (o.type == msgpack::type::MAP) {
5897 }
else if (o.type == msgpack::type::ARRAY) {
5898 auto array = o.via.array;
5922 }
catch (
const msgpack::type_error&) {
5940 }
catch (
const msgpack::type_error&) {
5958 }
catch (
const msgpack::type_error&) {
5973 switch (
value.index()) {
5984 tag =
"MemoryArray";
5994 [&packer,
tag](
const auto& arg) {
6006 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
6010 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
6017 o.via.map.ptr[0].key.convert(
tag);
6018 }
catch (
const msgpack::type_error&) {
6020 throw_or_abort(
"expected u8 variant tag for enum 'BrilligInputs'");
6026 o.via.map.ptr[0].val.convert(v);
6027 }
catch (
const msgpack::type_error&) {
6029 throw_or_abort(
"error converting into enum variant 'BrilligInputs::Single'");
6037 o.via.map.ptr[0].val.convert(v);
6038 }
catch (
const msgpack::type_error&) {
6040 throw_or_abort(
"error converting into enum variant 'BrilligInputs::Array'");
6048 o.via.map.ptr[0].val.convert(v);
6049 }
catch (
const msgpack::type_error&) {
6051 throw_or_abort(
"error converting into enum variant 'BrilligInputs::MemoryArray'");
6065 if (o.type == msgpack::type::object_type::MAP) {
6066 o.via.map.ptr[0].key.convert(
tag);
6070 }
catch (
const msgpack::type_error&) {
6072 throw_or_abort(
"error converting tag to string for enum 'BrilligInputs'");
6074 if (
tag ==
"Single") {
6077 o.via.map.ptr[0].val.convert(v);
6078 }
catch (
const msgpack::type_error&) {
6080 throw_or_abort(
"error converting into enum variant 'BrilligInputs::Single'");
6084 }
else if (
tag ==
"Array") {
6087 o.via.map.ptr[0].val.convert(v);
6088 }
catch (
const msgpack::type_error&) {
6090 throw_or_abort(
"error converting into enum variant 'BrilligInputs::Array'");
6094 }
else if (
tag ==
"MemoryArray") {
6097 o.via.map.ptr[0].val.convert(v);
6098 }
catch (
const msgpack::type_error&) {
6100 throw_or_abort(
"error converting into enum variant 'BrilligInputs::MemoryArray'");
6125 }
catch (
const msgpack::type_error&) {
6143 }
catch (
const msgpack::type_error&) {
6158 switch (
value.index()) {
6175 [&packer,
tag](
const auto& arg) {
6187 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
6191 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
6198 o.via.map.ptr[0].key.convert(
tag);
6199 }
catch (
const msgpack::type_error&) {
6201 throw_or_abort(
"expected u8 variant tag for enum 'BrilligOutputs'");
6207 o.via.map.ptr[0].val.convert(v);
6208 }
catch (
const msgpack::type_error&) {
6210 throw_or_abort(
"error converting into enum variant 'BrilligOutputs::Simple'");
6218 o.via.map.ptr[0].val.convert(v);
6219 }
catch (
const msgpack::type_error&) {
6221 throw_or_abort(
"error converting into enum variant 'BrilligOutputs::Array'");
6235 if (o.type == msgpack::type::object_type::MAP) {
6236 o.via.map.ptr[0].key.convert(
tag);
6240 }
catch (
const msgpack::type_error&) {
6242 throw_or_abort(
"error converting tag to string for enum 'BrilligOutputs'");
6244 if (
tag ==
"Simple") {
6247 o.via.map.ptr[0].val.convert(v);
6248 }
catch (
const msgpack::type_error&) {
6250 throw_or_abort(
"error converting into enum variant 'BrilligOutputs::Simple'");
6254 }
else if (
tag ==
"Array") {
6257 o.via.map.ptr[0].val.convert(v);
6258 }
catch (
const msgpack::type_error&) {
6260 throw_or_abort(
"error converting into enum variant 'BrilligOutputs::Array'");
6281 packer.pack_array(3);
6289 std::string name =
"MemOp";
6290 if (o.type == msgpack::type::MAP) {
6315 }
else if (o.type == msgpack::type::ARRAY) {
6316 auto array = o.via.array;
6340 }
catch (
const msgpack::type_error&) {
6358 }
catch (
const msgpack::type_error&) {
6360 throw_or_abort(
"error converting into newtype 'BlackBoxFuncCall'");
6373 packer.pack_array(2);
6380 std::string name =
"MemoryOp";
6381 if (o.type == msgpack::type::MAP) {
6402 }
else if (o.type == msgpack::type::ARRAY) {
6403 auto array = o.via.array;
6422 packer.pack_array(3);
6430 std::string name =
"MemoryInit";
6431 if (o.type == msgpack::type::MAP) {
6456 }
else if (o.type == msgpack::type::ARRAY) {
6457 auto array = o.via.array;
6478 packer.pack_array(4);
6487 std::string name =
"BrilligCall";
6488 if (o.type == msgpack::type::MAP) {
6517 }
else if (o.type == msgpack::type::ARRAY) {
6518 auto array = o.via.array;
6540 packer.pack_array(4);
6549 std::string name =
"Call";
6550 if (o.type == msgpack::type::MAP) {
6579 }
else if (o.type == msgpack::type::ARRAY) {
6580 auto array = o.via.array;
6600 switch (
value.index()) {
6607 tag =
"BlackBoxFuncCall";
6619 tag =
"BrilligCall";
6633 [&packer,
tag](
const auto& arg) {
6645 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
6649 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
6656 o.via.map.ptr[0].key.convert(
tag);
6657 }
catch (
const msgpack::type_error&) {
6665 o.via.map.ptr[0].val.convert(v);
6666 }
catch (
const msgpack::type_error&) {
6668 throw_or_abort(
"error converting into enum variant 'Opcode::AssertZero'");
6676 o.via.map.ptr[0].val.convert(v);
6677 }
catch (
const msgpack::type_error&) {
6679 throw_or_abort(
"error converting into enum variant 'Opcode::BlackBoxFuncCall'");
6687 o.via.map.ptr[0].val.convert(v);
6688 }
catch (
const msgpack::type_error&) {
6690 throw_or_abort(
"error converting into enum variant 'Opcode::MemoryOp'");
6698 o.via.map.ptr[0].val.convert(v);
6699 }
catch (
const msgpack::type_error&) {
6701 throw_or_abort(
"error converting into enum variant 'Opcode::MemoryInit'");
6709 o.via.map.ptr[0].val.convert(v);
6710 }
catch (
const msgpack::type_error&) {
6712 throw_or_abort(
"error converting into enum variant 'Opcode::BrilligCall'");
6720 o.via.map.ptr[0].val.convert(v);
6721 }
catch (
const msgpack::type_error&) {
6723 throw_or_abort(
"error converting into enum variant 'Opcode::Call'");
6737 if (o.type == msgpack::type::object_type::MAP) {
6738 o.via.map.ptr[0].key.convert(
tag);
6742 }
catch (
const msgpack::type_error&) {
6744 throw_or_abort(
"error converting tag to string for enum 'Opcode'");
6746 if (
tag ==
"AssertZero") {
6749 o.via.map.ptr[0].val.convert(v);
6750 }
catch (
const msgpack::type_error&) {
6752 throw_or_abort(
"error converting into enum variant 'Opcode::AssertZero'");
6756 }
else if (
tag ==
"BlackBoxFuncCall") {
6759 o.via.map.ptr[0].val.convert(v);
6760 }
catch (
const msgpack::type_error&) {
6762 throw_or_abort(
"error converting into enum variant 'Opcode::BlackBoxFuncCall'");
6766 }
else if (
tag ==
"MemoryOp") {
6769 o.via.map.ptr[0].val.convert(v);
6770 }
catch (
const msgpack::type_error&) {
6772 throw_or_abort(
"error converting into enum variant 'Opcode::MemoryOp'");
6776 }
else if (
tag ==
"MemoryInit") {
6779 o.via.map.ptr[0].val.convert(v);
6780 }
catch (
const msgpack::type_error&) {
6782 throw_or_abort(
"error converting into enum variant 'Opcode::MemoryInit'");
6786 }
else if (
tag ==
"BrilligCall") {
6789 o.via.map.ptr[0].val.convert(v);
6790 }
catch (
const msgpack::type_error&) {
6792 throw_or_abort(
"error converting into enum variant 'Opcode::BrilligCall'");
6796 }
else if (
tag ==
"Call") {
6799 o.via.map.ptr[0].val.convert(v);
6800 }
catch (
const msgpack::type_error&) {
6802 throw_or_abort(
"error converting into enum variant 'Opcode::Call'");
6827 }
catch (
const msgpack::type_error&) {
6845 }
catch (
const msgpack::type_error&) {
6860 switch (
value.index()) {
6877 [&packer,
tag](
const auto& arg) {
6889 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
6893 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
6900 o.via.map.ptr[0].key.convert(
tag);
6901 }
catch (
const msgpack::type_error&) {
6903 throw_or_abort(
"expected u8 variant tag for enum 'ExpressionOrMemory'");
6909 o.via.map.ptr[0].val.convert(v);
6910 }
catch (
const msgpack::type_error&) {
6912 throw_or_abort(
"error converting into enum variant 'ExpressionOrMemory::Expression'");
6920 o.via.map.ptr[0].val.convert(v);
6921 }
catch (
const msgpack::type_error&) {
6923 throw_or_abort(
"error converting into enum variant 'ExpressionOrMemory::Memory'");
6937 if (o.type == msgpack::type::object_type::MAP) {
6938 o.via.map.ptr[0].key.convert(
tag);
6942 }
catch (
const msgpack::type_error&) {
6944 throw_or_abort(
"error converting tag to string for enum 'ExpressionOrMemory'");
6946 if (
tag ==
"Expression") {
6949 o.via.map.ptr[0].val.convert(v);
6950 }
catch (
const msgpack::type_error&) {
6952 throw_or_abort(
"error converting into enum variant 'ExpressionOrMemory::Expression'");
6956 }
else if (
tag ==
"Memory") {
6959 o.via.map.ptr[0].val.convert(v);
6960 }
catch (
const msgpack::type_error&) {
6962 throw_or_abort(
"error converting into enum variant 'ExpressionOrMemory::Memory'");
6982 packer.pack_array(2);
6989 std::string name =
"AssertionPayload";
6990 if (o.type == msgpack::type::MAP) {
7011 }
else if (o.type == msgpack::type::ARRAY) {
7012 auto array = o.via.array;
7035 }
catch (
const msgpack::type_error&) {
7050 packer.pack_array(2);
7057 std::string name =
"Brillig";
7058 if (o.type == msgpack::type::MAP) {
7079 }
else if (o.type == msgpack::type::ARRAY) {
7080 auto array = o.via.array;
7098 switch (
value.index()) {
7115 [&packer,
tag](
const auto& arg) {
7127 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
7131 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
7138 o.via.map.ptr[0].key.convert(
tag);
7139 }
catch (
const msgpack::type_error&) {
7141 throw_or_abort(
"expected u8 variant tag for enum 'OpcodeLocation'");
7147 o.via.map.ptr[0].val.convert(v);
7148 }
catch (
const msgpack::type_error&) {
7150 throw_or_abort(
"error converting into enum variant 'OpcodeLocation::Acir'");
7158 o.via.map.ptr[0].val.convert(v);
7159 }
catch (
const msgpack::type_error&) {
7161 throw_or_abort(
"error converting into enum variant 'OpcodeLocation::Brillig'");
7175 if (o.type == msgpack::type::object_type::MAP) {
7176 o.via.map.ptr[0].key.convert(
tag);
7180 }
catch (
const msgpack::type_error&) {
7182 throw_or_abort(
"error converting tag to string for enum 'OpcodeLocation'");
7184 if (
tag ==
"Acir") {
7187 o.via.map.ptr[0].val.convert(v);
7188 }
catch (
const msgpack::type_error&) {
7190 throw_or_abort(
"error converting into enum variant 'OpcodeLocation::Acir'");
7194 }
else if (
tag ==
"Brillig") {
7197 o.via.map.ptr[0].val.convert(v);
7198 }
catch (
const msgpack::type_error&) {
7200 throw_or_abort(
"error converting into enum variant 'OpcodeLocation::Brillig'");
7223 }
catch (
const msgpack::type_error&) {
7242 packer.pack_array(6);
7253 std::string name =
"Circuit";
7254 if (o.type == msgpack::type::MAP) {
7291 }
else if (o.type == msgpack::type::ARRAY) {
7292 auto array = o.via.array;
7313 packer.pack_array(2);
7320 std::string name =
"BrilligBytecode";
7321 if (o.type == msgpack::type::MAP) {
7342 }
else if (o.type == msgpack::type::ARRAY) {
7343 auto array = o.via.array;
7360 packer.pack_array(2);
7367 std::string name =
"Program";
7368 if (o.type == msgpack::type::MAP) {
7389 }
else if (o.type == msgpack::type::ARRAY) {
7390 auto array = o.via.array;
7407 packer.pack_array(2);
7414 std::string name =
"ProgramWithoutBrillig";
7415 if (o.type == msgpack::type::MAP) {
7435 }
else if (o.type == msgpack::type::ARRAY) {
7436 auto array = o.via.array;
7454 if (!(lhs.
payload == rhs.payload)) {
7463template <
typename Serializer>
7466 serializer.increase_container_depth();
7469 serializer.decrease_container_depth();
7473template <
typename Deserializer>
7476 deserializer.increase_container_depth();
7480 deserializer.decrease_container_depth();
7488 if (!(lhs.
value == rhs.value)) {
7497template <
typename Serializer>
7500 serializer.increase_container_depth();
7502 serializer.decrease_container_depth();
7506template <
typename Deserializer>
7509 deserializer.increase_container_depth();
7512 deserializer.decrease_container_depth();
7526template <
typename Serializer>
7528 Serializer& serializer)
7532template <
typename Deserializer>
7549template <
typename Serializer>
7551 Serializer& serializer)
7555template <
typename Deserializer>
7572template <
typename Serializer>
7574 Serializer& serializer)
7578template <
typename Deserializer>
7595template <
typename Serializer>
7597 Serializer& serializer)
7601template <
typename Deserializer>
7618template <
typename Serializer>
7620 Serializer& serializer)
7624template <
typename Deserializer>
7626 Deserializer& deserializer)
7642template <
typename Serializer>
7644 Serializer& serializer)
7648template <
typename Deserializer>
7665template <
typename Serializer>
7667 Serializer& serializer)
7671template <
typename Deserializer>
7673 Deserializer& deserializer)
7689template <
typename Serializer>
7691 Serializer& serializer)
7695template <
typename Deserializer>
7697 Deserializer& deserializer)
7707 if (!(lhs.
value == rhs.value)) {
7716template <
typename Serializer>
7719 serializer.increase_container_depth();
7721 serializer.decrease_container_depth();
7725template <
typename Deserializer>
7728 deserializer.increase_container_depth();
7731 deserializer.decrease_container_depth();
7745template <
typename Serializer>
7750template <
typename Deserializer>
7767template <
typename Serializer>
7772template <
typename Deserializer>
7789template <
typename Serializer>
7794template <
typename Deserializer>
7811template <
typename Serializer>
7816template <
typename Deserializer>
7833template <
typename Serializer>
7835 Serializer& serializer)
7839template <
typename Deserializer>
7856template <
typename Serializer>
7858 Serializer& serializer)
7862template <
typename Deserializer>
7879template <
typename Serializer>
7881 Serializer& serializer)
7885template <
typename Deserializer>
7887 Deserializer& deserializer)
7903template <
typename Serializer>
7908template <
typename Deserializer>
7925template <
typename Serializer>
7930template <
typename Deserializer>
7947template <
typename Serializer>
7952template <
typename Deserializer>
7969template <
typename Serializer>
7974template <
typename Deserializer>
7991template <
typename Serializer>
7996template <
typename Deserializer>
8007 if (!(lhs.
value == rhs.value)) {
8016template <
typename Serializer>
8019 serializer.increase_container_depth();
8021 serializer.decrease_container_depth();
8025template <
typename Deserializer>
8028 deserializer.increase_container_depth();
8031 deserializer.decrease_container_depth();
8045template <
typename Serializer>
8050template <
typename Deserializer>
8061 if (!(lhs.
value == rhs.value)) {
8070template <
typename Serializer>
8077template <
typename Deserializer>
8089 if (!(lhs.
value == rhs.value)) {
8098template <
typename Serializer>
8101 serializer.increase_container_depth();
8103 serializer.decrease_container_depth();
8107template <
typename Deserializer>
8110 deserializer.increase_container_depth();
8113 deserializer.decrease_container_depth();
8121 if (!(lhs.
inputs == rhs.inputs)) {
8124 if (!(lhs.
iv == rhs.iv)) {
8127 if (!(lhs.
key == rhs.key)) {
8130 if (!(lhs.
outputs == rhs.outputs)) {
8139template <
typename Serializer>
8150template <
typename Deserializer>
8152 Deserializer& deserializer)
8166 if (!(lhs.
lhs == rhs.lhs)) {
8169 if (!(lhs.
rhs == rhs.rhs)) {
8172 if (!(lhs.
num_bits == rhs.num_bits)) {
8175 if (!(lhs.
output == rhs.output)) {
8184template <
typename Serializer>
8186 Serializer& serializer)
8195template <
typename Deserializer>
8210 if (!(lhs.
lhs == rhs.lhs)) {
8213 if (!(lhs.
rhs == rhs.rhs)) {
8216 if (!(lhs.
num_bits == rhs.num_bits)) {
8219 if (!(lhs.
output == rhs.output)) {
8228template <
typename Serializer>
8230 Serializer& serializer)
8239template <
typename Deserializer>
8254 if (!(lhs.
input == rhs.input)) {
8257 if (!(lhs.
num_bits == rhs.num_bits)) {
8266template <
typename Serializer>
8268 Serializer& serializer)
8275template <
typename Deserializer>
8277 Deserializer& deserializer)
8289 if (!(lhs.
inputs == rhs.inputs)) {
8292 if (!(lhs.
outputs == rhs.outputs)) {
8301template <
typename Serializer>
8303 Serializer& serializer)
8310template <
typename Deserializer>
8312 Deserializer& deserializer)
8324 if (!(lhs.
inputs == rhs.inputs)) {
8327 if (!(lhs.
outputs == rhs.outputs)) {
8336template <
typename Serializer>
8338 Serializer& serializer)
8345template <
typename Deserializer>
8347 Deserializer& deserializer)
8365 if (!(lhs.
signature == rhs.signature)) {
8371 if (!(lhs.
predicate == rhs.predicate)) {
8374 if (!(lhs.
output == rhs.output)) {
8383template <
typename Serializer>
8396template <
typename Deserializer>
8398 Deserializer& deserializer)
8420 if (!(lhs.
signature == rhs.signature)) {
8426 if (!(lhs.
predicate == rhs.predicate)) {
8429 if (!(lhs.
output == rhs.output)) {
8438template <
typename Serializer>
8451template <
typename Deserializer>
8453 Deserializer& deserializer)
8469 if (!(lhs.
points == rhs.points)) {
8472 if (!(lhs.
scalars == rhs.scalars)) {
8475 if (!(lhs.
predicate == rhs.predicate)) {
8478 if (!(lhs.
outputs == rhs.outputs)) {
8487template <
typename Serializer>
8498template <
typename Deserializer>
8500 Deserializer& deserializer)
8514 if (!(lhs.
input1 == rhs.input1)) {
8517 if (!(lhs.
input2 == rhs.input2)) {
8520 if (!(lhs.
predicate == rhs.predicate)) {
8523 if (!(lhs.
outputs == rhs.outputs)) {
8532template <
typename Serializer>
8543template <
typename Deserializer>
8545 Deserializer& deserializer)
8559 if (!(lhs.
inputs == rhs.inputs)) {
8562 if (!(lhs.
outputs == rhs.outputs)) {
8571template <
typename Serializer>
8573 Serializer& serializer)
8580template <
typename Deserializer>
8582 Deserializer& deserializer)
8598 if (!(lhs.
proof == rhs.proof)) {
8604 if (!(lhs.
key_hash == rhs.key_hash)) {
8610 if (!(lhs.
predicate == rhs.predicate)) {
8619template <
typename Serializer>
8632template <
typename Deserializer>
8651 if (!(lhs.
inputs == rhs.inputs)) {
8654 if (!(lhs.
outputs == rhs.outputs)) {
8663template <
typename Serializer>
8672template <
typename Deserializer>
8686 if (!(lhs.
inputs == rhs.inputs)) {
8692 if (!(lhs.
outputs == rhs.outputs)) {
8701template <
typename Serializer>
8711template <
typename Deserializer>
8713 Deserializer& deserializer)
8726 if (!(lhs.
value == rhs.value)) {
8735template <
typename Serializer>
8738 serializer.increase_container_depth();
8740 serializer.decrease_container_depth();
8744template <
typename Deserializer>
8747 deserializer.increase_container_depth();
8750 deserializer.decrease_container_depth();
8758 if (!(lhs.
inputs == rhs.inputs)) {
8761 if (!(lhs.
iv == rhs.iv)) {
8764 if (!(lhs.
key == rhs.key)) {
8767 if (!(lhs.
outputs == rhs.outputs)) {
8776template <
typename Serializer>
8778 Serializer& serializer)
8787template <
typename Deserializer>
8789 Deserializer& deserializer)
8803 if (!(lhs.
message == rhs.message)) {
8806 if (!(lhs.
output == rhs.output)) {
8815template <
typename Serializer>
8817 Serializer& serializer)
8824template <
typename Deserializer>
8837 if (!(lhs.
message == rhs.message)) {
8840 if (!(lhs.
output == rhs.output)) {
8849template <
typename Serializer>
8851 Serializer& serializer)
8858template <
typename Deserializer>
8871 if (!(lhs.
input == rhs.input)) {
8874 if (!(lhs.
output == rhs.output)) {
8883template <
typename Serializer>
8885 Serializer& serializer)
8892template <
typename Deserializer>
8894 Deserializer& deserializer)
8915 if (!(lhs.
signature == rhs.signature)) {
8918 if (!(lhs.
result == rhs.result)) {
8927template <
typename Serializer>
8929 Serializer& serializer)
8939template <
typename Deserializer>
8941 Deserializer& deserializer)
8965 if (!(lhs.
signature == rhs.signature)) {
8968 if (!(lhs.
result == rhs.result)) {
8977template <
typename Serializer>
8979 Serializer& serializer)
8989template <
typename Deserializer>
8991 Deserializer& deserializer)
9006 if (!(lhs.
points == rhs.points)) {
9009 if (!(lhs.
scalars == rhs.scalars)) {
9012 if (!(lhs.
outputs == rhs.outputs)) {
9021template <
typename Serializer>
9023 Serializer& serializer)
9031template <
typename Deserializer>
9033 Deserializer& deserializer)
9046 if (!(lhs.
input1_x == rhs.input1_x)) {
9049 if (!(lhs.
input1_y == rhs.input1_y)) {
9052 if (!(lhs.
input2_x == rhs.input2_x)) {
9055 if (!(lhs.
input2_y == rhs.input2_y)) {
9058 if (!(lhs.
result == rhs.result)) {
9067template <
typename Serializer>
9069 Serializer& serializer)
9079template <
typename Deserializer>
9081 Deserializer& deserializer)
9096 if (!(lhs.
message == rhs.message)) {
9099 if (!(lhs.
output == rhs.output)) {
9108template <
typename Serializer>
9117template <
typename Deserializer>
9119 Deserializer& deserializer)
9131 if (!(lhs.
input == rhs.input)) {
9137 if (!(lhs.
output == rhs.output)) {
9146template <
typename Serializer>
9148 Serializer& serializer)
9156template <
typename Deserializer>
9158 Deserializer& deserializer)
9171 if (!(lhs.
input == rhs.input)) {
9174 if (!(lhs.
radix == rhs.radix)) {
9180 if (!(lhs.
num_limbs == rhs.num_limbs)) {
9192template <
typename Serializer>
9194 Serializer& serializer)
9204template <
typename Deserializer>
9220 if (!(lhs.
value == rhs.value)) {
9229template <
typename Serializer>
9232 serializer.increase_container_depth();
9234 serializer.decrease_container_depth();
9238template <
typename Deserializer>
9241 deserializer.increase_container_depth();
9244 deserializer.decrease_container_depth();
9252 if (!(lhs.
value == rhs.value)) {
9261template <
typename Serializer>
9264 serializer.increase_container_depth();
9266 serializer.decrease_container_depth();
9270template <
typename Deserializer>
9273 deserializer.increase_container_depth();
9276 deserializer.decrease_container_depth();
9290template <
typename Serializer>
9295template <
typename Deserializer>
9306 if (!(lhs.
value == rhs.value)) {
9315template <
typename Serializer>
9317 Serializer& serializer)
9323template <
typename Deserializer>
9341template <
typename Serializer>
9343 Serializer& serializer)
9347template <
typename Deserializer>
9361 if (!(lhs.
bytecode == rhs.bytecode)) {
9370template <
typename Serializer>
9373 serializer.increase_container_depth();
9376 serializer.decrease_container_depth();
9380template <
typename Deserializer>
9383 deserializer.increase_container_depth();
9387 deserializer.decrease_container_depth();
9395 if (!(lhs.
value == rhs.value)) {
9404template <
typename Serializer>
9407 serializer.increase_container_depth();
9409 serializer.decrease_container_depth();
9413template <
typename Deserializer>
9416 deserializer.increase_container_depth();
9419 deserializer.decrease_container_depth();
9427 if (!(lhs.
value == rhs.value)) {
9436template <
typename Serializer>
9438 Serializer& serializer)
9444template <
typename Deserializer>
9456 if (!(lhs.
value == rhs.value)) {
9465template <
typename Serializer>
9467 Serializer& serializer)
9473template <
typename Deserializer>
9485 if (!(lhs.
value == rhs.value)) {
9494template <
typename Serializer>
9496 Serializer& serializer)
9502template <
typename Deserializer>
9504 Deserializer& deserializer)
9515 if (!(lhs.
value == rhs.value)) {
9524template <
typename Serializer>
9527 serializer.increase_container_depth();
9529 serializer.decrease_container_depth();
9533template <
typename Deserializer>
9536 deserializer.increase_container_depth();
9539 deserializer.decrease_container_depth();
9550 if (!(lhs.
op == rhs.op)) {
9553 if (!(lhs.
lhs == rhs.lhs)) {
9556 if (!(lhs.
rhs == rhs.rhs)) {
9565template <
typename Serializer>
9567 Serializer& serializer)
9576template <
typename Deserializer>
9578 Deserializer& deserializer)
9595 if (!(lhs.
op == rhs.op)) {
9598 if (!(lhs.
bit_size == rhs.bit_size)) {
9601 if (!(lhs.
lhs == rhs.lhs)) {
9604 if (!(lhs.
rhs == rhs.rhs)) {
9613template <
typename Serializer>
9615 Serializer& serializer)
9625template <
typename Deserializer>
9627 Deserializer& deserializer)
9645 if (!(lhs.
source == rhs.source)) {
9648 if (!(lhs.
bit_size == rhs.bit_size)) {
9657template <
typename Serializer>
9659 Serializer& serializer)
9667template <
typename Deserializer>
9684 if (!(lhs.
source == rhs.source)) {
9687 if (!(lhs.
bit_size == rhs.bit_size)) {
9696template <
typename Serializer>
9698 Serializer& serializer)
9706template <
typename Deserializer>
9720 if (!(lhs.
condition == rhs.condition)) {
9723 if (!(lhs.
location == rhs.location)) {
9732template <
typename Serializer>
9734 Serializer& serializer)
9741template <
typename Deserializer>
9754 if (!(lhs.
location == rhs.location)) {
9763template <
typename Serializer>
9765 Serializer& serializer)
9771template <
typename Deserializer>
9798template <
typename Serializer>
9800 Serializer& serializer)
9808template <
typename Deserializer>
9810 Deserializer& deserializer)
9823 if (!(lhs.
location == rhs.location)) {
9832template <
typename Serializer>
9834 Serializer& serializer)
9840template <
typename Deserializer>
9855 if (!(lhs.
bit_size == rhs.bit_size)) {
9858 if (!(lhs.
value == rhs.value)) {
9867template <
typename Serializer>
9869 Serializer& serializer)
9877template <
typename Deserializer>
9894 if (!(lhs.
bit_size == rhs.bit_size)) {
9897 if (!(lhs.
value == rhs.value)) {
9906template <
typename Serializer>
9908 Serializer& serializer)
9916template <
typename Deserializer>
9918 Deserializer& deserializer)
9937template <
typename Serializer>
9939 Serializer& serializer)
9943template <
typename Deserializer>
9954 if (!(lhs.
function == rhs.function)) {
9963 if (!(lhs.
inputs == rhs.inputs)) {
9975template <
typename Serializer>
9977 Serializer& serializer)
9987template <
typename Deserializer>
9989 Deserializer& deserializer)
10008 if (!(lhs.
source == rhs.source)) {
10017template <
typename Serializer>
10019 Serializer& serializer)
10026template <
typename Deserializer>
10042 if (!(lhs.
source_a == rhs.source_a)) {
10045 if (!(lhs.
source_b == rhs.source_b)) {
10048 if (!(lhs.
condition == rhs.condition)) {
10057template <
typename Serializer>
10059 Serializer& serializer)
10068template <
typename Deserializer>
10070 Deserializer& deserializer)
10096template <
typename Serializer>
10098 Serializer& serializer)
10105template <
typename Deserializer>
10121 if (!(lhs.
source == rhs.source)) {
10130template <
typename Serializer>
10132 Serializer& serializer)
10139template <
typename Deserializer>
10152 if (!(lhs.
value == rhs.value)) {
10161template <
typename Serializer>
10163 Serializer& serializer)
10169template <
typename Deserializer>
10171 Deserializer& deserializer)
10191template <
typename Serializer>
10193 Serializer& serializer)
10199template <
typename Deserializer>
10220template <
typename Serializer>
10222 Serializer& serializer)
10228template <
typename Deserializer>
10240 if (!(lhs.
value == rhs.value)) {
10249template <
typename Serializer>
10252 serializer.increase_container_depth();
10254 serializer.decrease_container_depth();
10258template <
typename Deserializer>
10261 deserializer.increase_container_depth();
10264 deserializer.decrease_container_depth();
10272 if (!(lhs.
value == rhs.value)) {
10281template <
typename Serializer>
10283 Serializer& serializer)
10289template <
typename Deserializer>
10291 Deserializer& deserializer)
10302 if (!(lhs.
value == rhs.value)) {
10311template <
typename Serializer>
10313 Serializer& serializer)
10319template <
typename Deserializer>
10334 if (!(lhs.
opcodes == rhs.opcodes)) {
10355template <
typename Serializer>
10358 serializer.increase_container_depth();
10365 serializer.decrease_container_depth();
10369template <
typename Deserializer>
10372 deserializer.increase_container_depth();
10380 deserializer.decrease_container_depth();
10388 if (!(lhs.
mul_terms == rhs.mul_terms)) {
10394 if (!(lhs.
q_c == rhs.q_c)) {
10403template <
typename Serializer>
10406 serializer.increase_container_depth();
10410 serializer.decrease_container_depth();
10414template <
typename Deserializer>
10417 deserializer.increase_container_depth();
10422 deserializer.decrease_container_depth();
10430 if (!(lhs.
value == rhs.value)) {
10439template <
typename Serializer>
10441 Serializer& serializer)
10443 serializer.increase_container_depth();
10445 serializer.decrease_container_depth();
10449template <
typename Deserializer>
10452 deserializer.increase_container_depth();
10455 deserializer.decrease_container_depth();
10463 if (!(lhs.
value == rhs.value)) {
10472template <
typename Serializer>
10480template <
typename Deserializer>
10482 Deserializer& deserializer)
10493 if (!(lhs.
value == rhs.value)) {
10502template <
typename Serializer>
10504 Serializer& serializer)
10510template <
typename Deserializer>
10512 Deserializer& deserializer)
10523 if (!(lhs.
value == rhs.value)) {
10532template <
typename Serializer>
10535 serializer.increase_container_depth();
10537 serializer.decrease_container_depth();
10541template <
typename Deserializer>
10544 deserializer.increase_container_depth();
10547 deserializer.decrease_container_depth();
10555 if (!(lhs.
value == rhs.value)) {
10564template <
typename Serializer>
10566 Serializer& serializer)
10572template <
typename Deserializer>
10574 Deserializer& deserializer)
10585 if (!(lhs.
value == rhs.value)) {
10594template <
typename Serializer>
10596 Serializer& serializer)
10602template <
typename Deserializer>
10604 Deserializer& deserializer)
10615 if (!(lhs.
pointer == rhs.pointer)) {
10618 if (!(lhs.
size == rhs.size)) {
10627template <
typename Serializer>
10630 serializer.increase_container_depth();
10633 serializer.decrease_container_depth();
10637template <
typename Deserializer>
10640 deserializer.increase_container_depth();
10644 deserializer.decrease_container_depth();
10652 if (!(lhs.
value == rhs.value)) {
10661template <
typename Serializer>
10664 serializer.increase_container_depth();
10666 serializer.decrease_container_depth();
10670template <
typename Deserializer>
10673 deserializer.increase_container_depth();
10676 deserializer.decrease_container_depth();
10684 if (!(lhs.
value == rhs.value)) {
10693template <
typename Serializer>
10695 Serializer& serializer)
10701template <
typename Deserializer>
10716 if (!(lhs.
size == rhs.size)) {
10725template <
typename Serializer>
10727 Serializer& serializer)
10734template <
typename Deserializer>
10756template <
typename Serializer>
10758 Serializer& serializer)
10764template <
typename Deserializer>
10776 if (!(lhs.
pointer == rhs.pointer)) {
10779 if (!(lhs.
size == rhs.size)) {
10788template <
typename Serializer>
10791 serializer.increase_container_depth();
10794 serializer.decrease_container_depth();
10798template <
typename Deserializer>
10801 deserializer.increase_container_depth();
10805 deserializer.decrease_container_depth();
10813 if (!(lhs.
value == rhs.value)) {
10822template <
typename Serializer>
10825 serializer.increase_container_depth();
10827 serializer.decrease_container_depth();
10831template <
typename Deserializer>
10834 deserializer.increase_container_depth();
10837 deserializer.decrease_container_depth();
10851template <
typename Serializer>
10853 Serializer& serializer)
10857template <
typename Deserializer>
10874template <
typename Serializer>
10876 Serializer& serializer)
10880template <
typename Deserializer>
10897template <
typename Serializer>
10899 Serializer& serializer)
10903template <
typename Deserializer>
10920template <
typename Serializer>
10922 Serializer& serializer)
10926template <
typename Deserializer>
10943template <
typename Serializer>
10945 Serializer& serializer)
10949template <
typename Deserializer>
10966template <
typename Serializer>
10968 Serializer& serializer)
10972template <
typename Deserializer>
10983 if (!(lhs.
read == rhs.read)) {
10986 if (!(lhs.
index == rhs.index)) {
10989 if (!(lhs.
value == rhs.value)) {
10998template <
typename Serializer>
11001 serializer.increase_container_depth();
11005 serializer.decrease_container_depth();
11009template <
typename Deserializer>
11012 deserializer.increase_container_depth();
11017 deserializer.decrease_container_depth();
11025 if (!(lhs.
value == rhs.value)) {
11034template <
typename Serializer>
11037 serializer.increase_container_depth();
11039 serializer.decrease_container_depth();
11043template <
typename Deserializer>
11046 deserializer.increase_container_depth();
11049 deserializer.decrease_container_depth();
11057 if (!(lhs.
value == rhs.value)) {
11066template <
typename Serializer>
11068 Serializer& serializer)
11074template <
typename Deserializer>
11086 if (!(lhs.
value == rhs.value)) {
11095template <
typename Serializer>
11097 Serializer& serializer)
11103template <
typename Deserializer>
11105 Deserializer& deserializer)
11116 if (!(lhs.
value == rhs.value)) {
11125template <
typename Serializer>
11128 serializer.increase_container_depth();
11130 serializer.decrease_container_depth();
11134template <
typename Deserializer>
11137 deserializer.increase_container_depth();
11140 deserializer.decrease_container_depth();
11148 if (!(lhs.
value == rhs.value)) {
11157template <
typename Serializer>
11159 Serializer& serializer)
11165template <
typename Deserializer>
11177 if (!(lhs.
value == rhs.value)) {
11186template <
typename Serializer>
11188 Serializer& serializer)
11194template <
typename Deserializer>
11196 Deserializer& deserializer)
11207 if (!(lhs.
block_id == rhs.block_id)) {
11210 if (!(lhs.
op == rhs.op)) {
11219template <
typename Serializer>
11227template <
typename Deserializer>
11240 if (!(lhs.
block_id == rhs.block_id)) {
11243 if (!(lhs.
init == rhs.init)) {
11255template <
typename Serializer>
11257 Serializer& serializer)
11265template <
typename Deserializer>
11279 if (!(lhs.
id == rhs.id)) {
11282 if (!(lhs.
inputs == rhs.inputs)) {
11285 if (!(lhs.
outputs == rhs.outputs)) {
11288 if (!(lhs.
predicate == rhs.predicate)) {
11297template <
typename Serializer>
11299 Serializer& serializer)
11308template <
typename Deserializer>
11323 if (!(lhs.
id == rhs.id)) {
11326 if (!(lhs.
inputs == rhs.inputs)) {
11329 if (!(lhs.
outputs == rhs.outputs)) {
11332 if (!(lhs.
predicate == rhs.predicate)) {
11341template <
typename Serializer>
11351template <
typename Deserializer>
11366 if (!(lhs.
value == rhs.value)) {
11375template <
typename Serializer>
11378 serializer.increase_container_depth();
11380 serializer.decrease_container_depth();
11384template <
typename Deserializer>
11387 deserializer.increase_container_depth();
11390 deserializer.decrease_container_depth();
11398 if (!(lhs.
value == rhs.value)) {
11407template <
typename Serializer>
11409 Serializer& serializer)
11415template <
typename Deserializer>
11439template <
typename Serializer>
11441 Serializer& serializer)
11448template <
typename Deserializer>
11450 Deserializer& deserializer)
11462 if (!(lhs.
functions == rhs.functions)) {
11474template <
typename Serializer>
11477 serializer.increase_container_depth();
11480 serializer.decrease_container_depth();
11484template <
typename Deserializer>
11487 deserializer.increase_container_depth();
11492 deserializer.decrease_container_depth();
11500 if (!(lhs.
functions == rhs.functions)) {
11512template <
typename Serializer>
11514 Serializer& serializer)
11516 serializer.increase_container_depth();
11519 serializer.decrease_container_depth();
11523template <
typename Deserializer>
11526 deserializer.increase_container_depth();
11531 deserializer.decrease_container_depth();
11539 if (!(lhs.
value == rhs.value)) {
11548template <
typename Serializer>
11551 serializer.increase_container_depth();
11553 serializer.decrease_container_depth();
11557template <
typename Deserializer>
11560 deserializer.increase_container_depth();
11563 deserializer.decrease_container_depth();
11571 if (!(lhs.
value == rhs.value)) {
11580template <
typename Serializer>
11583 serializer.increase_container_depth();
11585 serializer.decrease_container_depth();
11589template <
typename Deserializer>
11592 deserializer.increase_container_depth();
11595 deserializer.decrease_container_depth();
11603 if (!(lhs.
value == rhs.value)) {
11612template <
typename Serializer>
11614 Serializer& serializer)
11616 serializer.increase_container_depth();
11618 serializer.decrease_container_depth();
11622template <
typename Deserializer>
11625 deserializer.increase_container_depth();
11628 deserializer.decrease_container_depth();
11636 if (!(lhs.
value == rhs.value)) {
11645template <
typename Serializer>
11648 serializer.increase_container_depth();
11650 serializer.decrease_container_depth();
11654template <
typename Deserializer>
11657 deserializer.increase_container_depth();
11660 deserializer.decrease_container_depth();
11668 if (!(lhs.
value == rhs.value)) {
11677template <
typename Serializer>
11679 Serializer& serializer)
11685template <
typename Deserializer>
11687 Deserializer& deserializer)
11698 if (!(lhs.
value == rhs.value)) {
11707template <
typename Serializer>
11709 Serializer& serializer)
11715template <
typename Deserializer>
11717 Deserializer& deserializer)
11728 if (!(lhs.
value == rhs.value)) {
11737template <
typename Serializer>
11739 Serializer& serializer)
11745template <
typename Deserializer>
11747 Deserializer& deserializer)
11758 if (!(lhs.
value == rhs.value)) {
11767template <
typename Serializer>
11770 serializer.increase_container_depth();
11772 serializer.decrease_container_depth();
11776template <
typename Deserializer>
11779 deserializer.increase_container_depth();
11782 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, 2 > > outputs
std::shared_ptr< std::array< Acir::FunctionInput, 2 > > input1
friend bool operator==(const EmbeddedCurveAdd &, const EmbeddedCurveAdd &)
void msgpack_pack(auto &packer) const
std::shared_ptr< std::array< Acir::FunctionInput, 2 > > input2
Acir::FunctionInput predicate
void msgpack_unpack(msgpack::object const &o)
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, 2 > > 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 input1_y
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)
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 check_size(uint32_t actual, std::string const &name, uint32_t active, uint32_t reserved)
static bool is_int_keyed_map(msgpack::object const &o)
static void convert_or_throw(msgpack::object const &val, std::string const &struct_name, std::string const &field_name, T &field)
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 int_map_dispatch(msgpack::object const &o, std::string const &name, Dispatch &&dispatch)
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)
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)