pub trait StarkGenericConfig:
'static
+ Send
+ Sync
+ Serialize
+ DeserializeOwned
+ Clone {
type Val: PrimeField;
type Domain: PolynomialSpace<Val = Self::Val> + Sync;
type Pcs: Pcs<Self::Challenge, Self::Challenger, Domain = Self::Domain> + Sync + ZeroCommitment<Self>;
type Challenge: ExtensionField<Self::Val>;
type Challenger: FieldChallenger<Val<Self>> + CanObserve<<Self::Pcs as Pcs<Self::Challenge, Self::Challenger>>::Commitment> + CanSample<Self::Challenge> + Serialize + DeserializeOwned;
// Required methods
fn pcs(&self) -> &Self::Pcs;
fn challenger(&self) -> Self::Challenger;
}
Required Associated Types§
type Val: PrimeField
type Domain: PolynomialSpace<Val = Self::Val> + Sync
sourcetype Pcs: Pcs<Self::Challenge, Self::Challenger, Domain = Self::Domain> + Sync + ZeroCommitment<Self>
type Pcs: Pcs<Self::Challenge, Self::Challenger, Domain = Self::Domain> + Sync + ZeroCommitment<Self>
The PCS used to commit to trace polynomials.
sourcetype Challenge: ExtensionField<Self::Val>
type Challenge: ExtensionField<Self::Val>
The field from which most random challenges are drawn.
sourcetype Challenger: FieldChallenger<Val<Self>> + CanObserve<<Self::Pcs as Pcs<Self::Challenge, Self::Challenger>>::Commitment> + CanSample<Self::Challenge> + Serialize + DeserializeOwned
type Challenger: FieldChallenger<Val<Self>> + CanObserve<<Self::Pcs as Pcs<Self::Challenge, Self::Challenger>>::Commitment> + CanSample<Self::Challenge> + Serialize + DeserializeOwned
The challenger (Fiat-Shamir) implementation used.
Required Methods§
sourcefn challenger(&self) -> Self::Challenger
fn challenger(&self) -> Self::Challenger
Initialize a new 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.