pub trait FieldWitnesswhere
Self: Field + Send + Sync + Into<BigInteger256> + TryFrom<BigInteger256, Error = InvalidBigInt> + Into<BigInt> + From<i64> + From<i32> + ToFieldElements<Self> + Check<Self> + FromFpFq + PrimeField + SquareRootField + FftField + SpongeParamsForField<Self> + Debug + 'static,{
type Scalar: FieldWitness<Scalar = Self>;
type Affine: AffineCurve<Projective = Self::Projective, BaseField = Self, ScalarField = Self::Scalar> + Into<GroupAffine<Self>> + KimchiCurve + Debug;
type Projective: ProjectiveCurve<Affine = Self::Affine, BaseField = Self, ScalarField = Self::Scalar> + From<GroupProjective<Self::Parameters>> + Debug;
type Parameters: SWModelParameters<BaseField = Self, ScalarField = Self::Scalar> + Clone + Debug;
type Shifting: ShiftingValue<Self> + Clone + Debug;
type OtherCurve: KimchiCurve<ScalarField = Self, BaseField = Self::Scalar>;
type FqSponge: Clone + FqSponge<Self::Scalar, Self::OtherCurve, Self>;
const PARAMS: Params<Self>;
const SIZE: BigInteger256;
const NROUNDS: usize;
const SRS_DEPTH: usize;
}
Expand description
All the generics we need during witness generation
Required Associated Constants§
const PARAMS: Params<Self>
const SIZE: BigInteger256
const NROUNDS: usize
const SRS_DEPTH: usize
Required Associated Types§
type Scalar: FieldWitness<Scalar = Self>
type Affine: AffineCurve<Projective = Self::Projective, BaseField = Self, ScalarField = Self::Scalar> + Into<GroupAffine<Self>> + KimchiCurve + Debug
type Projective: ProjectiveCurve<Affine = Self::Affine, BaseField = Self, ScalarField = Self::Scalar> + From<GroupProjective<Self::Parameters>> + Debug
type Parameters: SWModelParameters<BaseField = Self, ScalarField = Self::Scalar> + Clone + Debug
type Shifting: ShiftingValue<Self> + Clone + Debug
type OtherCurve: KimchiCurve<ScalarField = Self, BaseField = Self::Scalar>
type FqSponge: Clone + FqSponge<Self::Scalar, Self::OtherCurve, Self>
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.