Trait Encode

Source
pub trait Encode {
    // Required method
    fn encode<W: Write>(&self, writer: &mut W) -> Result<()>;

    // Provided method
    fn encode_to_vec(&self) -> Result<Vec<u8>> { ... }
}
Expand description

Hardware and language independent encoding. Uses the Writer pattern for more efficient encoding without intermediate buffers.

Required Methods§

Source

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

Writes the encoded representation of self to the given writer.

Provided Methods§

Source

fn encode_to_vec(&self) -> Result<Vec<u8>>

Convenience method to encode into a Vec<u8>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Encode for Option<FriLogUpPartialProof<F>>

Source§

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

Source§

impl Encode for usize

Source§

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

Source§

impl Encode for ContinuationVmProof<SC>

Source§

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

Source§

impl Encode for UserPublicValuesProof<DIGEST_SIZE, F>

Source§

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

Source§

impl Encode for RootVmVerifierInput<SC>

Source§

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

Source§

impl Encode for AdjacentOpenedValues<BinomialExtensionField<F, 4>>

Source§

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

Source§

impl Encode for AirProofData<F, BinomialExtensionField<F, 4>>

Source§

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

Encodes the struct

pub struct OpenedValues<Challenge> {
    pub preprocessed: Vec<AdjacentOpenedValues<Challenge>>,
    pub main: Vec<Vec<AdjacentOpenedValues<Challenge>>>,
    pub after_challenge: Vec<Vec<AdjacentOpenedValues<Challenge>>>,
    pub quotient: Vec<Vec<Vec<Challenge>>>,
}
Source§

impl Encode for Proof<SC>

Source§

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

Encode a proof using FRI as the PCS with BabyBearPoseidon2Config. The Merkle tree hashes have digest [F; 8].

pub struct Proof<SC: StarkGenericConfig> {
    pub commitments: Commitments<Com<SC>>,
    pub opening: OpeningProof<PcsProof<SC>, SC::Challenge>,
    pub per_air: Vec<AirProofData<Val<SC>, SC::Challenge>>,
    pub rap_phase_seq_proof: Option<RapPhaseSeqPartialProof<SC>>,
}
Source§

impl Encode for BinomialExtensionField<F, 4>

Source§

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

Source§

impl Encode for InnerFriProof

Source§

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

Encodes the struct

pub struct FriProof<Challenge, M: Mmcs<Challenge>> {
    pub commit_phase_commits: Vec<M::Commitment>,
    pub query_proofs: Vec<QueryProof<Challenge, M, Vec<BatchOpening<F>>>>,
    pub final_poly: Vec<Challenge>,
    pub pow_witness: F,
}
Source§

impl Encode for InnerQueryProof

Source§

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

Encodes the struct

pub struct QueryProof<Challenge, M: Mmcs<Challenge>> {
    pub input_proof: Vec<BatchOpening<F>>,
    pub commit_phase_openings: Vec<CommitPhaseProofStep<Challenge, M>>,
}

pub struct BatchOpening<F> {
    pub opened_values: Vec<Vec<F>>,
    pub opening_proof: Vec<[F; DIGEST_SIZE]>,
}

pub struct CommitPhaseProofStep<Challenge, M: Mmcs<Challenge>> {
    pub sibling_value: Challenge,
    pub opening_proof: Vec<[F; DIGEST_SIZE]>,
}
Source§

impl Encode for [F; 8]

Source§

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

Implementors§

Source§

impl Encode for F