pub struct CircuitHeader<'a> {
pub _tab: Table<'a>,
}
Expand description
A description of a circuit or sub-circuit. This can be a complete circuit ready for proving, or a part of a circuit being built.
Fields§
§_tab: Table<'a>
Implementations§
Source§impl<'a> CircuitHeader<'a>
impl<'a> CircuitHeader<'a>
pub const VT_INSTANCE_VARIABLES: VOffsetT = 4i16
pub const VT_FREE_VARIABLE_ID: VOffsetT = 6i16
pub const VT_FIELD_MAXIMUM: VOffsetT = 8i16
pub const VT_CONFIGURATION: VOffsetT = 10i16
pub fn init_from_table(table: Table<'a>) -> Self
pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( _fbb: &'mut_bldr mut FlatBufferBuilder<'bldr>, args: &'args CircuitHeaderArgs<'args>, ) -> WIPOffset<CircuitHeader<'bldr>>
Sourcepub fn instance_variables(&self) -> Option<Variables<'a>>
pub fn instance_variables(&self) -> Option<Variables<'a>>
Instance variables. This is also called public inputs to the circuit.
- Variables are allocated by the sender of this message.
- The same structure must be provided for R1CS and witness generations.
- Values may be omitted in some contexts, such as in a preprocessing phase.
- During witness generation, variables must be assigned values.
- In the particular context of a gadget call,
instance_variables
holds the inputs to the gadget, i.e. variables allocated by the caller that the gadget can refer to. In the context of a gadget response, it holds the outputs of the gadget, i.e. variables allocated by the gadget that the caller can refer to.
Sourcepub fn free_variable_id(&self) -> u64
pub fn free_variable_id(&self) -> u64
A variable ID greater than all IDs allocated by the sender of this message. The recipient of this message can allocate new IDs >= free_variable_id.
Sourcepub fn field_maximum(&self) -> Option<&'a [u8]>
pub fn field_maximum(&self) -> Option<&'a [u8]>
The largest element of the finite field used by the current system.
A canonical little-endian representation of the field order minus one.
See Variables.values
below.
Sourcepub fn configuration(&self) -> Option<Vector<'a, ForwardsUOffset<KeyValue<'a>>>>
pub fn configuration(&self) -> Option<Vector<'a, ForwardsUOffset<KeyValue<'a>>>>
Optional: Any custom parameter that may influence the circuit construction.
Example: function_name, if a gadget supports multiple function variants.
Example: the depth of a Merkle tree.
Counter-example: a Merkle path is not config and belongs in instance_variables.info
.
Trait Implementations§
Source§impl<'a> Clone for CircuitHeader<'a>
impl<'a> Clone for CircuitHeader<'a>
Source§fn clone(&self) -> CircuitHeader<'a>
fn clone(&self) -> CircuitHeader<'a>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl<'a> Debug for CircuitHeader<'a>
impl<'a> Debug for CircuitHeader<'a>
Source§impl<'a> Follow<'a> for CircuitHeader<'a>
impl<'a> Follow<'a> for CircuitHeader<'a>
Source§impl<'a> From<CircuitHeader<'a>> for CircuitHeader
impl<'a> From<CircuitHeader<'a>> for CircuitHeader
Source§fn from(fb_header: CircuitHeader<'_>) -> CircuitHeader
fn from(fb_header: CircuitHeader<'_>) -> CircuitHeader
Convert from Flatbuffers references to owned structure.