Add ToConstraintFieldGadget bounds to CurveVar and FieldVar

This commit is contained in:
winderica
2024-04-05 05:36:23 +08:00
parent 4020fbc226
commit 0686b89729
2 changed files with 4 additions and 2 deletions

View File

@@ -5,7 +5,7 @@ use core::{
ops::{Add, AddAssign, Mul, MulAssign, Sub, SubAssign}, ops::{Add, AddAssign, Mul, MulAssign, Sub, SubAssign},
}; };
use crate::convert::{ToBitsGadget, ToBytesGadget}; use crate::convert::{ToBitsGadget, ToBytesGadget, ToConstraintFieldGadget};
use crate::prelude::*; use crate::prelude::*;
/// This module contains a generic implementation of cubic extension field /// This module contains a generic implementation of cubic extension field
@@ -76,6 +76,7 @@ pub trait FieldVar<F: Field, ConstraintF: PrimeField>:
+ AllocVar<F, ConstraintF> + AllocVar<F, ConstraintF>
+ ToBytesGadget<ConstraintF> + ToBytesGadget<ConstraintF>
+ CondSelectGadget<ConstraintF> + CondSelectGadget<ConstraintF>
+ ToConstraintFieldGadget<ConstraintF>
+ for<'a> FieldOpsBounds<'a, F, Self> + for<'a> FieldOpsBounds<'a, F, Self>
+ for<'a> AddAssign<&'a Self> + for<'a> AddAssign<&'a Self>
+ for<'a> SubAssign<&'a Self> + for<'a> SubAssign<&'a Self>

View File

@@ -1,5 +1,5 @@
use crate::{ use crate::{
convert::{ToBitsGadget, ToBytesGadget}, convert::{ToBitsGadget, ToBytesGadget, ToConstraintFieldGadget},
fields::emulated_fp::EmulatedFpVar, fields::emulated_fp::EmulatedFpVar,
prelude::*, prelude::*,
}; };
@@ -41,6 +41,7 @@ pub trait CurveVar<C: CurveGroup, ConstraintF: PrimeField>:
+ CondSelectGadget<ConstraintF> + CondSelectGadget<ConstraintF>
+ AllocVar<C, ConstraintF> + AllocVar<C, ConstraintF>
+ AllocVar<C::Affine, ConstraintF> + AllocVar<C::Affine, ConstraintF>
+ ToConstraintFieldGadget<ConstraintF>
+ for<'a> GroupOpsBounds<'a, C, Self> + for<'a> GroupOpsBounds<'a, C, Self>
+ for<'a> AddAssign<&'a Self> + for<'a> AddAssign<&'a Self>
+ for<'a> SubAssign<&'a Self> + for<'a> SubAssign<&'a Self>