Skip to main content

One

Trait One 

Source
pub trait One: Sized {
    // Required methods
    fn one() -> Self;
    fn set_one(&mut self);
    fn is_one(&self) -> bool;
}
Expand description

Defines a multiplicative identity element for Self.

A pure identity-value trait, decoupled from Mul for the same reason as Zero: 1 is equally the identity under division (a / 1 = a), so privileging Mul is arbitrary. Consumers state what they need (T: One + Mul, T: One + Div, …); full numeric code takes Num.

§Laws

a * 1 = a       ∀ a ∈ Self
1 * a = a       ∀ a ∈ Self

Required Methods§

Source

fn one() -> Self

Returns the multiplicative identity element of Self, 1.

§Purity

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.

Source

fn set_one(&mut self)

Sets self to the multiplicative identity element of Self, 1.

Source

fn is_one(&self) -> bool

Returns true if self is equal to the multiplicative identity.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl One for f32

Source§

fn one() -> f32

Source§

fn set_one(&mut self)

Source§

fn is_one(&self) -> bool

Source§

impl One for f64

Source§

fn one() -> f64

Source§

fn set_one(&mut self)

Source§

fn is_one(&self) -> bool

Source§

impl One for i8

Source§

fn one() -> i8

Source§

fn set_one(&mut self)

Source§

fn is_one(&self) -> bool

Source§

impl One for i16

Source§

fn one() -> i16

Source§

fn set_one(&mut self)

Source§

fn is_one(&self) -> bool

Source§

impl One for i32

Source§

fn one() -> i32

Source§

fn set_one(&mut self)

Source§

fn is_one(&self) -> bool

Source§

impl One for i64

Source§

fn one() -> i64

Source§

fn set_one(&mut self)

Source§

fn is_one(&self) -> bool

Source§

impl One for i128

Source§

fn one() -> i128

Source§

fn set_one(&mut self)

Source§

fn is_one(&self) -> bool

Source§

impl One for isize

Source§

fn one() -> isize

Source§

fn set_one(&mut self)

Source§

fn is_one(&self) -> bool

Source§

impl One for u8

Source§

fn one() -> u8

Source§

fn set_one(&mut self)

Source§

fn is_one(&self) -> bool

Source§

impl One for u16

Source§

fn one() -> u16

Source§

fn set_one(&mut self)

Source§

fn is_one(&self) -> bool

Source§

impl One for u32

Source§

fn one() -> u32

Source§

fn set_one(&mut self)

Source§

fn is_one(&self) -> bool

Source§

impl One for u64

Source§

fn one() -> u64

Source§

fn set_one(&mut self)

Source§

fn is_one(&self) -> bool

Source§

impl One for u128

Source§

fn one() -> u128

Source§

fn set_one(&mut self)

Source§

fn is_one(&self) -> bool

Source§

impl One for usize

Source§

fn one() -> usize

Source§

fn set_one(&mut self)

Source§

fn is_one(&self) -> bool

Source§

impl<T: One> One for Saturating<T>
where Saturating<T>: Mul<Output = Saturating<T>>,

Source§

fn set_one(&mut self)

Source§

fn one() -> Self

Source§

fn is_one(&self) -> bool

Source§

impl<T: One> One for Wrapping<T>
where Wrapping<T>: Mul<Output = Wrapping<T>>,

Source§

fn set_one(&mut self)

Source§

fn one() -> Self

Source§

fn is_one(&self) -> bool

Implementors§