Enum kimchi::snarky::constraint_system::KimchiConstraint
source · pub enum KimchiConstraint<Var, Field> {
Basic(BasicInput<Var, Field>),
Poseidon(Vec<Vec<Var>>),
Poseidon2(PoseidonInput<Var>),
EcAddComplete(EcAddCompleteInput<Var>),
EcScale(Vec<ScaleRound<Var>>),
EcEndoscale(EcEndoscaleInput<Var>),
EcEndoscalar(Vec<EndoscaleScalarRound<Var>>),
RangeCheck(Vec<Vec<Var>>),
}
Expand description
A PLONK constraint (or gate) can be Basic
, Poseidon
,
EcAddComplete
, EcScale
,
EcEndoscale
, or EcEndoscalar
.
Variants§
Basic(BasicInput<Var, Field>)
Poseidon(Vec<Vec<Var>>)
Poseidon2(PoseidonInput<Var>)
EcAddComplete(EcAddCompleteInput<Var>)
EcScale(Vec<ScaleRound<Var>>)
EcEndoscale(EcEndoscaleInput<Var>)
EcEndoscalar(Vec<EndoscaleScalarRound<Var>>)
RangeCheck(Vec<Vec<Var>>)
Implementations§
source§impl<F> KimchiConstraint<FieldVar<F>, F>where
F: PrimeField,
impl<F> KimchiConstraint<FieldVar<F>, F>where F: PrimeField,
pub fn check_constraint( &self, env: &impl WitnessGeneration<F> ) -> Result<(), Box<SnarkyRuntimeError>>
Trait Implementations§
source§impl<'from_value_lifetime, Var, Field> FromValue<'from_value_lifetime> for KimchiConstraint<Var, Field>where
BasicInput<Var, Field>: FromValue<'from_value_lifetime>,
Var: FromValue<'from_value_lifetime>,
Field: FromValue<'from_value_lifetime>,
Vec<Vec<Var>>: FromValue<'from_value_lifetime>,
PoseidonInput<Var>: FromValue<'from_value_lifetime>,
EcAddCompleteInput<Var>: FromValue<'from_value_lifetime>,
Vec<ScaleRound<Var>>: FromValue<'from_value_lifetime>,
EcEndoscaleInput<Var>: FromValue<'from_value_lifetime>,
Vec<EndoscaleScalarRound<Var>>: FromValue<'from_value_lifetime>,
impl<'from_value_lifetime, Var, Field> FromValue<'from_value_lifetime> for KimchiConstraint<Var, Field>where BasicInput<Var, Field>: FromValue<'from_value_lifetime>, Var: FromValue<'from_value_lifetime>, Field: FromValue<'from_value_lifetime>, Vec<Vec<Var>>: FromValue<'from_value_lifetime>, PoseidonInput<Var>: FromValue<'from_value_lifetime>, EcAddCompleteInput<Var>: FromValue<'from_value_lifetime>, Vec<ScaleRound<Var>>: FromValue<'from_value_lifetime>, EcEndoscaleInput<Var>: FromValue<'from_value_lifetime>, Vec<EndoscaleScalarRound<Var>>: FromValue<'from_value_lifetime>,
source§fn from_value(value: Value) -> Self
fn from_value(value: Value) -> Self
Convert from OCaml value
source§impl<Var, Field> IntoValue for KimchiConstraint<Var, Field>where
BasicInput<Var, Field>: IntoValue,
Var: IntoValue,
Field: IntoValue,
Vec<Vec<Var>>: IntoValue,
PoseidonInput<Var>: IntoValue,
EcAddCompleteInput<Var>: IntoValue,
Vec<ScaleRound<Var>>: IntoValue,
EcEndoscaleInput<Var>: IntoValue,
Vec<EndoscaleScalarRound<Var>>: IntoValue,
impl<Var, Field> IntoValue for KimchiConstraint<Var, Field>where BasicInput<Var, Field>: IntoValue, Var: IntoValue, Field: IntoValue, Vec<Vec<Var>>: IntoValue, PoseidonInput<Var>: IntoValue, EcAddCompleteInput<Var>: IntoValue, Vec<ScaleRound<Var>>: IntoValue, EcEndoscaleInput<Var>: IntoValue, Vec<EndoscaleScalarRound<Var>>: IntoValue,
source§fn into_value(self, gc: &Runtime) -> Value
fn into_value(self, gc: &Runtime) -> Value
Convert to OCaml value
source§impl<Var, Field> OCamlBinding for KimchiConstraint<Var, Field>where
Var: OCamlDesc,
Field: OCamlDesc,
impl<Var, Field> OCamlBinding for KimchiConstraint<Var, Field>where Var: OCamlDesc, Field: OCamlDesc,
source§impl<Var, Field> OCamlDesc for KimchiConstraint<Var, Field>where
Var: OCamlDesc,
Field: OCamlDesc,
impl<Var, Field> OCamlDesc for KimchiConstraint<Var, Field>where Var: OCamlDesc, Field: OCamlDesc,
source§fn ocaml_desc(env: &Env, generics: &[&str]) -> String
fn ocaml_desc(env: &Env, generics: &[&str]) -> String
describes the type in OCaml, given the current environment [Env]
and the list of generic type parameters of the root type
(the type that makes use of this type)
Auto Trait Implementations§
impl<Var, Field> RefUnwindSafe for KimchiConstraint<Var, Field>where Field: RefUnwindSafe, Var: RefUnwindSafe,
impl<Var, Field> Send for KimchiConstraint<Var, Field>where Field: Send, Var: Send,
impl<Var, Field> Sync for KimchiConstraint<Var, Field>where Field: Sync, Var: Sync,
impl<Var, Field> Unpin for KimchiConstraint<Var, Field>where Field: Unpin, Var: Unpin,
impl<Var, Field> UnwindSafe for KimchiConstraint<Var, Field>where Field: UnwindSafe, Var: UnwindSafe,
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