pub struct PermutationInstance<T, const WIDTH: usize> {
pub vars_count: usize,
pub public_values: Vec<(FieldVar, T)>,
pub query_answers: Vec<QueryAnswerPair<FieldVar, WIDTH>>,
pub linear_constraints: LinearConstraints<FieldVar, T>,
}Expand description
An immutable snapshot of a permutation relation instance.
Fields§
§vars_count: usize§public_values: Vec<(FieldVar, T)>§query_answers: Vec<QueryAnswerPair<FieldVar, WIDTH>>The input-output wires to be proven
linear_constraints: LinearConstraints<FieldVar, T>Implementations§
Source§impl<T, const WIDTH: usize> PermutationInstance<T, WIDTH>
impl<T, const WIDTH: usize> PermutationInstance<T, WIDTH>
pub fn constraints(&self) -> impl AsRef<[QueryAnswerPair<FieldVar, WIDTH>]> + '_
pub const fn linear_constraints(&self) -> &LinearConstraints<FieldVar, T>
pub fn public_vars(&self) -> &[(FieldVar, T)]
Trait Implementations§
Source§impl<T: Clone, const WIDTH: usize> Clone for PermutationInstance<T, WIDTH>
impl<T: Clone, const WIDTH: usize> Clone for PermutationInstance<T, WIDTH>
Source§fn clone(&self) -> PermutationInstance<T, WIDTH>
fn clone(&self) -> PermutationInstance<T, WIDTH>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl<T: Eq, const WIDTH: usize> Eq for PermutationInstance<T, WIDTH>
impl<T: PartialEq, const WIDTH: usize> StructuralPartialEq for PermutationInstance<T, WIDTH>
Auto Trait Implementations§
impl<T, const WIDTH: usize> Freeze for PermutationInstance<T, WIDTH>where
Vec<(FieldVar, T)>: Freeze,
Vec<QueryAnswerPair<FieldVar, WIDTH>>: Freeze,
LinearConstraints<FieldVar, T>: Freeze,
impl<T, const WIDTH: usize> RefUnwindSafe for PermutationInstance<T, WIDTH>where
Vec<(FieldVar, T)>: RefUnwindSafe,
Vec<QueryAnswerPair<FieldVar, WIDTH>>: RefUnwindSafe,
LinearConstraints<FieldVar, T>: RefUnwindSafe,
impl<T, const WIDTH: usize> Send for PermutationInstance<T, WIDTH>where
Vec<(FieldVar, T)>: Send,
Vec<QueryAnswerPair<FieldVar, WIDTH>>: Send,
LinearConstraints<FieldVar, T>: Send,
impl<T, const WIDTH: usize> Sync for PermutationInstance<T, WIDTH>where
Vec<(FieldVar, T)>: Sync,
Vec<QueryAnswerPair<FieldVar, WIDTH>>: Sync,
LinearConstraints<FieldVar, T>: Sync,
impl<T, const WIDTH: usize> Unpin for PermutationInstance<T, WIDTH>where
Vec<(FieldVar, T)>: Unpin,
Vec<QueryAnswerPair<FieldVar, WIDTH>>: Unpin,
LinearConstraints<FieldVar, T>: Unpin,
impl<T, const WIDTH: usize> UnsafeUnpin for PermutationInstance<T, WIDTH>where
Vec<(FieldVar, T)>: UnsafeUnpin,
Vec<QueryAnswerPair<FieldVar, WIDTH>>: UnsafeUnpin,
LinearConstraints<FieldVar, T>: UnsafeUnpin,
impl<T, const WIDTH: usize> UnwindSafe for PermutationInstance<T, WIDTH>where
Vec<(FieldVar, T)>: UnwindSafe,
Vec<QueryAnswerPair<FieldVar, WIDTH>>: UnwindSafe,
LinearConstraints<FieldVar, T>: 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
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<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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> ⓘ
Converts
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> ⓘ
Converts
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