pub trait One: Sized + Mul<Output = Self> { // Required method fn one() -> Self; // Provided methods fn set_one(&mut self) { ... } fn is_one(&self) -> bool where Self: PartialEq { ... } }
Defines a multiplicative identity element for Self.
Self
a * 1 = a ∀ a ∈ Self 1 * a = a ∀ a ∈ Self
Returns the multiplicative identity element of Self, 1.
1
This function should return the same result at all times regardless of external mutable state, for example values stored in TLS or in static muts.
static mut
Sets self to the multiplicative identity element of Self, 1.
self
Returns true if self is equal to the multiplicative identity.
true
For performance reasons, it’s best to implement this manually. After a semver bump, this method will be required, and the where Self: PartialEq bound will be removed.
where Self: PartialEq