pub struct NonNegative<S>(/* private fields */);Expand description
Non-negative scalars (may be zero)
Implementations§
Source§impl<S> NonNegative<S>where
S: PartialOrd + Zero,
impl<S> NonNegative<S>where
S: PartialOrd + Zero,
Sourcepub fn new(value: S) -> Option<Self>
pub fn new(value: S) -> Option<Self>
Returns ‘None’ when called with a negative value.
§Example
assert!(NonNegative::new (1.0).is_some());
assert!(NonNegative::new (0.0).is_some());
assert!(NonNegative::new (-1.0).is_none());Sourcepub fn unchecked(value: S) -> Self
pub fn unchecked(value: S) -> Self
Create a new non-negative number without checking the value.
This method is completely unchecked for release builds. Debug builds will panic if the value is negative:
ⓘ
let negative = NonNegative::unchecked (-1.0); // panic!Source§impl<S> NonNegative<S>where
S: Signed,
impl<S> NonNegative<S>where
S: Signed,
Source§impl NonNegative<f32>
impl NonNegative<f32>
Source§impl NonNegative<f64>
impl NonNegative<f64>
Source§impl<S> NonNegative<S>
impl<S> NonNegative<S>
Trait Implementations§
Source§impl<S> Add for NonNegative<S>where
S: Add<Output = S>,
impl<S> Add for NonNegative<S>where
S: Add<Output = S>,
Source§impl<S: Ring> AddAssign<NonNegative<S>> for Positive<S>
impl<S: Ring> AddAssign<NonNegative<S>> for Positive<S>
Source§fn add_assign(&mut self, rhs: NonNegative<S>)
fn add_assign(&mut self, rhs: NonNegative<S>)
Performs the
+= operation. Read moreSource§impl<S: Clone> Clone for NonNegative<S>
impl<S: Clone> Clone for NonNegative<S>
Source§fn clone(&self) -> NonNegative<S>
fn clone(&self) -> NonNegative<S>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl<S: Copy> Copy for NonNegative<S>
Source§impl<S: Debug> Debug for NonNegative<S>
impl<S: Debug> Debug for NonNegative<S>
Source§impl<S: Default> Default for NonNegative<S>
impl<S: Default> Default for NonNegative<S>
Source§fn default() -> NonNegative<S>
fn default() -> NonNegative<S>
Returns the “default value” for a type. Read more
Source§impl<S> Deref for NonNegative<S>
impl<S> Deref for NonNegative<S>
Source§impl<S> Display for NonNegative<S>where
S: Display,
impl<S> Display for NonNegative<S>where
S: Display,
Source§impl<S> Div for NonNegative<S>where
S: Div<Output = S>,
impl<S> Div for NonNegative<S>where
S: Div<Output = S>,
impl<S: Eq> Eq for NonNegative<S>
Source§impl<S: MinMax> MinMax for NonNegative<S>
impl<S: MinMax> MinMax for NonNegative<S>
Source§impl<S> Mul for NonNegative<S>where
S: Mul<Output = S>,
impl<S> Mul for NonNegative<S>where
S: Mul<Output = S>,
Source§impl<S: Ring> Mul<NonNegative<S>> for Positive<S>
impl<S: Ring> Mul<NonNegative<S>> for Positive<S>
Source§type Output = NonNegative<S>
type Output = NonNegative<S>
The resulting type after applying the
* operator.Source§impl<S: Ring> MulAssign<NonNegative<S>> for Positive<S>
impl<S: Ring> MulAssign<NonNegative<S>> for Positive<S>
Source§fn mul_assign(&mut self, rhs: NonNegative<S>)
fn mul_assign(&mut self, rhs: NonNegative<S>)
Performs the
*= operation. Read moreSource§impl<S> NumCast for NonNegative<S>
impl<S> NumCast for NonNegative<S>
Source§fn from<T: ToPrimitive>(n: T) -> Option<NonNegative<S>>
fn from<T: ToPrimitive>(n: T) -> Option<NonNegative<S>>
Creates a number from another value that can be converted into
a primitive via the
ToPrimitive trait. If the source value cannot be
represented by the target type, then None is returned. Read moreSource§impl<S: Field> One for NonNegative<S>
impl<S: Field> One for NonNegative<S>
Source§impl<S: PartialEq> PartialEq for NonNegative<S>
impl<S: PartialEq> PartialEq for NonNegative<S>
Source§fn eq(&self, other: &NonNegative<S>) -> bool
fn eq(&self, other: &NonNegative<S>) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl<S: PartialOrd> PartialOrd for NonNegative<S>
impl<S: PartialOrd> PartialOrd for NonNegative<S>
impl<S> StructuralPartialEq for NonNegative<S>
Source§impl<S> ToPrimitive for NonNegative<S>where
S: ToPrimitive,
impl<S> ToPrimitive for NonNegative<S>where
S: ToPrimitive,
Source§fn to_isize(&self) -> Option<isize>
fn to_isize(&self) -> Option<isize>
Converts the value of
self to an isize. If the value cannot be
represented by an isize, then None is returned.Source§fn to_i8(&self) -> Option<i8>
fn to_i8(&self) -> Option<i8>
Converts the value of
self to an i8. If the value cannot be
represented by an i8, then None is returned.Source§fn to_i16(&self) -> Option<i16>
fn to_i16(&self) -> Option<i16>
Converts the value of
self to an i16. If the value cannot be
represented by an i16, then None is returned.Source§fn to_i32(&self) -> Option<i32>
fn to_i32(&self) -> Option<i32>
Converts the value of
self to an i32. If the value cannot be
represented by an i32, then None is returned.Source§fn to_i64(&self) -> Option<i64>
fn to_i64(&self) -> Option<i64>
Converts the value of
self to an i64. If the value cannot be
represented by an i64, then None is returned.Source§fn to_usize(&self) -> Option<usize>
fn to_usize(&self) -> Option<usize>
Converts the value of
self to a usize. If the value cannot be
represented by a usize, then None is returned.Source§fn to_u8(&self) -> Option<u8>
fn to_u8(&self) -> Option<u8>
Converts the value of
self to a u8. If the value cannot be
represented by a u8, then None is returned.Source§fn to_u16(&self) -> Option<u16>
fn to_u16(&self) -> Option<u16>
Converts the value of
self to a u16. If the value cannot be
represented by a u16, then None is returned.Source§fn to_u32(&self) -> Option<u32>
fn to_u32(&self) -> Option<u32>
Converts the value of
self to a u32. If the value cannot be
represented by a u32, then None is returned.Source§fn to_u64(&self) -> Option<u64>
fn to_u64(&self) -> Option<u64>
Converts the value of
self to a u64. If the value cannot be
represented by a u64, then None is returned.Source§fn to_f32(&self) -> Option<f32>
fn to_f32(&self) -> Option<f32>
Converts the value of
self to an f32. Overflows may map to positive
or negative inifinity, otherwise None is returned if the value cannot
be represented by an f32.Source§fn to_f64(&self) -> Option<f64>
fn to_f64(&self) -> Option<f64>
Converts the value of
self to an f64. Overflows may map to positive
or negative inifinity, otherwise None is returned if the value cannot
be represented by an f64. Read moreAuto Trait Implementations§
impl<S> Freeze for NonNegative<S>where
S: Freeze,
impl<S> RefUnwindSafe for NonNegative<S>where
S: RefUnwindSafe,
impl<S> Send for NonNegative<S>where
S: Send,
impl<S> Sync for NonNegative<S>where
S: Sync,
impl<S> Unpin for NonNegative<S>where
S: Unpin,
impl<S> UnsafeUnpin for NonNegative<S>where
S: UnsafeUnpin,
impl<S> UnwindSafe for NonNegative<S>where
S: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
Source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Performs the conversion.
Source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
Source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Performs the conversion.
impl<T> MaybeSerDes for T
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> SemigroupAction<Addition, T> for T
impl<T> SemigroupAction<Addition, T> for T
Source§impl<T> SemigroupAction<Multiplication, T> for Twhere
Multiplication: Semigroup<T>,
impl<T> SemigroupAction<Multiplication, T> for Twhere
Multiplication: Semigroup<T>,
Source§impl<T> StrictAs for T
impl<T> StrictAs for T
Source§fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
Casts the value.
Source§impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
Source§fn strict_cast_from(src: Src) -> Dst
fn strict_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
Source§fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
Source§fn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> WrappingAs for T
impl<T> WrappingAs for T
Source§fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
Source§fn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.