mirror of https://github.com/zcash/halo2.git
dev: Move halo2::dev::circuit_layout to halo2::dev::CircuitLayout::render
This makes it easier to add configuration to the renderer.
This commit is contained in:
parent
d8e4f24df4
commit
3e82c7b232
|
@ -1,6 +1,6 @@
|
|||
use halo2::{
|
||||
arithmetic::FieldExt,
|
||||
dev::circuit_layout,
|
||||
dev::CircuitLayout,
|
||||
pasta::Fp,
|
||||
plonk::{Advice, Assignment, Circuit, Column, ConstraintSystem, Error, Fixed, Permutation},
|
||||
poly::Rotation,
|
||||
|
@ -396,5 +396,5 @@ fn main() {
|
|||
.titled("Example Circuit Layout", ("sans-serif", 60))
|
||||
.unwrap();
|
||||
|
||||
circuit_layout(&circuit, &root).unwrap();
|
||||
CircuitLayout::default().render(&circuit, &root).unwrap();
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ mod graph;
|
|||
|
||||
#[cfg(feature = "dev-graph")]
|
||||
#[cfg_attr(docsrs, doc(cfg(feature = "dev-graph")))]
|
||||
pub use graph::{circuit_dot_graph, layout::circuit_layout};
|
||||
pub use graph::{circuit_dot_graph, layout::CircuitLayout};
|
||||
|
||||
/// Cells that haven't been explicitly assigned to, default to zero.
|
||||
fn cell_value<F: Field>(cell: Option<F>) -> F {
|
||||
|
|
|
@ -10,7 +10,7 @@ use crate::plonk::{
|
|||
Advice, Any, Assignment, Circuit, Column, ConstraintSystem, Error, Fixed, Permutation, Selector,
|
||||
};
|
||||
|
||||
/// Renders the circuit layout on the given drawing area.
|
||||
/// Graphical renderer for circuit layouts.
|
||||
///
|
||||
/// Cells that have been assigned to by the circuit will be shaded. If any cells are
|
||||
/// assigned to more than once (which is usually a mistake), they will be shaded darker
|
||||
|
@ -19,7 +19,7 @@ use crate::plonk::{
|
|||
/// # Examples
|
||||
///
|
||||
/// ```ignore
|
||||
/// use halo2::dev::circuit_layout;
|
||||
/// use halo2::dev::CircuitLayout;
|
||||
/// use plotters::prelude::*;
|
||||
///
|
||||
/// let drawing_area = BitMapBackend::new("example-circuit-layout.png", (1024, 768))
|
||||
|
@ -30,12 +30,18 @@ use crate::plonk::{
|
|||
/// .unwrap();
|
||||
///
|
||||
/// let circuit = MyCircuit::default();
|
||||
/// circuit_layout(&circuit, &drawing_area).unwrap();
|
||||
/// CircuitLayout::default().render(&circuit, &drawing_area).unwrap();
|
||||
/// ```
|
||||
pub fn circuit_layout<F: Field, ConcreteCircuit: Circuit<F>, DB: DrawingBackend>(
|
||||
#[derive(Debug, Default)]
|
||||
pub struct CircuitLayout {}
|
||||
|
||||
impl CircuitLayout {
|
||||
/// Renders the given circuit on the given drawing area.
|
||||
pub fn render<F: Field, ConcreteCircuit: Circuit<F>, DB: DrawingBackend>(
|
||||
self,
|
||||
circuit: &ConcreteCircuit,
|
||||
drawing_area: &DrawingArea<DB, Shift>,
|
||||
) -> Result<(), DrawingAreaErrorKind<DB::ErrorType>> {
|
||||
) -> Result<(), DrawingAreaErrorKind<DB::ErrorType>> {
|
||||
use plotters::coord::types::RangedCoordusize;
|
||||
use plotters::prelude::*;
|
||||
|
||||
|
@ -153,6 +159,7 @@ pub fn circuit_layout<F: Field, ConcreteCircuit: Circuit<F>, DB: DrawingBackend>
|
|||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
|
|
Loading…
Reference in New Issue