#[repr(C)]pub struct StarkVerifyingKey<F, Digest> {
pub preprocessed_data: Option<VerifierSinglePreprocessedData<Digest>>,
pub params: StarkVerifyingParams,
pub symbolic_constraints: SymbolicConstraintsDag<F>,
pub max_constraint_degree: u8,
pub is_required: bool,
pub unused_variables: Vec<SymbolicVariable<F>>,
}Expand description
Verifying key for a single STARK (corresponding to single AIR matrix)
Fields§
§preprocessed_data: Option<VerifierSinglePreprocessedData<Digest>>Preprocessed trace data, if any
params: StarkVerifyingParamsParameters of the STARK
symbolic_constraints: SymbolicConstraintsDag<F>Symbolic constraints of the AIR in all challenge phases. This is a serialization of the constraints in the AIR.
max_constraint_degree: u8The maximum degree of any polynomial (constraint or interaction) for this AIR.
is_required: boolTrue means this AIR must have non-empty trace.
unused_variables: Vec<SymbolicVariable<F>>Symbolic variables referenced unreferenced by the AIR.
Implementations§
Source§impl<Val, Com> StarkVerifyingKey<Val, Com>
impl<Val, Com> StarkVerifyingKey<Val, Com>
pub fn num_cached_mains(&self) -> usize
pub fn num_parts(&self) -> usize
pub fn has_interaction(&self) -> bool
pub fn num_interactions(&self) -> usize
Sourcepub fn dag_main_part_index_to_commit_index(&self, index: usize) -> usize
pub fn dag_main_part_index_to_commit_index(&self, index: usize) -> usize
Converts from a main part index (as used by the constraint DAG) to the commitment part indexing scheme that includes preprocessed trace.
Trait Implementations§
Source§impl<F: Clone, Digest: Clone> Clone for StarkVerifyingKey<F, Digest>
impl<F: Clone, Digest: Clone> Clone for StarkVerifyingKey<F, Digest>
Source§fn clone(&self) -> StarkVerifyingKey<F, Digest>
fn clone(&self) -> StarkVerifyingKey<F, Digest>
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 moreSource§impl<'de, F, Digest> Deserialize<'de> for StarkVerifyingKey<F, Digest>where
F: Deserialize<'de>,
Digest: Deserialize<'de>,
impl<'de, F, Digest> Deserialize<'de> for StarkVerifyingKey<F, Digest>where
F: Deserialize<'de>,
Digest: Deserialize<'de>,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl<F, Digest> Freeze for StarkVerifyingKey<F, Digest>where
Digest: Freeze,
impl<F, Digest> RefUnwindSafe for StarkVerifyingKey<F, Digest>where
Digest: RefUnwindSafe,
F: RefUnwindSafe,
impl<F, Digest> Send for StarkVerifyingKey<F, Digest>
impl<F, Digest> Sync for StarkVerifyingKey<F, Digest>
impl<F, Digest> Unpin for StarkVerifyingKey<F, Digest>
impl<F, Digest> UnsafeUnpin for StarkVerifyingKey<F, Digest>where
Digest: UnsafeUnpin,
impl<F, Digest> UnwindSafe for StarkVerifyingKey<F, Digest>where
Digest: UnwindSafe,
F: 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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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