[−][src]Trait fixed::traits::ToFixed
This trait provides checked conversions to fixed-point numbers.
This trait is implemented for conversions between integer primitives, floating-point primitives and fixed-point numbers.
Examples
use fixed::traits::ToFixed; use fixed::types::{U8F8, U16F16}; let f: U8F8 = 13.5f32.to_fixed(); assert_eq!(f, U8F8::from_bits((13 << 8) | (1 << 7))); // 0x1234.5678 is too large and can be wrapped to 0x34.56 let too_large = U16F16::from_bits(0x1234_5678); let checked: Option<U8F8> = too_large.checked_to_fixed(); assert_eq!(checked, None); let saturating: U8F8 = too_large.saturating_to_fixed(); assert_eq!(saturating, U8F8::max_value()); let wrapping: U8F8 = too_large.wrapping_to_fixed(); assert_eq!(wrapping, U8F8::from_bits(0x3456)); let overflowing: (U8F8, bool) = too_large.overflowing_to_fixed(); assert_eq!(overflowing, (U8F8::from_bits(0x3456), true));
Required methods
fn to_fixed<F: Fixed>(self) -> F
Converts to a fixed-point number.
Any extra fractional bits are truncated.
Panics
Panics if self
is a floating-point number that is not finite.
When debug assertions are enabled, also panics if the value
does not fit. When debug assertions are not enabled, the
wrapped value can be returned, but it is not considered a
breaking change if in the future it panics; if wrapping is
required use wrapping_to_fixed
instead.
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
Converts to a fixed-point number if it fits, otherwise returns None
.
Any extra fractional bits are truncated.
fn saturating_to_fixed<F: Fixed>(self) -> F
Converts to a fixed-point number, saturating if it does not fit.
Any extra fractional bits are truncated.
Panics
Panics if self
is a floating-point number that is NaN.
fn wrapping_to_fixed<F: Fixed>(self) -> F
Converts to a fixed-point number, wrapping if it does not fit.
Any extra fractional bits are truncated.
Panics
Panics if self
is a floating-point number that is not finite.
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
Implementations on Foreign Types
impl ToFixed for f16
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
Implementors
impl ToFixed for bool
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl ToFixed for f32
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl ToFixed for f64
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl ToFixed for i8
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl ToFixed for i16
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl ToFixed for i32
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl ToFixed for i64
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl ToFixed for i128
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl ToFixed for isize
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl ToFixed for u8
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl ToFixed for u16
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl ToFixed for u32
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl ToFixed for u64
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl ToFixed for u128
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl ToFixed for usize
[src]
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl<Frac> ToFixed for FixedI128<Frac> where
Frac: Unsigned + IsLessOrEqual<U128, Output = True>,
[src]
Frac: Unsigned + IsLessOrEqual<U128, Output = True>,
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl<Frac> ToFixed for FixedI16<Frac> where
Frac: Unsigned + IsLessOrEqual<U16, Output = True>,
[src]
Frac: Unsigned + IsLessOrEqual<U16, Output = True>,
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl<Frac> ToFixed for FixedI32<Frac> where
Frac: Unsigned + IsLessOrEqual<U32, Output = True>,
[src]
Frac: Unsigned + IsLessOrEqual<U32, Output = True>,
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl<Frac> ToFixed for FixedI64<Frac> where
Frac: Unsigned + IsLessOrEqual<U64, Output = True>,
[src]
Frac: Unsigned + IsLessOrEqual<U64, Output = True>,
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl<Frac> ToFixed for FixedI8<Frac> where
Frac: Unsigned + IsLessOrEqual<U8, Output = True>,
[src]
Frac: Unsigned + IsLessOrEqual<U8, Output = True>,
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl<Frac> ToFixed for FixedU128<Frac> where
Frac: Unsigned + IsLessOrEqual<U128, Output = True>,
[src]
Frac: Unsigned + IsLessOrEqual<U128, Output = True>,
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl<Frac> ToFixed for FixedU16<Frac> where
Frac: Unsigned + IsLessOrEqual<U16, Output = True>,
[src]
Frac: Unsigned + IsLessOrEqual<U16, Output = True>,
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl<Frac> ToFixed for FixedU32<Frac> where
Frac: Unsigned + IsLessOrEqual<U32, Output = True>,
[src]
Frac: Unsigned + IsLessOrEqual<U32, Output = True>,
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl<Frac> ToFixed for FixedU64<Frac> where
Frac: Unsigned + IsLessOrEqual<U64, Output = True>,
[src]
Frac: Unsigned + IsLessOrEqual<U64, Output = True>,
fn to_fixed<F: Fixed>(self) -> F
[src]
fn checked_to_fixed<F: Fixed>(self) -> Option<F>
[src]
fn saturating_to_fixed<F: Fixed>(self) -> F
[src]
fn wrapping_to_fixed<F: Fixed>(self) -> F
[src]
fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)
[src]
impl<Frac> ToFixed for FixedU8<Frac> where
Frac: Unsigned + IsLessOrEqual<U8, Output = True>,
[src]
Frac: Unsigned + IsLessOrEqual<U8, Output = True>,