LLZK 2.1.1
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
JSON.h File Reference
#include "ValueModel.h"
#include "WitnessSelection.h"
#include <llvm/Support/Error.h>
#include <llvm/Support/JSON.h>
Include dependency graph for JSON.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  llzk::witgen::JSONMismatch
 One structured JSON mismatch between expected and actual witgen output. More...

Namespaces

namespace  llzk
namespace  llzk::witgen

Enumerations

enum class  llzk::witgen::SerializationMode : std::uint8_t { llzk::witgen::PublicOutputsOnly , llzk::witgen::AllSignals }
 Select how struct values are filtered during JSON serialization. More...

Functions

llvm::Expected< WitnessValllzk::witgen::parseJSONValue (const llvm::json::Value *json, mlir::Type type, const llzk::Field &field, mlir::Operation *origin)
 Parse one JSON value into the tool's runtime representation.
llvm::Expected< llvm::json::Value > llzk::witgen::serializeJSONValue (const WitnessVal &value, mlir::Type type, mlir::SymbolTableCollection &tables, mlir::Operation *origin, SerializationMode mode=SerializationMode::PublicOutputsOnly)
 Serialize one runtime value into the user-facing JSON output format.
llvm::Expected< llvm::json::Object > llzk::witgen::buildInputsJSONObject (llvm::ArrayRef< InputBinding > bindings, llvm::ArrayRef< WitnessVal > values, mlir::SymbolTableCollection &tables, mlir::Operation *origin)
 Serialize named input values into a JSON object.
llvm::Expected< WitnessValllzk::witgen::extractValueAtPath (const WitnessVal &root, mlir::Type rootType, llvm::ArrayRef< std::string > path, mlir::SymbolTableCollection &tables, mlir::Operation *origin)
 Extract one nested runtime leaf by path.
void llzk::witgen::diffJSON (const llvm::json::Value &expected, const llvm::json::Value &actual, llvm::SmallVectorImpl< JSONMismatch > &out, llvm::StringRef path="$")
 Compare two JSON values structurally and append any mismatches to out.
void llzk::witgen::printJSONMismatches (llvm::raw_ostream &os, llvm::ArrayRef< JSONMismatch > mismatches)
 Render one human-readable mismatch report.