[][src]Trait fixed::traits::FromFixed

pub trait FromFixed {
    fn from_fixed<F: Fixed>(val: F) -> Self;
fn checked_from_fixed<F: Fixed>(val: F) -> Option<Self>
    where
        Self: Sized
;
fn saturating_from_fixed<F: Fixed>(val: F) -> Self;
fn wrapping_from_fixed<F: Fixed>(val: F) -> Self;
fn overflowing_from_fixed<F: Fixed>(val: F) -> (Self, bool)
    where
        Self: Sized
; }

This trait provides checked conversions from fixed-point numbers.

This trait is implemented for conversions between integer primitives, floating-point primitives and fixed-point numbers.

Examples

use fixed::traits::FromFixed;
use fixed::types::U8F8;
// 0x87.65
let f = U8F8::from_bits(0x8765);
assert_eq!(f32::from_fixed(f), f32::from(0x8765u16) / 256.0);
assert_eq!(i32::checked_from_fixed(f), Some(0x87));
assert_eq!(u8::saturating_from_fixed(f), 0x87);
// no fit
assert_eq!(i8::checked_from_fixed(f), None);
assert_eq!(i8::saturating_from_fixed(f), i8::max_value());
assert_eq!(i8::wrapping_from_fixed(f), 0x87u8 as i8);
assert_eq!(i8::overflowing_from_fixed(f), (0x87u8 as i8, true));

Required methods

fn from_fixed<F: Fixed>(val: F) -> Self

Converts from a fixed-point number.

Any extra fractional bits are truncated.

Panics

When debug assertions are enabled, 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_from_fixed instead.

fn checked_from_fixed<F: Fixed>(val: F) -> Option<Self> where
    Self: Sized

Converts from a fixed-point number if it fits, otherwise returns None.

Any extra fractional bits are truncated.

fn saturating_from_fixed<F: Fixed>(val: F) -> Self

Converts from a fixed-point number, saturating if it does not fit.

Any extra fractional bits are truncated.

fn wrapping_from_fixed<F: Fixed>(val: F) -> Self

Converts from a fixed-point number, wrapping if it does not fit.

Any extra fractional bits are truncated.

fn overflowing_from_fixed<F: Fixed>(val: F) -> (Self, bool) where
    Self: Sized

Converts from a fixed-point number.

Returns a tuple of the value and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

Any extra fractional bits are truncated.

Loading content...

Implementations on Foreign Types

impl FromFixed for f16[src]

Loading content...

Implementors

impl FromFixed for f32[src]

impl FromFixed for f64[src]

impl FromFixed for i8[src]

impl FromFixed for i16[src]

impl FromFixed for i32[src]

impl FromFixed for i64[src]

impl FromFixed for i128[src]

impl FromFixed for isize[src]

impl FromFixed for u8[src]

impl FromFixed for u16[src]

impl FromFixed for u32[src]

impl FromFixed for u64[src]

impl FromFixed for u128[src]

impl FromFixed for usize[src]

impl<Frac> FromFixed for FixedI128<Frac> where
    Frac: Unsigned + IsLessOrEqual<U128, Output = True>, 
[src]

impl<Frac> FromFixed for FixedI16<Frac> where
    Frac: Unsigned + IsLessOrEqual<U16, Output = True>, 
[src]

impl<Frac> FromFixed for FixedI32<Frac> where
    Frac: Unsigned + IsLessOrEqual<U32, Output = True>, 
[src]

impl<Frac> FromFixed for FixedI64<Frac> where
    Frac: Unsigned + IsLessOrEqual<U64, Output = True>, 
[src]

impl<Frac> FromFixed for FixedI8<Frac> where
    Frac: Unsigned + IsLessOrEqual<U8, Output = True>, 
[src]

impl<Frac> FromFixed for FixedU128<Frac> where
    Frac: Unsigned + IsLessOrEqual<U128, Output = True>, 
[src]

impl<Frac> FromFixed for FixedU16<Frac> where
    Frac: Unsigned + IsLessOrEqual<U16, Output = True>, 
[src]

impl<Frac> FromFixed for FixedU32<Frac> where
    Frac: Unsigned + IsLessOrEqual<U32, Output = True>, 
[src]

impl<Frac> FromFixed for FixedU64<Frac> where
    Frac: Unsigned + IsLessOrEqual<U64, Output = True>, 
[src]

impl<Frac> FromFixed for FixedU8<Frac> where
    Frac: Unsigned + IsLessOrEqual<U8, Output = True>, 
[src]

Loading content...