16 fin.open(filename, std::ios::ate | std::ios::binary);
18 throw std::invalid_argument(
"file not found");
20 if (fin.tellg() == -1) {
21 throw std::invalid_argument(
"something went wrong");
24 uint64_t fsize =
static_cast<uint64_t
>(fin.tellg());
25 fin.seekg(0, std::ios_base::beg);
28 char* encoded_data =
new char[fsize];
30 msgpack::unpack(encoded_data, fsize).get().convert(cir);
44 msgpack::unpack(
buf.data(),
buf.size()).get().convert(cir);
63 info(
"variable_names = [");
64 for (uint32_t i = 0; i < static_cast<uint32_t>(cir.
variables.size()); i++) {
68 info(
"\"v", i,
"\",");
79 for (
size_t i = 0; i < cir.
selectors.size(); i++) {
CircuitSchema unpack_from_file(const std::string &filename)
Get the CircuitSchema object.
CircuitSchema unpack_from_buffer(const msgpack::sbuffer &buf)
Get the CircuitSchema object.
void print_schema_for_use_in_python(CircuitSchema &cir)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Serialized state of a circuit.
std::unordered_map< uint32_t, std::string > vars_of_interest
std::vector< uint32_t > public_inps
std::vector< bb::fr > variables
std::vector< std::vector< std::vector< bb::fr > > > selectors
std::vector< std::vector< std::vector< uint32_t > > > wires