Trait halo2_proofs::plonk::Assignment
source · pub trait Assignment<F>where
F: Field,{
// Required methods
fn enter_region<NR, N>(&mut self, name_fn: N)
where NR: Into<String>,
N: FnOnce() -> NR;
fn annotate_column<A, AR>(&mut self, annotation: A, column: Column<Any>)
where A: FnOnce() -> AR,
AR: Into<String>;
fn exit_region(&mut self);
fn enable_selector<A, AR>(
&mut self,
annotation: A,
selector: &Selector,
row: usize
) -> Result<(), Error>
where A: FnOnce() -> AR,
AR: Into<String>;
fn query_instance(
&self,
column: Column<Instance>,
row: usize
) -> Result<Value<F>, Error>;
fn assign_advice<V, VR, A, AR>(
&mut self,
annotation: A,
column: Column<Advice>,
row: usize,
to: V
) -> Result<(), Error>
where V: FnOnce() -> Value<VR>,
VR: Into<Assigned<F>>,
A: FnOnce() -> AR,
AR: Into<String>;
fn assign_fixed<V, VR, A, AR>(
&mut self,
annotation: A,
column: Column<Fixed>,
row: usize,
to: V
) -> Result<(), Error>
where V: FnOnce() -> Value<VR>,
VR: Into<Assigned<F>>,
A: FnOnce() -> AR,
AR: Into<String>;
fn copy(
&mut self,
left_column: Column<Any>,
left_row: usize,
right_column: Column<Any>,
right_row: usize
) -> Result<(), Error>;
fn fill_from_row(
&mut self,
column: Column<Fixed>,
row: usize,
to: Value<Assigned<F>>
) -> Result<(), Error>;
fn get_challenge(&self, challenge: Challenge) -> Value<F>;
fn push_namespace<NR, N>(&mut self, name_fn: N)
where NR: Into<String>,
N: FnOnce() -> NR;
fn pop_namespace(&mut self, gadget_name: Option<String>);
}
Expand description
This trait allows a Circuit
to direct some backend to assign a witness
for a constraint system.
Required Methods§
sourcefn enter_region<NR, N>(&mut self, name_fn: N)
fn enter_region<NR, N>(&mut self, name_fn: N)
Creates a new region and enters into it.
Panics if we are currently in a region (if exit_region
was not called).
Not intended for downstream consumption; use Layouter::assign_region
instead.
sourcefn annotate_column<A, AR>(&mut self, annotation: A, column: Column<Any>)
fn annotate_column<A, AR>(&mut self, annotation: A, column: Column<Any>)
Allows the developer to include an annotation for an specific column within a Region
.
This is usually useful for debugging circuit failures.
sourcefn exit_region(&mut self)
fn exit_region(&mut self)
Exits the current region.
Panics if we are not currently in a region (if enter_region
was not called).
Not intended for downstream consumption; use Layouter::assign_region
instead.
sourcefn enable_selector<A, AR>(
&mut self,
annotation: A,
selector: &Selector,
row: usize
) -> Result<(), Error>
fn enable_selector<A, AR>( &mut self, annotation: A, selector: &Selector, row: usize ) -> Result<(), Error>
Enables a selector at the given row.
sourcefn query_instance(
&self,
column: Column<Instance>,
row: usize
) -> Result<Value<F>, Error>
fn query_instance( &self, column: Column<Instance>, row: usize ) -> Result<Value<F>, Error>
Queries the cell of an instance column at a particular absolute row.
Returns the cell’s value, if known.
sourcefn assign_advice<V, VR, A, AR>(
&mut self,
annotation: A,
column: Column<Advice>,
row: usize,
to: V
) -> Result<(), Error>
fn assign_advice<V, VR, A, AR>( &mut self, annotation: A, column: Column<Advice>, row: usize, to: V ) -> Result<(), Error>
Assign an advice column value (witness)
sourcefn assign_fixed<V, VR, A, AR>(
&mut self,
annotation: A,
column: Column<Fixed>,
row: usize,
to: V
) -> Result<(), Error>
fn assign_fixed<V, VR, A, AR>( &mut self, annotation: A, column: Column<Fixed>, row: usize, to: V ) -> Result<(), Error>
Assign a fixed value
sourcefn copy(
&mut self,
left_column: Column<Any>,
left_row: usize,
right_column: Column<Any>,
right_row: usize
) -> Result<(), Error>
fn copy( &mut self, left_column: Column<Any>, left_row: usize, right_column: Column<Any>, right_row: usize ) -> Result<(), Error>
Assign two cells to have the same value
sourcefn fill_from_row(
&mut self,
column: Column<Fixed>,
row: usize,
to: Value<Assigned<F>>
) -> Result<(), Error>
fn fill_from_row( &mut self, column: Column<Fixed>, row: usize, to: Value<Assigned<F>> ) -> Result<(), Error>
Fills a fixed column
starting from the given row
with value to
.
sourcefn get_challenge(&self, challenge: Challenge) -> Value<F>
fn get_challenge(&self, challenge: Challenge) -> Value<F>
Queries the value of the given challenge.
Returns Value::unknown()
if the current synthesis phase is before the challenge can be queried.
sourcefn push_namespace<NR, N>(&mut self, name_fn: N)
fn push_namespace<NR, N>(&mut self, name_fn: N)
Creates a new (sub)namespace and enters into it.
Not intended for downstream consumption; use Layouter::namespace
instead.
sourcefn pop_namespace(&mut self, gadget_name: Option<String>)
fn pop_namespace(&mut self, gadget_name: Option<String>)
Exits out of the existing namespace.
Not intended for downstream consumption; use Layouter::namespace
instead.