39: Add is_one. r=cuviper a=clarcharr

Implements the version recommended in #5. That issue should remain open to track the breaking-change version.
This commit is contained in:
bors[bot] 2018-02-23 22:58:39 +00:00
commit 3431da80a2
1 changed files with 10 additions and 0 deletions

View File

@ -79,6 +79,16 @@ pub trait One: Sized + Mul<Self, Output = Self> {
/// `static mut`s.
// FIXME (#5527): This should be an associated constant
fn one() -> Self;
/// Returns `true` if `self` is equal to the multiplicative identity.
///
/// 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.
#[inline]
fn is_one(&self) -> bool where Self: PartialEq {
*self == Self::one()
}
}
macro_rules! one_impl {