pub trait CheckedCurrency<F: FieldWitness>:
Sized
+ ToFieldElements<F>
+ Check<F>
+ Debug {
type Inner: MinMax + Magnitude + Debug;
Show 22 methods
// Required methods
fn to_field(&self) -> F;
fn from_field(field: F) -> Self;
// Provided methods
fn zero() -> Self { ... }
fn to_inner(&self) -> Self::Inner { ... }
fn from_inner(inner: Self::Inner) -> Self { ... }
fn min() -> Self { ... }
fn max() -> Self { ... }
fn modulus_as_field() -> F { ... }
fn double_modulus_as_field() -> F { ... }
fn equal(&self, other: &Self, w: &mut Witness<F>) -> Boolean { ... }
fn sub_flagged(&self, y: &Self, w: &mut Witness<F>) -> (Self, Boolean) { ... }
fn sub_or_zero(&self, y: &Self, w: &mut Witness<F>) -> Self { ... }
fn range_check_flagged(
kind: RangeCheckFlaggedKind,
t: F,
w: &mut Witness<F>,
) -> (Self, Boolean) { ... }
fn lt(&self, y: &Self, w: &mut Witness<F>) -> Boolean { ... }
fn lte(&self, y: &Self, w: &mut Witness<F>) -> Boolean { ... }
fn gte(&self, y: &Self, w: &mut Witness<F>) -> Boolean { ... }
fn gt(&self, y: &Self, w: &mut Witness<F>) -> Boolean { ... }
fn add_signed(&self, d: CheckedSigned<F, Self>, w: &mut Witness<F>) -> Self { ... }
fn add_signed_flagged(
&self,
d: CheckedSigned<F, Self>,
w: &mut Witness<F>,
) -> (Self, Boolean) { ... }
fn const_add_flagged(&self, y: &Self, w: &mut Witness<F>) -> (Self, Boolean) { ... }
fn add_flagged(&self, y: &Self, w: &mut Witness<F>) -> (Self, Boolean) { ... }
fn sub(&self, y: &Self, w: &mut Witness<F>) -> Self { ... }
}
Required Associated Types§
Required Methods§
fn to_field(&self) -> F
fn from_field(field: F) -> Self
Provided Methods§
fn zero() -> Self
fn to_inner(&self) -> Self::Inner
fn from_inner(inner: Self::Inner) -> Self
fn min() -> Self
fn max() -> Self
fn modulus_as_field() -> F
fn double_modulus_as_field() -> F
fn equal(&self, other: &Self, w: &mut Witness<F>) -> Boolean
fn sub_flagged(&self, y: &Self, w: &mut Witness<F>) -> (Self, Boolean)
fn sub_or_zero(&self, y: &Self, w: &mut Witness<F>) -> Self
fn range_check_flagged( kind: RangeCheckFlaggedKind, t: F, w: &mut Witness<F>, ) -> (Self, Boolean)
fn add_signed(&self, d: CheckedSigned<F, Self>, w: &mut Witness<F>) -> Self
fn add_signed_flagged( &self, d: CheckedSigned<F, Self>, w: &mut Witness<F>, ) -> (Self, Boolean)
Sourcefn const_add_flagged(&self, y: &Self, w: &mut Witness<F>) -> (Self, Boolean)
fn const_add_flagged(&self, y: &Self, w: &mut Witness<F>) -> (Self, Boolean)
Returns (F, is_overflow)
Sourcefn add_flagged(&self, y: &Self, w: &mut Witness<F>) -> (Self, Boolean)
fn add_flagged(&self, y: &Self, w: &mut Witness<F>) -> (Self, Boolean)
Returns (F, is_overflow)
fn sub(&self, y: &Self, w: &mut Witness<F>) -> 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.