pub trait FieldWitnesswhere
Self: Field + Send + Sync + Into<BigInteger256> + From<BigInteger256> + Into<BigInt> + From<i64> + From<i32> + ToFieldElements<Self> + Check<Self> + FromFpFq + PrimeField + FftField + SpongeParamsForField<Self> + Debug + 'static,{
type Scalar: FieldWitness<Scalar = Self>;
type Affine: AffineRepr<Group = Self::Projective, BaseField = Self, ScalarField = <Self as FieldWitness>::Scalar> + Into<GroupAffine<Self>> + KimchiCurve + Debug;
type Projective: CurveGroup<Affine = Self::Affine, BaseField = Self, ScalarField = <Self as FieldWitness>::Scalar> + From<Projective<Self::Parameters>> + Debug;
type Parameters: SWCurveConfig<BaseField = Self, ScalarField = <Self as FieldWitness>::Scalar> + Clone + Debug;
type Shifting: ShiftingValue<Self> + Clone + Debug;
type OtherCurve: KimchiCurve<ScalarField = Self, BaseField = <Self as FieldWitness>::Scalar>;
type FqSponge: Clone + FqSponge<<Self as FieldWitness>::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: AffineRepr<Group = Self::Projective, BaseField = Self, ScalarField = <Self as FieldWitness>::Scalar> + Into<GroupAffine<Self>> + KimchiCurve + Debug
type Projective: CurveGroup<Affine = Self::Affine, BaseField = Self, ScalarField = <Self as FieldWitness>::Scalar> + From<Projective<Self::Parameters>> + Debug
type Parameters: SWCurveConfig<BaseField = Self, ScalarField = <Self as FieldWitness>::Scalar> + Clone + Debug
type Shifting: ShiftingValue<Self> + Clone + Debug
type OtherCurve: KimchiCurve<ScalarField = Self, BaseField = <Self as FieldWitness>::Scalar>
type FqSponge: Clone + FqSponge<<Self as FieldWitness>::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.