pub struct CommonData<SC: SGC> {
pub preprocessed: Option<GlobalPreprocessed<SC>>,
pub lookups: Vec<Vec<Lookup<Val<SC>>>>,
}Expand description
Struct storing data common to both the prover and verifier.
Fields§
§preprocessed: Option<GlobalPreprocessed<SC>>Optional global preprocessed commitment shared by all instances.
When None, no instance uses preprocessed columns.
lookups: Vec<Vec<Lookup<Val<SC>>>>The lookups used by each STARK instance.
There is one Vec<Lookup<Val<SC>>> per STARK instance.
They are stored in the same order as the STARK instance inputs provided to new.
Implementations§
Source§impl<SC: SGC> CommonData<SC>
impl<SC: SGC> CommonData<SC>
pub const fn new( preprocessed: Option<GlobalPreprocessed<SC>>, lookups: Vec<Vec<Lookup<Val<SC>>>>, ) -> Self
Sourcepub fn empty(num_instances: usize) -> Self
pub fn empty(num_instances: usize) -> Self
Create CommonData with no preprocessed columns or lookups.
Use this when none of your Air implementations have preprocessed columns or lookups.
Auto Trait Implementations§
impl<SC> Freeze for CommonData<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: Freeze,
impl<SC> RefUnwindSafe for CommonData<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: RefUnwindSafe,
<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val: RefUnwindSafe,
impl<SC> Send for CommonData<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: Send,
impl<SC> Sync for CommonData<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: Sync,
impl<SC> Unpin for CommonData<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: Unpin,
<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val: Unpin,
impl<SC> UnsafeUnpin for CommonData<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: UnsafeUnpin,
impl<SC> UnwindSafe for CommonData<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: UnwindSafe,
<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val: UnwindSafe + RefUnwindSafe,
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> 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