pub trait ZincTypes<const DEGREE_PLUS_ONE: usize>: Clone + Debug {
type Int: Semiring + ConstTranscribable + ConstCoeffBitWidth + Named + Default + Clone + Send + Sync + 'static;
type Chal: ConstIntRing + ConstTranscribable + Named;
type Pt: ConstIntRing;
type CombR;
type Fmod: ConstIntSemiring + ConstTranscribable + Named;
type PrimeTest: PrimalityTest<Self::Fmod>;
type BinaryZt: ZipTypes<Eval = BinaryPoly<DEGREE_PLUS_ONE>, Chal = Self::Chal, Pt = Self::Pt, CombR = Self::CombR, Fmod = Self::Fmod, PrimeTest = Self::PrimeTest>;
type ArbitraryZt: ZipTypes<Eval = DensePolynomial<Self::Int, DEGREE_PLUS_ONE>, Chal = Self::Chal, Pt = Self::Pt, CombR = Self::CombR, Fmod = Self::Fmod, PrimeTest = Self::PrimeTest>;
type IntZt: ZipTypes<Eval = Self::Int, Chal = Self::Chal, Pt = Self::Pt, CombR = Self::CombR, Fmod = Self::Fmod, PrimeTest = Self::PrimeTest>;
type BinaryLc: LinearCode<Self::BinaryZt>;
type ArbitraryLc: LinearCode<Self::ArbitraryZt>;
type IntLc: LinearCode<Self::IntZt>;
}Expand description
Trait bundling the various type parameters for the public inputs (NYI), witness and Zinc+ PIOP.
Required Associated Types§
Sourcetype Int: Semiring + ConstTranscribable + ConstCoeffBitWidth + Named + Default + Clone + Send + Sync + 'static
type Int: Semiring + ConstTranscribable + ConstCoeffBitWidth + Named + Default + Clone + Send + Sync + 'static
Main integer type for the protocol, used as a coefficient type for the arbitrary polynomial trace columns and for the integer trace columns.
Sourcetype Chal: ConstIntRing + ConstTranscribable + Named
type Chal: ConstIntRing + ConstTranscribable + Named
Projecting element to project Zip+ evaluations and UAIR scalars to the field.
Sourcetype Pt: ConstIntRing
type Pt: ConstIntRing
Evaluation point type, used for all column types in Zip+ to evaluate multilinear polynomials.
type CombR
Sourcetype Fmod: ConstIntSemiring + ConstTranscribable + Named
type Fmod: ConstIntSemiring + ConstTranscribable + Named
Randomly sampled field modulus type, used throughout the protocol for finite field operations.
Sourcetype PrimeTest: PrimalityTest<Self::Fmod>
type PrimeTest: PrimalityTest<Self::Fmod>
Primality test for the field modulus.
Sourcetype BinaryZt: ZipTypes<Eval = BinaryPoly<DEGREE_PLUS_ONE>, Chal = Self::Chal, Pt = Self::Pt, CombR = Self::CombR, Fmod = Self::Fmod, PrimeTest = Self::PrimeTest>
type BinaryZt: ZipTypes<Eval = BinaryPoly<DEGREE_PLUS_ONE>, Chal = Self::Chal, Pt = Self::Pt, CombR = Self::CombR, Fmod = Self::Fmod, PrimeTest = Self::PrimeTest>
Zip+ types for the binary polynomial trace columns.
Sourcetype ArbitraryZt: ZipTypes<Eval = DensePolynomial<Self::Int, DEGREE_PLUS_ONE>, Chal = Self::Chal, Pt = Self::Pt, CombR = Self::CombR, Fmod = Self::Fmod, PrimeTest = Self::PrimeTest>
type ArbitraryZt: ZipTypes<Eval = DensePolynomial<Self::Int, DEGREE_PLUS_ONE>, Chal = Self::Chal, Pt = Self::Pt, CombR = Self::CombR, Fmod = Self::Fmod, PrimeTest = Self::PrimeTest>
Zip+ types for the arbitrary polynomial trace columns.
Sourcetype IntZt: ZipTypes<Eval = Self::Int, Chal = Self::Chal, Pt = Self::Pt, CombR = Self::CombR, Fmod = Self::Fmod, PrimeTest = Self::PrimeTest>
type IntZt: ZipTypes<Eval = Self::Int, Chal = Self::Chal, Pt = Self::Pt, CombR = Self::CombR, Fmod = Self::Fmod, PrimeTest = Self::PrimeTest>
Zip+ types for the integer trace columns.
Sourcetype BinaryLc: LinearCode<Self::BinaryZt>
type BinaryLc: LinearCode<Self::BinaryZt>
Linear code used in Zip+ for the binary polynomial trace columns.
Sourcetype ArbitraryLc: LinearCode<Self::ArbitraryZt>
type ArbitraryLc: LinearCode<Self::ArbitraryZt>
Linear code used in Zip+ for the arbitrary polynomial trace columns.
Sourcetype IntLc: LinearCode<Self::IntZt>
type IntLc: LinearCode<Self::IntZt>
Linear code used in Zip+ for the integer trace columns.
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.