pub trait ZipTypes:
Clone
+ Debug
+ Send
+ Sync {
type Eval: ConstCoeffBitWidth + Default + Named + Clone + Debug + Send + Sync;
type Cw: FixedSemiring + ConstCoeffBitWidth + ConstTranscribable + FromRef<Self::Eval> + CheckedAdd + Named + Copy + Debug;
type Fmod: ConstIntSemiring + ConstTranscribable + Named;
type PrimeTest: PrimalityTest<Self::Fmod>;
type Chal: ConstIntRing + ConstTranscribable + Named;
type Pt: ConstIntRing;
type CombR: ConstIntRing + Neg<Output = Self::CombR> + ConstTranscribable + FromRef<Self::CombR> + for<'a> MulByScalar<&'a Self::Chal>;
type Comb: FixedSemiring + Polynomial<Self::CombR> + FromRef<Self::Eval> + FromRef<Self::Cw> + Named;
type EvalDotChal: InnerProduct<Self::Eval, Self::Chal, Self::CombR> + Debug;
type CombDotChal: InnerProduct<Self::Comb, Self::Chal, Self::CombR> + Debug;
type ArrCombRDotChal: InnerProduct<[Self::CombR], Self::Chal, Self::CombR> + Debug;
const NUM_COLUMN_OPENINGS: usize;
}Required Associated Constants§
const NUM_COLUMN_OPENINGS: usize
Required Associated Types§
Sourcetype Eval: ConstCoeffBitWidth + Default + Named + Clone + Debug + Send + Sync
type Eval: ConstCoeffBitWidth + Default + Named + Clone + Debug + Send + Sync
Semiring of witness/polynomial evaluations on boolean hypercube
Sourcetype Cw: FixedSemiring + ConstCoeffBitWidth + ConstTranscribable + FromRef<Self::Eval> + CheckedAdd + Named + Copy + Debug
type Cw: FixedSemiring + ConstCoeffBitWidth + ConstTranscribable + FromRef<Self::Eval> + CheckedAdd + Named + Copy + Debug
Semiring of codeword elements, at least as wide as the evaluation ring
Sourcetype Fmod: ConstIntSemiring + ConstTranscribable + Named
type Fmod: ConstIntSemiring + ConstTranscribable + Named
Semiring type used to draft field modulus elements, natural numbers
type PrimeTest: PrimalityTest<Self::Fmod>
Sourcetype Chal: ConstIntRing + ConstTranscribable + Named
type Chal: ConstIntRing + ConstTranscribable + Named
Ring of challenge elements (coefficients) to perform a random linear combination of codewords
Sourcetype CombR: ConstIntRing + Neg<Output = Self::CombR> + ConstTranscribable + FromRef<Self::CombR> + for<'a> MulByScalar<&'a Self::Chal>
type CombR: ConstIntRing + Neg<Output = Self::CombR> + ConstTranscribable + FromRef<Self::CombR> + for<'a> MulByScalar<&'a Self::Chal>
Coefficient ring of linear combination polynomial Self::Comb
Sourcetype Comb: FixedSemiring + Polynomial<Self::CombR> + FromRef<Self::Eval> + FromRef<Self::Cw> + Named
type Comb: FixedSemiring + Polynomial<Self::CombR> + FromRef<Self::Eval> + FromRef<Self::Cw> + Named
Ring of elements in the linear combination of codewords, at least as wide as the evaluation, codeword, and challenge rings.
type EvalDotChal: InnerProduct<Self::Eval, Self::Chal, Self::CombR> + Debug
type CombDotChal: InnerProduct<Self::Comb, Self::Chal, Self::CombR> + Debug
type ArrCombRDotChal: InnerProduct<[Self::CombR], Self::Chal, Self::CombR> + Debug
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.