pub struct ConstraintCounter {
pub num_public_variables: usize,
pub num_private_variables: usize,
pub num_constraints: usize,
}
Expand description
Constraint counter for testing purposes.
Fields§
§num_public_variables: usize
§num_private_variables: usize
§num_constraints: usize
Trait Implementations§
Source§impl<ConstraintF: Field> ConstraintSystem<ConstraintF> for ConstraintCounter
impl<ConstraintF: Field> ConstraintSystem<ConstraintF> for ConstraintCounter
Source§type Root = ConstraintCounter
type Root = ConstraintCounter
Represents the type of the “root” of this constraint system
so that nested namespaces can minimize indirection.
Source§fn alloc<F, A, AR>(&mut self, _: A, _: F) -> Result<Variable, SynthesisError>
fn alloc<F, A, AR>(&mut self, _: A, _: F) -> Result<Variable, SynthesisError>
Allocate a private variable in the constraint system. The provided
function is used to determine the assignment of the variable. The
given
annotation
function is invoked in testing contexts in order
to derive a unique name for this variable in the current namespace.Source§fn alloc_input<F, A, AR>(
&mut self,
_: A,
_: F,
) -> Result<Variable, SynthesisError>
fn alloc_input<F, A, AR>( &mut self, _: A, _: F, ) -> Result<Variable, SynthesisError>
Allocate a public variable in the constraint system. The provided
function is used to determine the assignment of the variable.
Source§fn enforce<A, AR, LA, LB, LC>(&mut self, _: A, _: LA, _: LB, _: LC)where
A: FnOnce() -> AR,
AR: AsRef<str>,
LA: FnOnce(LinearCombination<ConstraintF>) -> LinearCombination<ConstraintF>,
LB: FnOnce(LinearCombination<ConstraintF>) -> LinearCombination<ConstraintF>,
LC: FnOnce(LinearCombination<ConstraintF>) -> LinearCombination<ConstraintF>,
fn enforce<A, AR, LA, LB, LC>(&mut self, _: A, _: LA, _: LB, _: LC)where
A: FnOnce() -> AR,
AR: AsRef<str>,
LA: FnOnce(LinearCombination<ConstraintF>) -> LinearCombination<ConstraintF>,
LB: FnOnce(LinearCombination<ConstraintF>) -> LinearCombination<ConstraintF>,
LC: FnOnce(LinearCombination<ConstraintF>) -> LinearCombination<ConstraintF>,
Enforce that
A
* B
= C
. The annotation
function is invoked in
testing contexts in order to derive a unique name for the constraint
in the current namespace.Source§fn push_namespace<NR, N>(&mut self, _: N)
fn push_namespace<NR, N>(&mut self, _: N)
Create a new (sub)namespace and enter into it. Not intended
for downstream use; use
namespace
instead.Source§fn pop_namespace(&mut self)
fn pop_namespace(&mut self)
Exit out of the existing namespace. Not intended for
downstream use; use
namespace
instead.Source§fn get_root(&mut self) -> &mut Self::Root
fn get_root(&mut self) -> &mut Self::Root
Gets the “root” constraint system, bypassing the namespacing.
Not intended for downstream use; use
namespace
instead.Source§fn num_constraints(&self) -> usize
fn num_constraints(&self) -> usize
Output the number of constraints in the system.
Source§fn num_public_variables(&self) -> usize
fn num_public_variables(&self) -> usize
Output the number of public input variables to the system.
Source§fn num_private_variables(&self) -> usize
fn num_private_variables(&self) -> usize
Output the number of private input variables to the system.
Source§fn is_in_setup_mode(&self) -> bool
fn is_in_setup_mode(&self) -> bool
Output whether the constraint system is in the setup mode.
Source§impl Default for ConstraintCounter
impl Default for ConstraintCounter
Source§fn default() -> ConstraintCounter
fn default() -> ConstraintCounter
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ConstraintCounter
impl RefUnwindSafe for ConstraintCounter
impl Send for ConstraintCounter
impl Sync for ConstraintCounter
impl Unpin for ConstraintCounter
impl UnwindSafe for ConstraintCounter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more