pub enum ProofItem {
MerkleRoot(Digest),
OutOfDomainMainRow(Box<MainRow<XFieldElement>>),
OutOfDomainAuxRow(Box<AuxiliaryRow>),
OutOfDomainQuotientSegments(QuotientSegments),
AuthenticationStructure(AuthenticationStructure),
MasterMainTableRows(Vec<MainRow<BFieldElement>>),
MasterAuxTableRows(Vec<AuxiliaryRow>),
Log2PaddedHeight(u32),
QuotientSegmentsElements(Vec<QuotientSegments>),
FriCodeword(Vec<XFieldElement>),
FriPolynomial(Polynomial<'static, XFieldElement>),
FriResponse(FriResponse),
}
Variants§
MerkleRoot(Digest)
OutOfDomainMainRow(Box<MainRow<XFieldElement>>)
OutOfDomainAuxRow(Box<AuxiliaryRow>)
OutOfDomainQuotientSegments(QuotientSegments)
AuthenticationStructure(AuthenticationStructure)
MasterMainTableRows(Vec<MainRow<BFieldElement>>)
MasterAuxTableRows(Vec<AuxiliaryRow>)
Log2PaddedHeight(u32)
QuotientSegmentsElements(Vec<QuotientSegments>)
FriCodeword(Vec<XFieldElement>)
FriPolynomial(Polynomial<'static, XFieldElement>)
FriResponse(FriResponse)
Implementations§
Source§impl ProofItem
impl ProofItem
Sourcepub const fn include_in_fiat_shamir_heuristic(&self) -> bool
pub const fn include_in_fiat_shamir_heuristic(&self) -> bool
Whether a given proof item should be considered in the Fiat-Shamir heuristic. The Fiat-Shamir heuristic is sound only if all elements in the (current) transcript are considered. However, certain elements indirectly appear more than once. For example, a Merkle root is a commitment to any number of elements. If the Merkle root is part of the transcript, has been considered in the Fiat-Shamir heuristic, and assuming collision resistance of the hash function in use, none of the committed-to elements have to be considered in the Fiat-Shamir heuristic again. This also extends to the authentication structure of these elements, et cetera.
pub fn try_into_merkle_root(self) -> Result<Digest, ProofStreamError>
pub fn try_into_out_of_domain_main_row( self, ) -> Result<Box<MainRow<XFieldElement>>, ProofStreamError>
pub fn try_into_out_of_domain_aux_row( self, ) -> Result<Box<AuxiliaryRow>, ProofStreamError>
pub fn try_into_out_of_domain_quot_segments( self, ) -> Result<QuotientSegments, ProofStreamError>
pub fn try_into_authentication_structure( self, ) -> Result<AuthenticationStructure, ProofStreamError>
pub fn try_into_master_main_table_rows( self, ) -> Result<Vec<MainRow<BFieldElement>>, ProofStreamError>
pub fn try_into_master_aux_table_rows( self, ) -> Result<Vec<AuxiliaryRow>, ProofStreamError>
pub fn try_into_log2_padded_height(self) -> Result<u32, ProofStreamError>
pub fn try_into_quot_segments_elements( self, ) -> Result<Vec<QuotientSegments>, ProofStreamError>
pub fn try_into_fri_codeword( self, ) -> Result<Vec<XFieldElement>, ProofStreamError>
pub fn try_into_fri_polynomial( self, ) -> Result<Polynomial<'static, XFieldElement>, ProofStreamError>
pub fn try_into_fri_response(self) -> Result<FriResponse, ProofStreamError>
Trait Implementations§
Source§impl<'arbitrary> Arbitrary<'arbitrary> for ProofItem
impl<'arbitrary> Arbitrary<'arbitrary> for ProofItem
Source§fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
Generate an arbitrary value of
Self
from the given unstructured data. Read moreSource§fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
Generate an arbitrary value of
Self
from the entirety of the given
unstructured data. Read moreSource§impl BFieldCodec for ProofItem
impl BFieldCodec for ProofItem
type Error = ProofItemBFieldDecodingError
fn decode(sequence: &[BFieldElement]) -> Result<Box<Self>, Self::Error>
fn encode(&self) -> Vec<BFieldElement>
Source§fn static_length() -> Option<usize>
fn static_length() -> Option<usize>
Returns the length in number of BFieldElements if it is known at compile-time.
Otherwise, None.
Source§impl<'_enum> From<&'_enum ProofItem> for ProofItemVariant
impl<'_enum> From<&'_enum ProofItem> for ProofItemVariant
Source§fn from(val: &'_enum ProofItem) -> ProofItemVariant
fn from(val: &'_enum ProofItem) -> ProofItemVariant
Converts to this type from the input type.
Source§impl From<ProofItem> for ProofItemVariant
impl From<ProofItem> for ProofItemVariant
Source§fn from(val: ProofItem) -> ProofItemVariant
fn from(val: ProofItem) -> ProofItemVariant
Converts to this type from the input type.
impl Eq for ProofItem
impl StructuralPartialEq for ProofItem
Auto Trait Implementations§
impl Freeze for ProofItem
impl RefUnwindSafe for ProofItem
impl Send for ProofItem
impl Sync for ProofItem
impl Unpin for ProofItem
impl UnwindSafe for ProofItem
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)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
Compare self to
key
and return true
if they are equal.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