pub trait Channel {
type F: Field;
type Commitment: Clone;
type Challenger: TranscriptChallenger<Self::F, Self::Commitment>;
// Required methods
fn sample(&mut self) -> Self::F;
fn sample_bits(&mut self, bits: usize) -> usize;
// Provided method
fn sample_algebra_element<A: BasedVectorSpace<Self::F>>(&mut self) -> A { ... }
}Expand description
Shared base trait for ProverChannel and
VerifierChannel.
Provides sampling methods common to both sides of the transcript.
Required Associated Types§
type F: Field
type Commitment: Clone
type Challenger: TranscriptChallenger<Self::F, Self::Commitment>
Required Methods§
Sourcefn sample_bits(&mut self, bits: usize) -> usize
fn sample_bits(&mut self, bits: usize) -> usize
Sample a random bits-bit integer from the challenger.
Provided Methods§
Sourcefn sample_algebra_element<A: BasedVectorSpace<Self::F>>(&mut self) -> A
fn sample_algebra_element<A: BasedVectorSpace<Self::F>>(&mut self) -> A
Sample a random algebra element (e.g. extension field) from the challenger.
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.