pub trait FloorPlanner {
    // Required method
    fn synthesize<F, CS, C>(
        cs: &mut CS,
        circuit: &C,
        config: <C as Circuit<F>>::Config,
        constants: Vec<Column<Fixed>>
    ) -> Result<(), Error>
       where F: Field,
             CS: Assignment<F>,
             C: Circuit<F>;
}
Expand description

A floor planning strategy for a circuit.

The floor planner is chip-agnostic and applies its strategy to the circuit it is used within.

Required Methods§

fn synthesize<F, CS, C>( cs: &mut CS, circuit: &C, config: <C as Circuit<F>>::Config, constants: Vec<Column<Fixed>> ) -> Result<(), Error>
where F: Field, CS: Assignment<F>, C: Circuit<F>,

Given the provided cs, synthesize the given circuit.

constants is the list of fixed columns that the layouter may use to assign global constant values. These columns will all have been equality-enabled.

Internally, a floor planner will perform the following operations:

  • Instantiate a Layouter for this floor planner.
  • Perform any necessary setup or measurement tasks, which may involve one or more calls to Circuit::default().synthesize(config, &mut layouter).
  • Call circuit.synthesize(config, &mut layouter) exactly once.

Object Safety§

This trait is not object safe.

Implementors§

§

impl FloorPlanner for SimpleFloorPlanner

§

impl FloorPlanner for V1

§

impl<P> FloorPlanner for TracingFloorPlanner<P>
where P: FloorPlanner,