pub struct CanaryCircuit;
Trait Implementations§
Source§impl Clone for CanaryCircuit
impl Clone for CanaryCircuit
Source§fn clone(&self) -> CanaryCircuit
fn clone(&self) -> CanaryCircuit
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl ConstraintSynthesizer<Fp256<FrParameters>> for CanaryCircuit
impl ConstraintSynthesizer<Fp256<FrParameters>> for CanaryCircuit
Source§fn generate_constraints<CS: ConstraintSystem<Fq>>(
&self,
cs: &mut CS,
) -> Result<(), SynthesisError>
fn generate_constraints<CS: ConstraintSystem<Fq>>( &self, cs: &mut CS, ) -> Result<(), SynthesisError>
Synthesizes the constraints from the environment into a snarkvm_algorithms::r1cs
-compliant constraint system.
Source§impl Debug for CanaryCircuit
impl Debug for CanaryCircuit
Source§impl Display for CanaryCircuit
impl Display for CanaryCircuit
Source§impl Environment for CanaryCircuit
impl Environment for CanaryCircuit
Source§fn zero() -> LinearCombination<Self::BaseField>
fn zero() -> LinearCombination<Self::BaseField>
Returns the zero
constant.
Source§fn one() -> LinearCombination<Self::BaseField>
fn one() -> LinearCombination<Self::BaseField>
Returns the one
constant.
Source§fn new_variable(mode: Mode, value: Self::BaseField) -> Variable<Self::BaseField>
fn new_variable(mode: Mode, value: Self::BaseField) -> Variable<Self::BaseField>
Returns a new variable of the given mode and value.
Source§fn new_witness<Fn: FnOnce() -> Output::Primitive, Output: Inject>(
mode: Mode,
logic: Fn,
) -> Output
fn new_witness<Fn: FnOnce() -> Output::Primitive, Output: Inject>( mode: Mode, logic: Fn, ) -> Output
Returns a new witness of the given mode and value.
Source§fn scope<S: Into<String>, Fn, Output>(name: S, logic: Fn) -> Outputwhere
Fn: FnOnce() -> Output,
fn scope<S: Into<String>, Fn, Output>(name: S, logic: Fn) -> Outputwhere
Fn: FnOnce() -> Output,
Enters a new scope for the environment.
Source§fn enforce<Fn, A, B, C>(constraint: Fn)where
Fn: FnOnce() -> (A, B, C),
A: Into<LinearCombination<Self::BaseField>>,
B: Into<LinearCombination<Self::BaseField>>,
C: Into<LinearCombination<Self::BaseField>>,
fn enforce<Fn, A, B, C>(constraint: Fn)where
Fn: FnOnce() -> (A, B, C),
A: Into<LinearCombination<Self::BaseField>>,
B: Into<LinearCombination<Self::BaseField>>,
C: Into<LinearCombination<Self::BaseField>>,
Adds one constraint enforcing that (A * B) == C
.
Source§fn is_satisfied() -> bool
fn is_satisfied() -> bool
Returns true
if all constraints in the environment are satisfied.
Source§fn is_satisfied_in_scope() -> bool
fn is_satisfied_in_scope() -> bool
Returns true
if all constraints in the current scope are satisfied.
Source§fn num_constants() -> u64
fn num_constants() -> u64
Returns the number of constants in the entire circuit.
Source§fn num_public() -> u64
fn num_public() -> u64
Returns the number of public variables in the entire circuit.
Source§fn num_private() -> u64
fn num_private() -> u64
Returns the number of private variables in the entire circuit.
Source§fn num_variables() -> u64
fn num_variables() -> u64
Returns the number of constant, public, and private variables in the entire circuit.
Source§fn num_constraints() -> u64
fn num_constraints() -> u64
Returns the number of constraints in the entire circuit.
Source§fn num_constants_in_scope() -> u64
fn num_constants_in_scope() -> u64
Returns the number of constants for the current scope.
Source§fn num_public_in_scope() -> u64
fn num_public_in_scope() -> u64
Returns the number of public variables for the current scope.
Source§fn num_private_in_scope() -> u64
fn num_private_in_scope() -> u64
Returns the number of private variables for the current scope.
Source§fn num_constraints_in_scope() -> u64
fn num_constraints_in_scope() -> u64
Returns the number of constraints for the current scope.
Source§fn num_nonzeros_in_scope() -> (u64, u64, u64)
fn num_nonzeros_in_scope() -> (u64, u64, u64)
Returns the number of nonzeros for the current scope.
Source§fn get_variable_limit() -> Option<u64>
fn get_variable_limit() -> Option<u64>
Returns the variable limit for the circuit, if one exists.
Source§fn set_variable_limit(limit: Option<u64>)
fn set_variable_limit(limit: Option<u64>)
Sets the variable limit for the circuit.
Source§fn get_constraint_limit() -> Option<u64>
fn get_constraint_limit() -> Option<u64>
Returns the constraint limit for the circuit, if one exists.
Source§fn set_constraint_limit(limit: Option<u64>)
fn set_constraint_limit(limit: Option<u64>)
Sets the constraint limit for the circuit.
Source§fn halt<S: Into<String>, T>(message: S) -> T
fn halt<S: Into<String>, T>(message: S) -> T
Halts the program from further synthesis, evaluation, and execution in the current environment.
Source§fn inject_r1cs(r1cs: R1CS<Self::BaseField>)
fn inject_r1cs(r1cs: R1CS<Self::BaseField>)
Returns the R1CS circuit, resetting the circuit.
Source§fn eject_r1cs_and_reset() -> R1CS<Self::BaseField>
fn eject_r1cs_and_reset() -> R1CS<Self::BaseField>
Returns the R1CS circuit, resetting the circuit.
Source§fn eject_assignment_and_reset() -> Assignment<<Self::Network as Environment>::Field>
fn eject_assignment_and_reset() -> Assignment<<Self::Network as Environment>::Field>
Returns the R1CS assignment of the circuit, resetting the circuit.
type Affine = <CanaryV0 as Environment>::Affine
type BaseField = <CanaryV0 as Environment>::Field
type Network = CanaryV0
type ScalarField = <CanaryV0 as Environment>::Scalar
Source§const EDWARDS_A: Self::BaseField = <Self::Network as console::Environment>::EDWARDS_A
const EDWARDS_A: Self::BaseField = <Self::Network as console::Environment>::EDWARDS_A
A
of the twisted Edwards curve.Source§const EDWARDS_D: Self::BaseField = <Self::Network as console::Environment>::EDWARDS_D
const EDWARDS_D: Self::BaseField = <Self::Network as console::Environment>::EDWARDS_D
D
of the twisted Edwards curve.Source§const MONTGOMERY_A: Self::BaseField = <Self::Network as console::Environment>::MONTGOMERY_A
const MONTGOMERY_A: Self::BaseField = <Self::Network as console::Environment>::MONTGOMERY_A
A
of the Montgomery curve.Source§const MONTGOMERY_B: Self::BaseField = <Self::Network as console::Environment>::MONTGOMERY_B
const MONTGOMERY_B: Self::BaseField = <Self::Network as console::Environment>::MONTGOMERY_B
B
of the Montgomery curve.Source§const MAX_STRING_BYTES: u32 = <Self::Network as console::Environment>::MAX_STRING_BYTES
const MAX_STRING_BYTES: u32 = <Self::Network as console::Environment>::MAX_STRING_BYTES
Source§fn assert<Boolean: Into<LinearCombination<Self::BaseField>>>(boolean: Boolean)
fn assert<Boolean: Into<LinearCombination<Self::BaseField>>>(boolean: Boolean)
true
.Source§fn assert_neq<A, B>(a: A, b: B)
fn assert_neq<A, B>(a: A, b: B)
A != B
.Source§impl Hash for CanaryCircuit
impl Hash for CanaryCircuit
Source§impl PartialEq for CanaryCircuit
impl PartialEq for CanaryCircuit
impl Copy for CanaryCircuit
impl Eq for CanaryCircuit
impl StructuralPartialEq for CanaryCircuit
Auto Trait Implementations§
impl Freeze for CanaryCircuit
impl RefUnwindSafe for CanaryCircuit
impl Send for CanaryCircuit
impl Sync for CanaryCircuit
impl Unpin for CanaryCircuit
impl UnwindSafe for CanaryCircuit
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more