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".