10 if (o.type != msgpack::type::MAP) {
15 for (uint32_t i = 0; i < o.via.map.size; ++i) {
16 if (o.via.map.ptr[i].key.type != msgpack::type::STR) {
20 kvmap.emplace(std::string(o.via.map.ptr[i].key.via.str.ptr, o.via.map.ptr[i].key.via.str.size),
21 &o.via.map.ptr[i].val);
28 std::string
const& struct_name,
29 std::string
const& field_name,
33 auto it = kvmap.find(field_name);
34 if (it != kvmap.end()) {
36 it->second->convert(field);
37 }
catch (
const msgpack::type_error&) {
39 throw_or_abort(
"error converting into field " + struct_name +
"::" + field_name);
41 }
else if (!is_optional) {
42 throw_or_abort(
"missing field: " + struct_name +
"::" + field_name);
48 std::string
const& struct_name,
49 std::string
const& field_name,
53 if (
index >= array.size) {
56 auto element = array.ptr[
index];
58 element.convert(field);
59 }
catch (
const msgpack::type_error&) {
61 throw_or_abort(
"error converting into field " + struct_name +
"::" + field_name);
126 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
130 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
135 if (o.type == msgpack::type::object_type::MAP) {
136 o.via.map.ptr[0].key.convert(
tag);
140 }
catch (
const msgpack::type_error&) {
142 throw_or_abort(
"error converting tag to string for enum 'BinaryFieldOp'");
147 }
else if (
tag ==
"Sub") {
150 }
else if (
tag ==
"Mul") {
153 }
else if (
tag ==
"Div") {
156 }
else if (
tag ==
"IntegerDiv") {
159 }
else if (
tag ==
"Equals") {
162 }
else if (
tag ==
"LessThan") {
165 }
else if (
tag ==
"LessThanEquals") {
249 std::variant<Add, Sub, Mul, Div, Equals, LessThan, LessThanEquals, And, Or, Xor, Shl, Shr> value;
256 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
260 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
265 if (o.type == msgpack::type::object_type::MAP) {
266 o.via.map.ptr[0].key.convert(
tag);
270 }
catch (
const msgpack::type_error&) {
272 throw_or_abort(
"error converting tag to string for enum 'BinaryIntOp'");
277 }
else if (
tag ==
"Sub") {
280 }
else if (
tag ==
"Mul") {
283 }
else if (
tag ==
"Div") {
286 }
else if (
tag ==
"Equals") {
289 }
else if (
tag ==
"LessThan") {
292 }
else if (
tag ==
"LessThanEquals") {
295 }
else if (
tag ==
"And") {
298 }
else if (
tag ==
"Or") {
301 }
else if (
tag ==
"Xor") {
304 }
else if (
tag ==
"Shl") {
307 }
else if (
tag ==
"Shr") {
362 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
366 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
371 if (o.type == msgpack::type::object_type::MAP) {
372 o.via.map.ptr[0].key.convert(
tag);
376 }
catch (
const msgpack::type_error&) {
378 throw_or_abort(
"error converting tag to string for enum 'IntegerBitSize'");
383 }
else if (
tag ==
"U8") {
386 }
else if (
tag ==
"U16") {
389 }
else if (
tag ==
"U32") {
392 }
else if (
tag ==
"U64") {
395 }
else if (
tag ==
"U128") {
422 }
catch (
const msgpack::type_error&) {
436 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
440 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
445 if (o.type == msgpack::type::object_type::MAP) {
446 o.via.map.ptr[0].key.convert(
tag);
450 }
catch (
const msgpack::type_error&) {
452 throw_or_abort(
"error converting tag to string for enum 'BitSize'");
454 if (
tag ==
"Field") {
457 }
else if (
tag ==
"Integer") {
460 o.via.map.ptr[0].val.convert(v);
461 }
catch (
const msgpack::type_error&) {
463 throw_or_abort(
"error converting into enum variant 'BitSize::Integer'");
485 }
catch (
const msgpack::type_error&) {
501 }
catch (
const msgpack::type_error&) {
515 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
519 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
524 if (o.type == msgpack::type::object_type::MAP) {
525 o.via.map.ptr[0].key.convert(
tag);
529 }
catch (
const msgpack::type_error&) {
531 throw_or_abort(
"error converting tag to string for enum 'MemoryAddress'");
533 if (
tag ==
"Direct") {
536 o.via.map.ptr[0].val.convert(v);
537 }
catch (
const msgpack::type_error&) {
539 throw_or_abort(
"error converting into enum variant 'MemoryAddress::Direct'");
543 }
else if (
tag ==
"Relative") {
546 o.via.map.ptr[0].val.convert(v);
547 }
catch (
const msgpack::type_error&) {
549 throw_or_abort(
"error converting into enum variant 'MemoryAddress::Relative'");
569 }
catch (
const msgpack::type_error&) {
571 throw_or_abort(
"error converting into newtype 'SemiFlattenedLength'");
584 std::string name =
"HeapArray";
585 if (o.type == msgpack::type::MAP) {
589 }
else if (o.type == msgpack::type::ARRAY) {
590 auto array = o.via.array;
611 std::string name =
"AES128Encrypt";
612 if (o.type == msgpack::type::MAP) {
618 }
else if (o.type == msgpack::type::ARRAY) {
619 auto array = o.via.array;
638 std::string name =
"Blake2s";
639 if (o.type == msgpack::type::MAP) {
643 }
else if (o.type == msgpack::type::ARRAY) {
644 auto array = o.via.array;
661 std::string name =
"Blake3";
662 if (o.type == msgpack::type::MAP) {
666 }
else if (o.type == msgpack::type::ARRAY) {
667 auto array = o.via.array;
684 std::string name =
"Keccakf1600";
685 if (o.type == msgpack::type::MAP) {
689 }
else if (o.type == msgpack::type::ARRAY) {
690 auto array = o.via.array;
710 std::string name =
"EcdsaSecp256k1";
711 if (o.type == msgpack::type::MAP) {
718 }
else if (o.type == msgpack::type::ARRAY) {
719 auto array = o.via.array;
742 std::string name =
"EcdsaSecp256r1";
743 if (o.type == msgpack::type::MAP) {
750 }
else if (o.type == msgpack::type::ARRAY) {
751 auto array = o.via.array;
772 std::string name =
"MultiScalarMul";
773 if (o.type == msgpack::type::MAP) {
778 }
else if (o.type == msgpack::type::ARRAY) {
779 auto array = o.via.array;
802 std::string name =
"EmbeddedCurveAdd";
803 if (o.type == msgpack::type::MAP) {
812 }
else if (o.type == msgpack::type::ARRAY) {
813 auto array = o.via.array;
835 std::string name =
"Poseidon2Permutation";
836 if (o.type == msgpack::type::MAP) {
840 }
else if (o.type == msgpack::type::ARRAY) {
841 auto array = o.via.array;
859 std::string name =
"Sha256Compression";
860 if (o.type == msgpack::type::MAP) {
865 }
else if (o.type == msgpack::type::ARRAY) {
866 auto array = o.via.array;
887 std::string name =
"ToRadix";
888 if (o.type == msgpack::type::MAP) {
895 }
else if (o.type == msgpack::type::ARRAY) {
896 auto array = o.via.array;
916 Poseidon2Permutation,
926 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
930 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
935 if (o.type == msgpack::type::object_type::MAP) {
936 o.via.map.ptr[0].key.convert(
tag);
940 }
catch (
const msgpack::type_error&) {
942 throw_or_abort(
"error converting tag to string for enum 'BlackBoxOp'");
944 if (
tag ==
"AES128Encrypt") {
947 o.via.map.ptr[0].val.convert(v);
948 }
catch (
const msgpack::type_error&) {
950 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::AES128Encrypt'");
954 }
else if (
tag ==
"Blake2s") {
957 o.via.map.ptr[0].val.convert(v);
958 }
catch (
const msgpack::type_error&) {
960 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Blake2s'");
964 }
else if (
tag ==
"Blake3") {
967 o.via.map.ptr[0].val.convert(v);
968 }
catch (
const msgpack::type_error&) {
970 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Blake3'");
974 }
else if (
tag ==
"Keccakf1600") {
977 o.via.map.ptr[0].val.convert(v);
978 }
catch (
const msgpack::type_error&) {
980 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Keccakf1600'");
984 }
else if (
tag ==
"EcdsaSecp256k1") {
987 o.via.map.ptr[0].val.convert(v);
988 }
catch (
const msgpack::type_error&) {
990 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EcdsaSecp256k1'");
994 }
else if (
tag ==
"EcdsaSecp256r1") {
997 o.via.map.ptr[0].val.convert(v);
998 }
catch (
const msgpack::type_error&) {
1000 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EcdsaSecp256r1'");
1004 }
else if (
tag ==
"MultiScalarMul") {
1007 o.via.map.ptr[0].val.convert(v);
1008 }
catch (
const msgpack::type_error&) {
1010 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::MultiScalarMul'");
1014 }
else if (
tag ==
"EmbeddedCurveAdd") {
1017 o.via.map.ptr[0].val.convert(v);
1018 }
catch (
const msgpack::type_error&) {
1020 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::EmbeddedCurveAdd'");
1024 }
else if (
tag ==
"Poseidon2Permutation") {
1027 o.via.map.ptr[0].val.convert(v);
1028 }
catch (
const msgpack::type_error&) {
1030 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Poseidon2Permutation'");
1034 }
else if (
tag ==
"Sha256Compression") {
1037 o.via.map.ptr[0].val.convert(v);
1038 }
catch (
const msgpack::type_error&) {
1040 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::Sha256Compression'");
1044 }
else if (
tag ==
"ToRadix") {
1047 o.via.map.ptr[0].val.convert(v);
1048 }
catch (
const msgpack::type_error&) {
1050 throw_or_abort(
"error converting into enum variant 'BlackBoxOp::ToRadix'");
1070 }
catch (
const msgpack::type_error&) {
1072 throw_or_abort(
"error converting into newtype 'SemanticLength'");
1077struct HeapValueType;
1090 }
catch (
const msgpack::type_error&) {
1105 std::string name =
"Array";
1106 if (o.type == msgpack::type::MAP) {
1110 }
else if (o.type == msgpack::type::ARRAY) {
1111 auto array = o.via.array;
1127 std::string name =
"Vector";
1128 if (o.type == msgpack::type::MAP) {
1131 }
else if (o.type == msgpack::type::ARRAY) {
1132 auto array = o.via.array;
1147 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
1151 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
1156 if (o.type == msgpack::type::object_type::MAP) {
1157 o.via.map.ptr[0].key.convert(
tag);
1161 }
catch (
const msgpack::type_error&) {
1163 throw_or_abort(
"error converting tag to string for enum 'HeapValueType'");
1165 if (
tag ==
"Simple") {
1168 o.via.map.ptr[0].val.convert(v);
1169 }
catch (
const msgpack::type_error&) {
1171 throw_or_abort(
"error converting into enum variant 'HeapValueType::Simple'");
1175 }
else if (
tag ==
"Array") {
1178 o.via.map.ptr[0].val.convert(v);
1179 }
catch (
const msgpack::type_error&) {
1181 throw_or_abort(
"error converting into enum variant 'HeapValueType::Array'");
1185 }
else if (
tag ==
"Vector") {
1188 o.via.map.ptr[0].val.convert(v);
1189 }
catch (
const msgpack::type_error&) {
1191 throw_or_abort(
"error converting into enum variant 'HeapValueType::Vector'");
1210 std::string name =
"HeapVector";
1211 if (o.type == msgpack::type::MAP) {
1215 }
else if (o.type == msgpack::type::ARRAY) {
1216 auto array = o.via.array;
1236 }
catch (
const msgpack::type_error&) {
1252 }
catch (
const msgpack::type_error&) {
1268 }
catch (
const msgpack::type_error&) {
1282 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
1286 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
1291 if (o.type == msgpack::type::object_type::MAP) {
1292 o.via.map.ptr[0].key.convert(
tag);
1296 }
catch (
const msgpack::type_error&) {
1298 throw_or_abort(
"error converting tag to string for enum 'ValueOrArray'");
1300 if (
tag ==
"MemoryAddress") {
1303 o.via.map.ptr[0].val.convert(v);
1304 }
catch (
const msgpack::type_error&) {
1306 throw_or_abort(
"error converting into enum variant 'ValueOrArray::MemoryAddress'");
1310 }
else if (
tag ==
"HeapArray") {
1313 o.via.map.ptr[0].val.convert(v);
1314 }
catch (
const msgpack::type_error&) {
1316 throw_or_abort(
"error converting into enum variant 'ValueOrArray::HeapArray'");
1320 }
else if (
tag ==
"HeapVector") {
1323 o.via.map.ptr[0].val.convert(v);
1324 }
catch (
const msgpack::type_error&) {
1326 throw_or_abort(
"error converting into enum variant 'ValueOrArray::HeapVector'");
1349 std::string name =
"BinaryFieldOp";
1350 if (o.type == msgpack::type::MAP) {
1356 }
else if (o.type == msgpack::type::ARRAY) {
1357 auto array = o.via.array;
1379 std::string name =
"BinaryIntOp";
1380 if (o.type == msgpack::type::MAP) {
1387 }
else if (o.type == msgpack::type::ARRAY) {
1388 auto array = o.via.array;
1409 std::string name =
"Not";
1410 if (o.type == msgpack::type::MAP) {
1415 }
else if (o.type == msgpack::type::ARRAY) {
1416 auto array = o.via.array;
1435 std::string name =
"Cast";
1436 if (o.type == msgpack::type::MAP) {
1441 }
else if (o.type == msgpack::type::ARRAY) {
1442 auto array = o.via.array;
1460 std::string name =
"JumpIf";
1461 if (o.type == msgpack::type::MAP) {
1465 }
else if (o.type == msgpack::type::ARRAY) {
1466 auto array = o.via.array;
1482 std::string name =
"Jump";
1483 if (o.type == msgpack::type::MAP) {
1486 }
else if (o.type == msgpack::type::ARRAY) {
1487 auto array = o.via.array;
1504 std::string name =
"CalldataCopy";
1505 if (o.type == msgpack::type::MAP) {
1510 }
else if (o.type == msgpack::type::ARRAY) {
1511 auto array = o.via.array;
1528 std::string name =
"Call";
1529 if (o.type == msgpack::type::MAP) {
1532 }
else if (o.type == msgpack::type::ARRAY) {
1533 auto array = o.via.array;
1550 std::string name =
"Const";
1551 if (o.type == msgpack::type::MAP) {
1556 }
else if (o.type == msgpack::type::ARRAY) {
1557 auto array = o.via.array;
1576 std::string name =
"IndirectConst";
1577 if (o.type == msgpack::type::MAP) {
1582 }
else if (o.type == msgpack::type::ARRAY) {
1583 auto array = o.via.array;
1610 std::string name =
"ForeignCall";
1611 if (o.type == msgpack::type::MAP) {
1618 }
else if (o.type == msgpack::type::ARRAY) {
1619 auto array = o.via.array;
1639 std::string name =
"Mov";
1640 if (o.type == msgpack::type::MAP) {
1644 }
else if (o.type == msgpack::type::ARRAY) {
1645 auto array = o.via.array;
1664 std::string name =
"ConditionalMov";
1665 if (o.type == msgpack::type::MAP) {
1671 }
else if (o.type == msgpack::type::ARRAY) {
1672 auto array = o.via.array;
1691 std::string name =
"Load";
1692 if (o.type == msgpack::type::MAP) {
1696 }
else if (o.type == msgpack::type::ARRAY) {
1697 auto array = o.via.array;
1714 std::string name =
"Store";
1715 if (o.type == msgpack::type::MAP) {
1719 }
else if (o.type == msgpack::type::ARRAY) {
1720 auto array = o.via.array;
1738 }
catch (
const msgpack::type_error&) {
1752 std::string name =
"Trap";
1753 if (o.type == msgpack::type::MAP) {
1756 }
else if (o.type == msgpack::type::ARRAY) {
1757 auto array = o.via.array;
1772 std::string name =
"Stop";
1773 if (o.type == msgpack::type::MAP) {
1776 }
else if (o.type == msgpack::type::ARRAY) {
1777 auto array = o.via.array;
1811 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
1815 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
1820 if (o.type == msgpack::type::object_type::MAP) {
1821 o.via.map.ptr[0].key.convert(
tag);
1825 }
catch (
const msgpack::type_error&) {
1827 throw_or_abort(
"error converting tag to string for enum 'BrilligOpcode'");
1829 if (
tag ==
"BinaryFieldOp") {
1832 o.via.map.ptr[0].val.convert(v);
1833 }
catch (
const msgpack::type_error&) {
1835 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BinaryFieldOp'");
1839 }
else if (
tag ==
"BinaryIntOp") {
1842 o.via.map.ptr[0].val.convert(v);
1843 }
catch (
const msgpack::type_error&) {
1845 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BinaryIntOp'");
1849 }
else if (
tag ==
"Not") {
1852 o.via.map.ptr[0].val.convert(v);
1853 }
catch (
const msgpack::type_error&) {
1855 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Not'");
1859 }
else if (
tag ==
"Cast") {
1862 o.via.map.ptr[0].val.convert(v);
1863 }
catch (
const msgpack::type_error&) {
1865 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Cast'");
1869 }
else if (
tag ==
"JumpIf") {
1872 o.via.map.ptr[0].val.convert(v);
1873 }
catch (
const msgpack::type_error&) {
1875 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::JumpIf'");
1879 }
else if (
tag ==
"Jump") {
1882 o.via.map.ptr[0].val.convert(v);
1883 }
catch (
const msgpack::type_error&) {
1885 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Jump'");
1889 }
else if (
tag ==
"CalldataCopy") {
1892 o.via.map.ptr[0].val.convert(v);
1893 }
catch (
const msgpack::type_error&) {
1895 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::CalldataCopy'");
1899 }
else if (
tag ==
"Call") {
1902 o.via.map.ptr[0].val.convert(v);
1903 }
catch (
const msgpack::type_error&) {
1905 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Call'");
1909 }
else if (
tag ==
"Const") {
1912 o.via.map.ptr[0].val.convert(v);
1913 }
catch (
const msgpack::type_error&) {
1915 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Const'");
1919 }
else if (
tag ==
"IndirectConst") {
1922 o.via.map.ptr[0].val.convert(v);
1923 }
catch (
const msgpack::type_error&) {
1925 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::IndirectConst'");
1929 }
else if (
tag ==
"Return") {
1932 }
else if (
tag ==
"ForeignCall") {
1935 o.via.map.ptr[0].val.convert(v);
1936 }
catch (
const msgpack::type_error&) {
1938 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::ForeignCall'");
1942 }
else if (
tag ==
"Mov") {
1945 o.via.map.ptr[0].val.convert(v);
1946 }
catch (
const msgpack::type_error&) {
1948 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Mov'");
1952 }
else if (
tag ==
"ConditionalMov") {
1955 o.via.map.ptr[0].val.convert(v);
1956 }
catch (
const msgpack::type_error&) {
1958 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::ConditionalMov'");
1962 }
else if (
tag ==
"Load") {
1965 o.via.map.ptr[0].val.convert(v);
1966 }
catch (
const msgpack::type_error&) {
1968 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Load'");
1972 }
else if (
tag ==
"Store") {
1975 o.via.map.ptr[0].val.convert(v);
1976 }
catch (
const msgpack::type_error&) {
1978 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Store'");
1982 }
else if (
tag ==
"BlackBox") {
1985 o.via.map.ptr[0].val.convert(v);
1986 }
catch (
const msgpack::type_error&) {
1988 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::BlackBox'");
1992 }
else if (
tag ==
"Trap") {
1995 o.via.map.ptr[0].val.convert(v);
1996 }
catch (
const msgpack::type_error&) {
1998 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Trap'");
2002 }
else if (
tag ==
"Stop") {
2005 o.via.map.ptr[0].val.convert(v);
2006 }
catch (
const msgpack::type_error&) {
2008 throw_or_abort(
"error converting into enum variant 'BrilligOpcode::Stop'");
2028 }
catch (
const msgpack::type_error&) {
2046 }
catch (
const msgpack::type_error&) {
2062 }
catch (
const msgpack::type_error&) {
2076 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
2080 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
2085 if (o.type == msgpack::type::object_type::MAP) {
2086 o.via.map.ptr[0].key.convert(
tag);
2090 }
catch (
const msgpack::type_error&) {
2092 throw_or_abort(
"error converting tag to string for enum 'FunctionInput'");
2094 if (
tag ==
"Constant") {
2097 o.via.map.ptr[0].val.convert(v);
2098 }
catch (
const msgpack::type_error&) {
2100 throw_or_abort(
"error converting into enum variant 'FunctionInput::Constant'");
2104 }
else if (
tag ==
"Witness") {
2107 o.via.map.ptr[0].val.convert(v);
2108 }
catch (
const msgpack::type_error&) {
2110 throw_or_abort(
"error converting into enum variant 'FunctionInput::Witness'");
2133 std::string name =
"AES128Encrypt";
2134 if (o.type == msgpack::type::MAP) {
2140 }
else if (o.type == msgpack::type::ARRAY) {
2141 auto array = o.via.array;
2162 std::string name =
"AND";
2163 if (o.type == msgpack::type::MAP) {
2169 }
else if (o.type == msgpack::type::ARRAY) {
2170 auto array = o.via.array;
2191 std::string name =
"XOR";
2192 if (o.type == msgpack::type::MAP) {
2198 }
else if (o.type == msgpack::type::ARRAY) {
2199 auto array = o.via.array;
2218 std::string name =
"RANGE";
2219 if (o.type == msgpack::type::MAP) {
2223 }
else if (o.type == msgpack::type::ARRAY) {
2224 auto array = o.via.array;
2241 std::string name =
"Blake2s";
2242 if (o.type == msgpack::type::MAP) {
2246 }
else if (o.type == msgpack::type::ARRAY) {
2247 auto array = o.via.array;
2264 std::string name =
"Blake3";
2265 if (o.type == msgpack::type::MAP) {
2269 }
else if (o.type == msgpack::type::ARRAY) {
2270 auto array = o.via.array;
2291 std::string name =
"EcdsaSecp256k1";
2292 if (o.type == msgpack::type::MAP) {
2300 }
else if (o.type == msgpack::type::ARRAY) {
2301 auto array = o.via.array;
2326 std::string name =
"EcdsaSecp256r1";
2327 if (o.type == msgpack::type::MAP) {
2335 }
else if (o.type == msgpack::type::ARRAY) {
2336 auto array = o.via.array;
2359 std::string name =
"MultiScalarMul";
2360 if (o.type == msgpack::type::MAP) {
2366 }
else if (o.type == msgpack::type::ARRAY) {
2367 auto array = o.via.array;
2388 std::string name =
"EmbeddedCurveAdd";
2389 if (o.type == msgpack::type::MAP) {
2395 }
else if (o.type == msgpack::type::ARRAY) {
2396 auto array = o.via.array;
2415 std::string name =
"Keccakf1600";
2416 if (o.type == msgpack::type::MAP) {
2420 }
else if (o.type == msgpack::type::ARRAY) {
2421 auto array = o.via.array;
2442 std::string name =
"RecursiveAggregation";
2443 if (o.type == msgpack::type::MAP) {
2451 }
else if (o.type == msgpack::type::ARRAY) {
2452 auto array = o.via.array;
2473 std::string name =
"Poseidon2Permutation";
2474 if (o.type == msgpack::type::MAP) {
2478 }
else if (o.type == msgpack::type::ARRAY) {
2479 auto array = o.via.array;
2497 std::string name =
"Sha256Compression";
2498 if (o.type == msgpack::type::MAP) {
2503 }
else if (o.type == msgpack::type::ARRAY) {
2504 auto array = o.via.array;
2525 RecursiveAggregation,
2526 Poseidon2Permutation,
2535 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
2539 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
2544 if (o.type == msgpack::type::object_type::MAP) {
2545 o.via.map.ptr[0].key.convert(
tag);
2549 }
catch (
const msgpack::type_error&) {
2551 throw_or_abort(
"error converting tag to string for enum 'BlackBoxFuncCall'");
2553 if (
tag ==
"AES128Encrypt") {
2556 o.via.map.ptr[0].val.convert(v);
2557 }
catch (
const msgpack::type_error&) {
2559 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::AES128Encrypt'");
2563 }
else if (
tag ==
"AND") {
2566 o.via.map.ptr[0].val.convert(v);
2567 }
catch (
const msgpack::type_error&) {
2569 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::AND'");
2573 }
else if (
tag ==
"XOR") {
2576 o.via.map.ptr[0].val.convert(v);
2577 }
catch (
const msgpack::type_error&) {
2579 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::XOR'");
2583 }
else if (
tag ==
"RANGE") {
2586 o.via.map.ptr[0].val.convert(v);
2587 }
catch (
const msgpack::type_error&) {
2589 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::RANGE'");
2593 }
else if (
tag ==
"Blake2s") {
2596 o.via.map.ptr[0].val.convert(v);
2597 }
catch (
const msgpack::type_error&) {
2599 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Blake2s'");
2603 }
else if (
tag ==
"Blake3") {
2606 o.via.map.ptr[0].val.convert(v);
2607 }
catch (
const msgpack::type_error&) {
2609 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Blake3'");
2613 }
else if (
tag ==
"EcdsaSecp256k1") {
2616 o.via.map.ptr[0].val.convert(v);
2617 }
catch (
const msgpack::type_error&) {
2619 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EcdsaSecp256k1'");
2623 }
else if (
tag ==
"EcdsaSecp256r1") {
2626 o.via.map.ptr[0].val.convert(v);
2627 }
catch (
const msgpack::type_error&) {
2629 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EcdsaSecp256r1'");
2633 }
else if (
tag ==
"MultiScalarMul") {
2636 o.via.map.ptr[0].val.convert(v);
2637 }
catch (
const msgpack::type_error&) {
2639 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::MultiScalarMul'");
2643 }
else if (
tag ==
"EmbeddedCurveAdd") {
2646 o.via.map.ptr[0].val.convert(v);
2647 }
catch (
const msgpack::type_error&) {
2649 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::EmbeddedCurveAdd'");
2653 }
else if (
tag ==
"Keccakf1600") {
2656 o.via.map.ptr[0].val.convert(v);
2657 }
catch (
const msgpack::type_error&) {
2659 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Keccakf1600'");
2663 }
else if (
tag ==
"RecursiveAggregation") {
2666 o.via.map.ptr[0].val.convert(v);
2667 }
catch (
const msgpack::type_error&) {
2669 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::RecursiveAggregation'");
2673 }
else if (
tag ==
"Poseidon2Permutation") {
2676 o.via.map.ptr[0].val.convert(v);
2677 }
catch (
const msgpack::type_error&) {
2679 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Poseidon2Permutation'");
2683 }
else if (
tag ==
"Sha256Compression") {
2686 o.via.map.ptr[0].val.convert(v);
2687 }
catch (
const msgpack::type_error&) {
2689 throw_or_abort(
"error converting into enum variant 'BlackBoxFuncCall::Sha256Compression'");
2709 }
catch (
const msgpack::type_error&) {
2733 }
catch (
const msgpack::type_error&) {
2753 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
2757 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
2762 if (o.type == msgpack::type::object_type::MAP) {
2763 o.via.map.ptr[0].key.convert(
tag);
2767 }
catch (
const msgpack::type_error&) {
2769 throw_or_abort(
"error converting tag to string for enum 'BlockType'");
2771 if (
tag ==
"Memory") {
2774 }
else if (
tag ==
"CallData") {
2777 o.via.map.ptr[0].val.convert(v);
2778 }
catch (
const msgpack::type_error&) {
2780 throw_or_abort(
"error converting into enum variant 'BlockType::CallData'");
2784 }
else if (
tag ==
"ReturnData") {
2803 std::string name =
"Expression";
2804 if (o.type == msgpack::type::MAP) {
2809 }
else if (o.type == msgpack::type::ARRAY) {
2810 auto array = o.via.array;
2831 }
catch (
const msgpack::type_error&) {
2847 }
catch (
const msgpack::type_error&) {
2863 }
catch (
const msgpack::type_error&) {
2877 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
2881 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
2886 if (o.type == msgpack::type::object_type::MAP) {
2887 o.via.map.ptr[0].key.convert(
tag);
2891 }
catch (
const msgpack::type_error&) {
2893 throw_or_abort(
"error converting tag to string for enum 'BrilligInputs'");
2895 if (
tag ==
"Single") {
2898 o.via.map.ptr[0].val.convert(v);
2899 }
catch (
const msgpack::type_error&) {
2901 throw_or_abort(
"error converting into enum variant 'BrilligInputs::Single'");
2905 }
else if (
tag ==
"Array") {
2908 o.via.map.ptr[0].val.convert(v);
2909 }
catch (
const msgpack::type_error&) {
2911 throw_or_abort(
"error converting into enum variant 'BrilligInputs::Array'");
2915 }
else if (
tag ==
"MemoryArray") {
2918 o.via.map.ptr[0].val.convert(v);
2919 }
catch (
const msgpack::type_error&) {
2921 throw_or_abort(
"error converting into enum variant 'BrilligInputs::MemoryArray'");
2943 }
catch (
const msgpack::type_error&) {
2959 }
catch (
const msgpack::type_error&) {
2973 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
2977 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
2982 if (o.type == msgpack::type::object_type::MAP) {
2983 o.via.map.ptr[0].key.convert(
tag);
2987 }
catch (
const msgpack::type_error&) {
2989 throw_or_abort(
"error converting tag to string for enum 'BrilligOutputs'");
2991 if (
tag ==
"Simple") {
2994 o.via.map.ptr[0].val.convert(v);
2995 }
catch (
const msgpack::type_error&) {
2997 throw_or_abort(
"error converting into enum variant 'BrilligOutputs::Simple'");
3001 }
else if (
tag ==
"Array") {
3004 o.via.map.ptr[0].val.convert(v);
3005 }
catch (
const msgpack::type_error&) {
3007 throw_or_abort(
"error converting into enum variant 'BrilligOutputs::Array'");
3027 std::string name =
"MemOp";
3028 if (o.type == msgpack::type::MAP) {
3033 }
else if (o.type == msgpack::type::ARRAY) {
3034 auto array = o.via.array;
3055 }
catch (
const msgpack::type_error&) {
3071 }
catch (
const msgpack::type_error&) {
3073 throw_or_abort(
"error converting into newtype 'BlackBoxFuncCall'");
3086 std::string name =
"MemoryOp";
3087 if (o.type == msgpack::type::MAP) {
3091 }
else if (o.type == msgpack::type::ARRAY) {
3092 auto array = o.via.array;
3110 std::string name =
"MemoryInit";
3111 if (o.type == msgpack::type::MAP) {
3116 }
else if (o.type == msgpack::type::ARRAY) {
3117 auto array = o.via.array;
3137 std::string name =
"BrilligCall";
3138 if (o.type == msgpack::type::MAP) {
3144 }
else if (o.type == msgpack::type::ARRAY) {
3145 auto array = o.via.array;
3166 std::string name =
"Call";
3167 if (o.type == msgpack::type::MAP) {
3173 }
else if (o.type == msgpack::type::ARRAY) {
3174 auto array = o.via.array;
3192 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
3196 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
3201 if (o.type == msgpack::type::object_type::MAP) {
3202 o.via.map.ptr[0].key.convert(
tag);
3206 }
catch (
const msgpack::type_error&) {
3208 throw_or_abort(
"error converting tag to string for enum 'Opcode'");
3210 if (
tag ==
"AssertZero") {
3213 o.via.map.ptr[0].val.convert(v);
3214 }
catch (
const msgpack::type_error&) {
3216 throw_or_abort(
"error converting into enum variant 'Opcode::AssertZero'");
3220 }
else if (
tag ==
"BlackBoxFuncCall") {
3223 o.via.map.ptr[0].val.convert(v);
3224 }
catch (
const msgpack::type_error&) {
3226 throw_or_abort(
"error converting into enum variant 'Opcode::BlackBoxFuncCall'");
3230 }
else if (
tag ==
"MemoryOp") {
3233 o.via.map.ptr[0].val.convert(v);
3234 }
catch (
const msgpack::type_error&) {
3236 throw_or_abort(
"error converting into enum variant 'Opcode::MemoryOp'");
3240 }
else if (
tag ==
"MemoryInit") {
3243 o.via.map.ptr[0].val.convert(v);
3244 }
catch (
const msgpack::type_error&) {
3246 throw_or_abort(
"error converting into enum variant 'Opcode::MemoryInit'");
3250 }
else if (
tag ==
"BrilligCall") {
3253 o.via.map.ptr[0].val.convert(v);
3254 }
catch (
const msgpack::type_error&) {
3256 throw_or_abort(
"error converting into enum variant 'Opcode::BrilligCall'");
3260 }
else if (
tag ==
"Call") {
3263 o.via.map.ptr[0].val.convert(v);
3264 }
catch (
const msgpack::type_error&) {
3266 throw_or_abort(
"error converting into enum variant 'Opcode::Call'");
3288 }
catch (
const msgpack::type_error&) {
3304 }
catch (
const msgpack::type_error&) {
3318 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
3322 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
3327 if (o.type == msgpack::type::object_type::MAP) {
3328 o.via.map.ptr[0].key.convert(
tag);
3332 }
catch (
const msgpack::type_error&) {
3334 throw_or_abort(
"error converting tag to string for enum 'ExpressionOrMemory'");
3336 if (
tag ==
"Expression") {
3339 o.via.map.ptr[0].val.convert(v);
3340 }
catch (
const msgpack::type_error&) {
3342 throw_or_abort(
"error converting into enum variant 'ExpressionOrMemory::Expression'");
3346 }
else if (
tag ==
"Memory") {
3349 o.via.map.ptr[0].val.convert(v);
3350 }
catch (
const msgpack::type_error&) {
3352 throw_or_abort(
"error converting into enum variant 'ExpressionOrMemory::Memory'");
3371 std::string name =
"AssertionPayload";
3372 if (o.type == msgpack::type::MAP) {
3376 }
else if (o.type == msgpack::type::ARRAY) {
3377 auto array = o.via.array;
3397 }
catch (
const msgpack::type_error&) {
3412 std::string name =
"Brillig";
3413 if (o.type == msgpack::type::MAP) {
3417 }
else if (o.type == msgpack::type::ARRAY) {
3418 auto array = o.via.array;
3434 if (o.type != msgpack::type::object_type::MAP && o.type != msgpack::type::object_type::STR) {
3438 if (o.type == msgpack::type::object_type::MAP && o.via.map.size != 1) {
3443 if (o.type == msgpack::type::object_type::MAP) {
3444 o.via.map.ptr[0].key.convert(
tag);
3448 }
catch (
const msgpack::type_error&) {
3450 throw_or_abort(
"error converting tag to string for enum 'OpcodeLocation'");
3452 if (
tag ==
"Acir") {
3455 o.via.map.ptr[0].val.convert(v);
3456 }
catch (
const msgpack::type_error&) {
3458 throw_or_abort(
"error converting into enum variant 'OpcodeLocation::Acir'");
3462 }
else if (
tag ==
"Brillig") {
3465 o.via.map.ptr[0].val.convert(v);
3466 }
catch (
const msgpack::type_error&) {
3468 throw_or_abort(
"error converting into enum variant 'OpcodeLocation::Brillig'");
3488 }
catch (
const msgpack::type_error&) {
3508 std::string name =
"Circuit";
3509 if (o.type == msgpack::type::MAP) {
3518 }
else if (o.type == msgpack::type::ARRAY) {
3519 auto array = o.via.array;
3541 std::string name =
"BrilligBytecode";
3542 if (o.type == msgpack::type::MAP) {
3546 }
else if (o.type == msgpack::type::ARRAY) {
3547 auto array = o.via.array;
3564 std::string name =
"Program";
3565 if (o.type == msgpack::type::MAP) {
3569 }
else if (o.type == msgpack::type::ARRAY) {
3570 auto array = o.via.array;
3587 std::string name =
"ProgramWithoutBrillig";
3588 if (o.type == msgpack::type::MAP) {
3591 }
else if (o.type == msgpack::type::ARRAY) {
3592 auto array = o.via.array;
3618template <
typename Serializer>
3621 serializer.increase_container_depth();
3624 serializer.decrease_container_depth();
3628template <
typename Deserializer>
3631 deserializer.increase_container_depth();
3635 deserializer.decrease_container_depth();
3652template <
typename Serializer>
3655 serializer.increase_container_depth();
3657 serializer.decrease_container_depth();
3661template <
typename Deserializer>
3664 deserializer.increase_container_depth();
3667 deserializer.decrease_container_depth();
3681template <
typename Serializer>
3683 Serializer& serializer)
3687template <
typename Deserializer>
3704template <
typename Serializer>
3706 Serializer& serializer)
3710template <
typename Deserializer>
3727template <
typename Serializer>
3729 Serializer& serializer)
3733template <
typename Deserializer>
3750template <
typename Serializer>
3752 Serializer& serializer)
3756template <
typename Deserializer>
3773template <
typename Serializer>
3775 Serializer& serializer)
3779template <
typename Deserializer>
3781 Deserializer& deserializer)
3797template <
typename Serializer>
3799 Serializer& serializer)
3803template <
typename Deserializer>
3820template <
typename Serializer>
3822 Serializer& serializer)
3826template <
typename Deserializer>
3828 Deserializer& deserializer)
3844template <
typename Serializer>
3846 Serializer& serializer)
3850template <
typename Deserializer>
3852 Deserializer& deserializer)
3871template <
typename Serializer>
3874 serializer.increase_container_depth();
3876 serializer.decrease_container_depth();
3880template <
typename Deserializer>
3883 deserializer.increase_container_depth();
3886 deserializer.decrease_container_depth();
3900template <
typename Serializer>
3905template <
typename Deserializer>
3922template <
typename Serializer>
3927template <
typename Deserializer>
3944template <
typename Serializer>
3949template <
typename Deserializer>
3966template <
typename Serializer>
3971template <
typename Deserializer>
3988template <
typename Serializer>
3990 Serializer& serializer)
3994template <
typename Deserializer>
4011template <
typename Serializer>
4013 Serializer& serializer)
4017template <
typename Deserializer>
4034template <
typename Serializer>
4036 Serializer& serializer)
4040template <
typename Deserializer>
4042 Deserializer& deserializer)
4058template <
typename Serializer>
4063template <
typename Deserializer>
4080template <
typename Serializer>
4085template <
typename Deserializer>
4102template <
typename Serializer>
4107template <
typename Deserializer>
4124template <
typename Serializer>
4129template <
typename Deserializer>
4146template <
typename Serializer>
4151template <
typename Deserializer>
4171template <
typename Serializer>
4174 serializer.increase_container_depth();
4176 serializer.decrease_container_depth();
4180template <
typename Deserializer>
4183 deserializer.increase_container_depth();
4186 deserializer.decrease_container_depth();
4200template <
typename Serializer>
4205template <
typename Deserializer>
4225template <
typename Serializer>
4232template <
typename Deserializer>
4253template <
typename Serializer>
4256 serializer.increase_container_depth();
4258 serializer.decrease_container_depth();
4262template <
typename Deserializer>
4265 deserializer.increase_container_depth();
4268 deserializer.decrease_container_depth();
4279 if (!(lhs.
iv == rhs.
iv)) {
4282 if (!(lhs.
key == rhs.
key)) {
4294template <
typename Serializer>
4305template <
typename Deserializer>
4307 Deserializer& deserializer)
4321 if (!(lhs.
lhs == rhs.
lhs)) {
4324 if (!(lhs.
rhs == rhs.
rhs)) {
4339template <
typename Serializer>
4341 Serializer& serializer)
4350template <
typename Deserializer>
4365 if (!(lhs.
lhs == rhs.
lhs)) {
4368 if (!(lhs.
rhs == rhs.
rhs)) {
4383template <
typename Serializer>
4385 Serializer& serializer)
4394template <
typename Deserializer>
4421template <
typename Serializer>
4423 Serializer& serializer)
4430template <
typename Deserializer>
4432 Deserializer& deserializer)
4456template <
typename Serializer>
4458 Serializer& serializer)
4465template <
typename Deserializer>
4467 Deserializer& deserializer)
4491template <
typename Serializer>
4493 Serializer& serializer)
4500template <
typename Deserializer>
4502 Deserializer& deserializer)
4538template <
typename Serializer>
4551template <
typename Deserializer>
4553 Deserializer& deserializer)
4593template <
typename Serializer>
4606template <
typename Deserializer>
4608 Deserializer& deserializer)
4642template <
typename Serializer>
4653template <
typename Deserializer>
4655 Deserializer& deserializer)
4687template <
typename Serializer>
4698template <
typename Deserializer>
4700 Deserializer& deserializer)
4726template <
typename Serializer>
4728 Serializer& serializer)
4735template <
typename Deserializer>
4737 Deserializer& deserializer)
4774template <
typename Serializer>
4787template <
typename Deserializer>
4818template <
typename Serializer>
4827template <
typename Deserializer>
4856template <
typename Serializer>
4866template <
typename Deserializer>
4868 Deserializer& deserializer)
4890template <
typename Serializer>
4893 serializer.increase_container_depth();
4895 serializer.decrease_container_depth();
4899template <
typename Deserializer>
4902 deserializer.increase_container_depth();
4905 deserializer.decrease_container_depth();
4916 if (!(lhs.
iv == rhs.
iv)) {
4919 if (!(lhs.
key == rhs.
key)) {
4931template <
typename Serializer>
4933 Serializer& serializer)
4942template <
typename Deserializer>
4944 Deserializer& deserializer)
4970template <
typename Serializer>
4972 Serializer& serializer)
4979template <
typename Deserializer>
5004template <
typename Serializer>
5006 Serializer& serializer)
5013template <
typename Deserializer>
5038template <
typename Serializer>
5040 Serializer& serializer)
5047template <
typename Deserializer>
5049 Deserializer& deserializer)
5082template <
typename Serializer>
5084 Serializer& serializer)
5094template <
typename Deserializer>
5096 Deserializer& deserializer)
5132template <
typename Serializer>
5134 Serializer& serializer)
5144template <
typename Deserializer>
5146 Deserializer& deserializer)
5176template <
typename Serializer>
5178 Serializer& serializer)
5186template <
typename Deserializer>
5188 Deserializer& deserializer)
5228template <
typename Serializer>
5230 Serializer& serializer)
5242template <
typename Deserializer>
5244 Deserializer& deserializer)
5273template <
typename Serializer>
5282template <
typename Deserializer>
5284 Deserializer& deserializer)
5311template <
typename Serializer>
5313 Serializer& serializer)
5321template <
typename Deserializer>
5323 Deserializer& deserializer)
5357template <
typename Serializer>
5359 Serializer& serializer)
5369template <
typename Deserializer>
5394template <
typename Serializer>
5397 serializer.increase_container_depth();
5399 serializer.decrease_container_depth();
5403template <
typename Deserializer>
5406 deserializer.increase_container_depth();
5409 deserializer.decrease_container_depth();
5426template <
typename Serializer>
5429 serializer.increase_container_depth();
5431 serializer.decrease_container_depth();
5435template <
typename Deserializer>
5438 deserializer.increase_container_depth();
5441 deserializer.decrease_container_depth();
5455template <
typename Serializer>
5460template <
typename Deserializer>
5480template <
typename Serializer>
5482 Serializer& serializer)
5488template <
typename Deserializer>
5506template <
typename Serializer>
5508 Serializer& serializer)
5512template <
typename Deserializer>
5535template <
typename Serializer>
5538 serializer.increase_container_depth();
5541 serializer.decrease_container_depth();
5545template <
typename Deserializer>
5548 deserializer.increase_container_depth();
5552 deserializer.decrease_container_depth();
5569template <
typename Serializer>
5572 serializer.increase_container_depth();
5574 serializer.decrease_container_depth();
5578template <
typename Deserializer>
5581 deserializer.increase_container_depth();
5584 deserializer.decrease_container_depth();
5601template <
typename Serializer>
5603 Serializer& serializer)
5609template <
typename Deserializer>
5630template <
typename Serializer>
5632 Serializer& serializer)
5638template <
typename Deserializer>
5659template <
typename Serializer>
5661 Serializer& serializer)
5667template <
typename Deserializer>
5669 Deserializer& deserializer)
5689template <
typename Serializer>
5692 serializer.increase_container_depth();
5694 serializer.decrease_container_depth();
5698template <
typename Deserializer>
5701 deserializer.increase_container_depth();
5704 deserializer.decrease_container_depth();
5715 if (!(lhs.
op == rhs.
op)) {
5718 if (!(lhs.
lhs == rhs.
lhs)) {
5721 if (!(lhs.
rhs == rhs.
rhs)) {
5730template <
typename Serializer>
5732 Serializer& serializer)
5741template <
typename Deserializer>
5743 Deserializer& deserializer)
5760 if (!(lhs.
op == rhs.
op)) {
5766 if (!(lhs.
lhs == rhs.
lhs)) {
5769 if (!(lhs.
rhs == rhs.
rhs)) {
5778template <
typename Serializer>
5780 Serializer& serializer)
5790template <
typename Deserializer>
5792 Deserializer& deserializer)
5822template <
typename Serializer>
5824 Serializer& serializer)
5832template <
typename Deserializer>
5861template <
typename Serializer>
5863 Serializer& serializer)
5871template <
typename Deserializer>
5897template <
typename Serializer>
5899 Serializer& serializer)
5906template <
typename Deserializer>
5928template <
typename Serializer>
5930 Serializer& serializer)
5936template <
typename Deserializer>
5963template <
typename Serializer>
5965 Serializer& serializer)
5973template <
typename Deserializer>
5975 Deserializer& deserializer)
5997template <
typename Serializer>
5999 Serializer& serializer)
6005template <
typename Deserializer>
6032template <
typename Serializer>
6034 Serializer& serializer)
6042template <
typename Deserializer>
6071template <
typename Serializer>
6073 Serializer& serializer)
6081template <
typename Deserializer>
6083 Deserializer& deserializer)
6102template <
typename Serializer>
6104 Serializer& serializer)
6108template <
typename Deserializer>
6140template <
typename Serializer>
6142 Serializer& serializer)
6152template <
typename Deserializer>
6154 Deserializer& deserializer)
6182template <
typename Serializer>
6184 Serializer& serializer)
6191template <
typename Deserializer>
6222template <
typename Serializer>
6224 Serializer& serializer)
6233template <
typename Deserializer>
6235 Deserializer& deserializer)
6261template <
typename Serializer>
6263 Serializer& serializer)
6270template <
typename Deserializer>
6295template <
typename Serializer>
6297 Serializer& serializer)
6304template <
typename Deserializer>
6326template <
typename Serializer>
6328 Serializer& serializer)
6334template <
typename Deserializer>
6336 Deserializer& deserializer)
6356template <
typename Serializer>
6358 Serializer& serializer)
6364template <
typename Deserializer>
6385template <
typename Serializer>
6387 Serializer& serializer)
6393template <
typename Deserializer>
6414template <
typename Serializer>
6417 serializer.increase_container_depth();
6419 serializer.decrease_container_depth();
6423template <
typename Deserializer>
6426 deserializer.increase_container_depth();
6429 deserializer.decrease_container_depth();
6446template <
typename Serializer>
6448 Serializer& serializer)
6454template <
typename Deserializer>
6456 Deserializer& deserializer)
6476template <
typename Serializer>
6478 Serializer& serializer)
6484template <
typename Deserializer>
6523template <
typename Serializer>
6526 serializer.increase_container_depth();
6534 serializer.decrease_container_depth();
6538template <
typename Deserializer>
6541 deserializer.increase_container_depth();
6550 deserializer.decrease_container_depth();
6564 if (!(lhs.
q_c == rhs.
q_c)) {
6573template <
typename Serializer>
6576 serializer.increase_container_depth();
6580 serializer.decrease_container_depth();
6584template <
typename Deserializer>
6587 deserializer.increase_container_depth();
6592 deserializer.decrease_container_depth();
6609template <
typename Serializer>
6611 Serializer& serializer)
6613 serializer.increase_container_depth();
6615 serializer.decrease_container_depth();
6619template <
typename Deserializer>
6622 deserializer.increase_container_depth();
6625 deserializer.decrease_container_depth();
6642template <
typename Serializer>
6650template <
typename Deserializer>
6652 Deserializer& deserializer)
6672template <
typename Serializer>
6674 Serializer& serializer)
6680template <
typename Deserializer>
6682 Deserializer& deserializer)
6702template <
typename Serializer>
6705 serializer.increase_container_depth();
6707 serializer.decrease_container_depth();
6711template <
typename Deserializer>
6714 deserializer.increase_container_depth();
6717 deserializer.decrease_container_depth();
6734template <
typename Serializer>
6736 Serializer& serializer)
6742template <
typename Deserializer>
6744 Deserializer& deserializer)
6764template <
typename Serializer>
6766 Serializer& serializer)
6772template <
typename Deserializer>
6774 Deserializer& deserializer)
6797template <
typename Serializer>
6800 serializer.increase_container_depth();
6803 serializer.decrease_container_depth();
6807template <
typename Deserializer>
6810 deserializer.increase_container_depth();
6814 deserializer.decrease_container_depth();
6831template <
typename Serializer>
6834 serializer.increase_container_depth();
6836 serializer.decrease_container_depth();
6840template <
typename Deserializer>
6843 deserializer.increase_container_depth();
6846 deserializer.decrease_container_depth();
6863template <
typename Serializer>
6865 Serializer& serializer)
6871template <
typename Deserializer>
6895template <
typename Serializer>
6897 Serializer& serializer)
6904template <
typename Deserializer>
6926template <
typename Serializer>
6928 Serializer& serializer)
6934template <
typename Deserializer>
6958template <
typename Serializer>
6961 serializer.increase_container_depth();
6964 serializer.decrease_container_depth();
6968template <
typename Deserializer>
6971 deserializer.increase_container_depth();
6975 deserializer.decrease_container_depth();
6992template <
typename Serializer>
6995 serializer.increase_container_depth();
6997 serializer.decrease_container_depth();
7001template <
typename Deserializer>
7004 deserializer.increase_container_depth();
7007 deserializer.decrease_container_depth();
7021template <
typename Serializer>
7023 Serializer& serializer)
7027template <
typename Deserializer>
7044template <
typename Serializer>
7046 Serializer& serializer)
7050template <
typename Deserializer>
7067template <
typename Serializer>
7069 Serializer& serializer)
7073template <
typename Deserializer>
7090template <
typename Serializer>
7092 Serializer& serializer)
7096template <
typename Deserializer>
7113template <
typename Serializer>
7115 Serializer& serializer)
7119template <
typename Deserializer>
7136template <
typename Serializer>
7138 Serializer& serializer)
7142template <
typename Deserializer>
7168template <
typename Serializer>
7171 serializer.increase_container_depth();
7175 serializer.decrease_container_depth();
7179template <
typename Deserializer>
7182 deserializer.increase_container_depth();
7187 deserializer.decrease_container_depth();
7204template <
typename Serializer>
7207 serializer.increase_container_depth();
7209 serializer.decrease_container_depth();
7213template <
typename Deserializer>
7216 deserializer.increase_container_depth();
7219 deserializer.decrease_container_depth();
7236template <
typename Serializer>
7238 Serializer& serializer)
7244template <
typename Deserializer>
7265template <
typename Serializer>
7267 Serializer& serializer)
7273template <
typename Deserializer>
7275 Deserializer& deserializer)
7295template <
typename Serializer>
7298 serializer.increase_container_depth();
7300 serializer.decrease_container_depth();
7304template <
typename Deserializer>
7307 deserializer.increase_container_depth();
7310 deserializer.decrease_container_depth();
7327template <
typename Serializer>
7329 Serializer& serializer)
7335template <
typename Deserializer>
7356template <
typename Serializer>
7358 Serializer& serializer)
7364template <
typename Deserializer>
7366 Deserializer& deserializer)
7380 if (!(lhs.
op == rhs.
op)) {
7389template <
typename Serializer>
7397template <
typename Deserializer>
7425template <
typename Serializer>
7427 Serializer& serializer)
7435template <
typename Deserializer>
7449 if (!(lhs.
id == rhs.
id)) {
7467template <
typename Serializer>
7469 Serializer& serializer)
7478template <
typename Deserializer>
7493 if (!(lhs.
id == rhs.
id)) {
7511template <
typename Serializer>
7521template <
typename Deserializer>
7545template <
typename Serializer>
7548 serializer.increase_container_depth();
7550 serializer.decrease_container_depth();
7554template <
typename Deserializer>
7557 deserializer.increase_container_depth();
7560 deserializer.decrease_container_depth();
7577template <
typename Serializer>
7579 Serializer& serializer)
7585template <
typename Deserializer>
7609template <
typename Serializer>
7611 Serializer& serializer)
7618template <
typename Deserializer>
7620 Deserializer& deserializer)
7644template <
typename Serializer>
7647 serializer.increase_container_depth();
7650 serializer.decrease_container_depth();
7654template <
typename Deserializer>
7657 deserializer.increase_container_depth();
7662 deserializer.decrease_container_depth();
7682template <
typename Serializer>
7684 Serializer& serializer)
7686 serializer.increase_container_depth();
7689 serializer.decrease_container_depth();
7693template <
typename Deserializer>
7696 deserializer.increase_container_depth();
7701 deserializer.decrease_container_depth();
7718template <
typename Serializer>
7721 serializer.increase_container_depth();
7723 serializer.decrease_container_depth();
7727template <
typename Deserializer>
7730 deserializer.increase_container_depth();
7733 deserializer.decrease_container_depth();
7750template <
typename Serializer>
7753 serializer.increase_container_depth();
7755 serializer.decrease_container_depth();
7759template <
typename Deserializer>
7762 deserializer.increase_container_depth();
7765 deserializer.decrease_container_depth();
7782template <
typename Serializer>
7784 Serializer& serializer)
7786 serializer.increase_container_depth();
7788 serializer.decrease_container_depth();
7792template <
typename Deserializer>
7795 deserializer.increase_container_depth();
7798 deserializer.decrease_container_depth();
7815template <
typename Serializer>
7818 serializer.increase_container_depth();
7820 serializer.decrease_container_depth();
7824template <
typename Deserializer>
7827 deserializer.increase_container_depth();
7830 deserializer.decrease_container_depth();
7847template <
typename Serializer>
7849 Serializer& serializer)
7855template <
typename Deserializer>
7857 Deserializer& deserializer)
7877template <
typename Serializer>
7879 Serializer& serializer)
7885template <
typename Deserializer>
7887 Deserializer& deserializer)
7907template <
typename Serializer>
7909 Serializer& serializer)
7915template <
typename Deserializer>
7917 Deserializer& deserializer)
7937template <
typename Serializer>
7940 serializer.increase_container_depth();
7942 serializer.decrease_container_depth();
7946template <
typename Deserializer>
7949 deserializer.increase_container_depth();
7952 deserializer.decrease_container_depth();
Serves as a key-value node store for merkle trees. Caches all changes in memory before persisting the...
bool operator==(const AssertionPayload &lhs, const AssertionPayload &rhs)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
std::string to_string(bb::avm2::ValueTag tag)
std::vector< Acir::ExpressionOrMemory > payload
friend bool operator==(const AssertionPayload &, const AssertionPayload &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Add &, const Add &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Div &, const Div &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Equals &, const Equals &)
friend bool operator==(const IntegerDiv &, const IntegerDiv &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const LessThanEquals &, const LessThanEquals &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const LessThan &, const LessThan &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Mul &, const Mul &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Sub &, const Sub &)
std::variant< Add, Sub, Mul, Div, IntegerDiv, Equals, LessThan, LessThanEquals > value
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const BinaryFieldOp &, const BinaryFieldOp &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Add &, const Add &)
friend bool operator==(const And &, const And &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Div &, const Div &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Equals &, const Equals &)
friend bool operator==(const LessThanEquals &, const LessThanEquals &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const LessThan &, const LessThan &)
friend bool operator==(const Mul &, const Mul &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Or &, const Or &)
friend bool operator==(const Shl &, const Shl &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Shr &, const Shr &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Sub &, const Sub &)
friend bool operator==(const Xor &, const Xor &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
std::variant< Add, Sub, Mul, Div, Equals, LessThan, LessThanEquals, And, Or, Xor, Shl, Shr > value
friend bool operator==(const BinaryIntOp &, const BinaryIntOp &)
friend bool operator==(const Field &, const Field &)
void msgpack_unpack(msgpack::object const &o)
Acir::IntegerBitSize value
friend bool operator==(const Integer &, const Integer &)
void msgpack_unpack(msgpack::object const &o)
std::variant< Field, Integer > value
friend bool operator==(const BitSize &, const BitSize &)
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::FunctionInput, 16 > > key
std::vector< Acir::Witness > outputs
std::vector< Acir::FunctionInput > inputs
friend bool operator==(const AES128Encrypt &, const AES128Encrypt &)
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::FunctionInput, 16 > > iv
friend bool operator==(const AND &, const AND &)
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::Witness, 32 > > outputs
friend bool operator==(const Blake2s &, const Blake2s &)
std::vector< Acir::FunctionInput > inputs
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::Witness, 32 > > outputs
std::vector< Acir::FunctionInput > inputs
friend bool operator==(const Blake3 &, const Blake3 &)
std::shared_ptr< std::array< Acir::FunctionInput, 32 > > public_key_x
std::shared_ptr< std::array< Acir::FunctionInput, 32 > > hashed_message
friend bool operator==(const EcdsaSecp256k1 &, const EcdsaSecp256k1 &)
std::shared_ptr< std::array< Acir::FunctionInput, 32 > > public_key_y
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::FunctionInput, 64 > > signature
Acir::FunctionInput predicate
std::shared_ptr< std::array< Acir::FunctionInput, 32 > > public_key_x
friend bool operator==(const EcdsaSecp256r1 &, const EcdsaSecp256r1 &)
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::FunctionInput, 32 > > hashed_message
std::shared_ptr< std::array< Acir::FunctionInput, 32 > > public_key_y
std::shared_ptr< std::array< Acir::FunctionInput, 64 > > signature
Acir::FunctionInput predicate
std::shared_ptr< std::array< Acir::Witness, 3 > > outputs
friend bool operator==(const EmbeddedCurveAdd &, const EmbeddedCurveAdd &)
std::shared_ptr< std::array< Acir::FunctionInput, 3 > > input2
Acir::FunctionInput predicate
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::FunctionInput, 3 > > input1
std::shared_ptr< std::array< Acir::FunctionInput, 25 > > inputs
friend bool operator==(const Keccakf1600 &, const Keccakf1600 &)
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::Witness, 25 > > outputs
std::vector< Acir::FunctionInput > scalars
Acir::FunctionInput predicate
std::vector< Acir::FunctionInput > points
std::shared_ptr< std::array< Acir::Witness, 3 > > outputs
friend bool operator==(const MultiScalarMul &, const MultiScalarMul &)
void msgpack_unpack(msgpack::object const &o)
std::vector< Acir::Witness > outputs
std::vector< Acir::FunctionInput > inputs
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Poseidon2Permutation &, const Poseidon2Permutation &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const RANGE &, const RANGE &)
Acir::FunctionInput input
std::vector< Acir::FunctionInput > verification_key
std::vector< Acir::FunctionInput > proof
Acir::FunctionInput predicate
Acir::FunctionInput key_hash
std::vector< Acir::FunctionInput > public_inputs
friend bool operator==(const RecursiveAggregation &, const RecursiveAggregation &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
std::shared_ptr< std::array< Acir::FunctionInput, 8 > > hash_values
friend bool operator==(const Sha256Compression &, const Sha256Compression &)
std::shared_ptr< std::array< Acir::FunctionInput, 16 > > inputs
std::shared_ptr< std::array< Acir::Witness, 8 > > outputs
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const XOR &, const XOR &)
friend bool operator==(const BlackBoxFuncCall &, const BlackBoxFuncCall &)
void msgpack_unpack(msgpack::object const &o)
std::variant< AES128Encrypt, AND, XOR, RANGE, Blake2s, Blake3, EcdsaSecp256k1, EcdsaSecp256r1, MultiScalarMul, EmbeddedCurveAdd, Keccakf1600, RecursiveAggregation, Poseidon2Permutation, Sha256Compression > value
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const AES128Encrypt &, const AES128Encrypt &)
friend bool operator==(const Blake2s &, const Blake2s &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Blake3 &, const Blake3 &)
Acir::HeapArray hashed_msg
Acir::MemoryAddress result
void msgpack_unpack(msgpack::object const &o)
Acir::HeapArray public_key_y
Acir::HeapArray signature
friend bool operator==(const EcdsaSecp256k1 &, const EcdsaSecp256k1 &)
Acir::HeapArray public_key_x
Acir::MemoryAddress result
void msgpack_unpack(msgpack::object const &o)
Acir::HeapArray signature
friend bool operator==(const EcdsaSecp256r1 &, const EcdsaSecp256r1 &)
Acir::HeapArray public_key_y
Acir::HeapArray public_key_x
Acir::HeapArray hashed_msg
Acir::MemoryAddress input1_x
friend bool operator==(const EmbeddedCurveAdd &, const EmbeddedCurveAdd &)
Acir::MemoryAddress input2_infinite
Acir::MemoryAddress input1_y
Acir::MemoryAddress input1_infinite
Acir::MemoryAddress input2_x
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress input2_y
friend bool operator==(const Keccakf1600 &, const Keccakf1600 &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const MultiScalarMul &, const MultiScalarMul &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Poseidon2Permutation &, const Poseidon2Permutation &)
friend bool operator==(const Sha256Compression &, const Sha256Compression &)
void msgpack_unpack(msgpack::object const &o)
Acir::HeapArray hash_values
friend bool operator==(const ToRadix &, const ToRadix &)
Acir::MemoryAddress output_pointer
Acir::MemoryAddress radix
Acir::MemoryAddress output_bits
Acir::MemoryAddress input
Acir::MemoryAddress num_limbs
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const BlackBoxOp &, const BlackBoxOp &)
std::variant< AES128Encrypt, Blake2s, Blake3, Keccakf1600, EcdsaSecp256k1, EcdsaSecp256r1, MultiScalarMul, EmbeddedCurveAdd, Poseidon2Permutation, Sha256Compression, ToRadix > value
friend bool operator==(const BlockId &, const BlockId &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const CallData &, const CallData &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Memory &, const Memory &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const ReturnData &, const ReturnData &)
void msgpack_unpack(msgpack::object const &o)
std::variant< Memory, CallData, ReturnData > value
friend bool operator==(const BlockType &, const BlockType &)
friend bool operator==(const BrilligBytecode &, const BrilligBytecode &)
std::vector< Acir::BrilligOpcode > bytecode
std::string function_name
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const BinaryFieldOp &, const BinaryFieldOp &)
Acir::MemoryAddress destination
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress destination
friend bool operator==(const BinaryIntOp &, const BinaryIntOp &)
Acir::IntegerBitSize bit_size
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const BlackBox &, const BlackBox &)
friend bool operator==(const Call &, const Call &)
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress offset_address
friend bool operator==(const CalldataCopy &, const CalldataCopy &)
Acir::MemoryAddress destination_address
Acir::MemoryAddress size_address
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress source
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress destination
friend bool operator==(const Cast &, const Cast &)
Acir::MemoryAddress source_b
friend bool operator==(const ConditionalMov &, const ConditionalMov &)
Acir::MemoryAddress source_a
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress destination
Acir::MemoryAddress condition
friend bool operator==(const Const &, const Const &)
std::vector< uint8_t > value
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress destination
std::vector< Acir::HeapValueType > input_value_types
std::vector< Acir::HeapValueType > destination_value_types
std::vector< Acir::ValueOrArray > destinations
friend bool operator==(const ForeignCall &, const ForeignCall &)
void msgpack_unpack(msgpack::object const &o)
std::vector< Acir::ValueOrArray > inputs
std::vector< uint8_t > value
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const IndirectConst &, const IndirectConst &)
Acir::MemoryAddress destination_pointer
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Jump &, const Jump &)
Acir::MemoryAddress condition
friend bool operator==(const JumpIf &, const JumpIf &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress destination
Acir::MemoryAddress source_pointer
friend bool operator==(const Load &, const Load &)
Acir::MemoryAddress destination
friend bool operator==(const Mov &, const Mov &)
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress source
friend bool operator==(const Not &, const Not &)
Acir::MemoryAddress source
Acir::IntegerBitSize bit_size
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress destination
friend bool operator==(const Return &, const Return &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Stop &, const Stop &)
void msgpack_unpack(msgpack::object const &o)
Acir::HeapVector return_data
friend bool operator==(const Store &, const Store &)
void msgpack_unpack(msgpack::object const &o)
Acir::MemoryAddress source
Acir::MemoryAddress destination_pointer
friend bool operator==(const Trap &, const Trap &)
void msgpack_unpack(msgpack::object const &o)
Acir::HeapVector revert_data
std::variant< BinaryFieldOp, BinaryIntOp, Not, Cast, JumpIf, Jump, CalldataCopy, Call, Const, IndirectConst, Return, ForeignCall, Mov, ConditionalMov, Load, Store, BlackBox, Trap, Stop > value
friend bool operator==(const BrilligOpcode &, const BrilligOpcode &)
void msgpack_unpack(msgpack::object const &o)
std::vector< Acir::Witness > value
friend bool operator==(const Array &, const Array &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Simple &, const Simple &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const BrilligOutputs &, const BrilligOutputs &)
void msgpack_unpack(msgpack::object const &o)
std::variant< Simple, Array > value
Acir::PublicInputs return_values
std::vector< Acir::Opcode > opcodes
friend bool operator==(const Circuit &, const Circuit &)
std::optional< uint32_t > current_witness_index
void msgpack_unpack(msgpack::object const &o)
std::vector< Acir::Witness > private_parameters
Acir::PublicInputs public_parameters
std::string function_name
std::vector< std::tuple< Acir::OpcodeLocation, Acir::AssertionPayload > > assert_messages
std::vector< std::tuple< std::vector< uint8_t >, Acir::Witness > > linear_combinations
std::vector< uint8_t > q_c
std::vector< std::tuple< std::vector< uint8_t >, Acir::Witness, Acir::Witness > > mul_terms
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Expression &, const Expression &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Expression &, const Expression &)
friend bool operator==(const Memory &, const Memory &)
void msgpack_unpack(msgpack::object const &o)
std::variant< Expression, Memory > value
friend bool operator==(const ExpressionOrMemory &, const ExpressionOrMemory &)
void msgpack_unpack(msgpack::object const &o)
Acir::SemiFlattenedLength size
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const HeapArray &, const HeapArray &)
Acir::MemoryAddress pointer
Acir::SemanticLength size
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Array &, const Array &)
std::vector< Acir::HeapValueType > value_types
friend bool operator==(const Simple &, const Simple &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Vector &, const Vector &)
void msgpack_unpack(msgpack::object const &o)
std::vector< Acir::HeapValueType > value_types
friend bool operator==(const HeapValueType &, const HeapValueType &)
void msgpack_unpack(msgpack::object const &o)
std::variant< Simple, Array, Vector > value
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const HeapVector &, const HeapVector &)
Acir::MemoryAddress pointer
static void conv_fld_from_kvmap(std::map< std::string, msgpack::object const * > const &kvmap, std::string const &struct_name, std::string const &field_name, T &field, bool is_optional)
static std::map< std::string, msgpack::object const * > make_kvmap(msgpack::object const &o, std::string const &name)
static void conv_fld_from_array(msgpack::object_array const &array, std::string const &struct_name, std::string const &field_name, T &field, uint32_t index)
friend bool operator==(const U128 &, const U128 &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const U16 &, const U16 &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const U1 &, const U1 &)
friend bool operator==(const U32 &, const U32 &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const U64 &, const U64 &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const U8 &, const U8 &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const IntegerBitSize &, const IntegerBitSize &)
std::variant< U1, U8, U16, U32, U64, U128 > value
friend bool operator==(const MemOp &, const MemOp &)
void msgpack_unpack(msgpack::object const &o)
Acir::Expression operation
friend bool operator==(const Direct &, const Direct &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Relative &, const Relative &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const MemoryAddress &, const MemoryAddress &)
std::variant< Direct, Relative > value
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const AssertZero &, const AssertZero &)
void msgpack_unpack(msgpack::object const &o)
Acir::BlackBoxFuncCall value
friend bool operator==(const BlackBoxFuncCall &, const BlackBoxFuncCall &)
std::optional< Acir::Expression > predicate
friend bool operator==(const BrilligCall &, const BrilligCall &)
std::vector< Acir::BrilligInputs > inputs
std::vector< Acir::BrilligOutputs > outputs
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Call &, const Call &)
std::vector< Acir::Witness > outputs
std::optional< Acir::Expression > predicate
std::vector< Acir::Witness > inputs
std::vector< Acir::Witness > init
Acir::BlockType block_type
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const MemoryInit &, const MemoryInit &)
friend bool operator==(const MemoryOp &, const MemoryOp &)
void msgpack_unpack(msgpack::object const &o)
std::variant< AssertZero, BlackBoxFuncCall, MemoryOp, MemoryInit, BrilligCall, Call > value
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Opcode &, const Opcode &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Acir &, const Acir &)
friend bool operator==(const Brillig &, const Brillig &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const OpcodeLocation &, const OpcodeLocation &)
void msgpack_unpack(msgpack::object const &o)
std::variant< Acir, Brillig > value
std::vector< Acir::Circuit > functions
friend bool operator==(const Program &, const Program &)
std::vector< Acir::BrilligBytecode > unconstrained_functions
void msgpack_unpack(msgpack::object const &o)
std::vector< Acir::Circuit > functions
void msgpack_unpack(msgpack::object const &o)
std::monostate unconstrained_functions
friend bool operator==(const ProgramWithoutBrillig &, const ProgramWithoutBrillig &)
friend bool operator==(const SemanticLength &, const SemanticLength &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const SemiFlattenedLength &, const SemiFlattenedLength &)
friend bool operator==(const HeapArray &, const HeapArray &)
void msgpack_unpack(msgpack::object const &o)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const HeapVector &, const HeapVector &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const MemoryAddress &, const MemoryAddress &)
Acir::MemoryAddress value
void msgpack_unpack(msgpack::object const &o)
std::variant< MemoryAddress, HeapArray, HeapVector > value
friend bool operator==(const ValueOrArray &, const ValueOrArray &)
void msgpack_unpack(msgpack::object const &o)
friend bool operator==(const Witness &, const Witness &)
static T deserialize(Deserializer &deserializer)
static void serialize(const T &value, Serializer &serializer)
void throw_or_abort(std::string const &err)