Trait halo2_frontend::plonk::circuit::Assignment

source ·
pub trait Assignment<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§

source

fn enter_region<NR, N>(&mut self, name_fn: N)
where NR: Into<String>, N: FnOnce() -> NR,

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.

source

fn annotate_column<A, AR>(&mut self, annotation: A, column: Column<Any>)
where A: FnOnce() -> AR, AR: Into<String>,

Allows the developer to include an annotation for an specific column within a Region.

This is usually useful for debugging circuit failures.

source

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.

source

fn enable_selector<A, AR>( &mut self, annotation: A, selector: &Selector, row: usize ) -> Result<(), Error>
where A: FnOnce() -> AR, AR: Into<String>,

Enables a selector at the given row.

source

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.

source

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>,

Assign an advice column value (witness)

source

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>,

Assign a fixed value

source

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

source

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.

source

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.

source

fn push_namespace<NR, N>(&mut self, name_fn: N)
where NR: Into<String>, N: FnOnce() -> NR,

Creates a new (sub)namespace and enters into it.

Not intended for downstream consumption; use Layouter::namespace instead.

source

fn pop_namespace(&mut self, gadget_name: Option<String>)

Exits out of the existing namespace.

Not intended for downstream consumption; use Layouter::namespace instead.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<F: Field> Assignment<F> for MockProver<F>