[][src]Struct fixed::FixedU16

#[repr(transparent)]pub struct FixedU16<Frac> { /* fields omitted */ }

A 16-bit fixed-point unsigned number with Frac fractional bits.

Frac is an Unsigned as provided by the typenum crate; the plan is to move to const generics in version 2 when they are supported by the Rust compiler.

Examples

use fixed::{types::extra::U3, FixedU16};
let eleven = FixedU16::<U3>::from_num(11);
assert_eq!(eleven, FixedU16::<U3>::from_bits(11 << 3));
assert_eq!(eleven, 11);
assert_eq!(eleven.to_string(), "11");
let two_point_75 = eleven / 4;
assert_eq!(two_point_75, FixedU16::<U3>::from_bits(11 << 1));
assert_eq!(two_point_75, 2.75);
assert_eq!(two_point_75.to_string(), "2.8");

Implementations

impl<Frac> FixedU16<Frac>[src]

The implementation of items in this block is independent of the number of fractional bits Frac.

pub const MIN: FixedU16<Frac>[src]

The smallest value that can be represented.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::MIN, Fix::from_bits(u16::MIN));

pub const MAX: FixedU16<Frac>[src]

The largest value that can be represented.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::MAX, Fix::from_bits(u16::MAX));

pub const fn from_bits(bits: u16) -> FixedU16<Frac>[src]

Creates a fixed-point number that has a bitwise representation identical to the given integer.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
// 0010.0000 == 2
assert_eq!(Fix::from_bits(0b10_0000), 2);

pub const fn to_bits(self) -> u16[src]

Creates an integer that has a bitwise representation identical to the given fixed-point number.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
// 2 is 0010.0000
assert_eq!(Fix::from_num(2).to_bits(), 0b10_0000);

pub const fn from_be_bytes(bytes: [u8; 2]) -> FixedU16<Frac>[src]

Creates a fixed-point number from its representation as a byte array in big endian.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(
    Fix::from_be_bytes([0x12, 0x34]),
    Fix::from_bits(0x1234)
);

pub const fn from_le_bytes(bytes: [u8; 2]) -> FixedU16<Frac>[src]

Creates a fixed-point number from its representation as a byte array in little endian.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(
    Fix::from_le_bytes([0x34, 0x12]),
    Fix::from_bits(0x1234)
);

pub const fn from_ne_bytes(bytes: [u8; 2]) -> FixedU16<Frac>[src]

Creates a fixed-point number from its representation as a byte array in native endian.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(
    if cfg!(target_endian = "big") {
        Fix::from_ne_bytes([0x12, 0x34])
    } else {
        Fix::from_ne_bytes([0x34, 0x12])
    },
    Fix::from_bits(0x1234)
);

pub const fn to_be_bytes(self) -> [u8; 2][src]

Returns the memory representation of this fixed-point number as a byte array in big-endian byte order.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let val = Fix::from_bits(0x1234);
assert_eq!(
    val.to_be_bytes(),
    [0x12, 0x34]
);

pub const fn to_le_bytes(self) -> [u8; 2][src]

Returns the memory representation of this fixed-point number as a byte array in little-endian byte order.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let val = Fix::from_bits(0x1234);
assert_eq!(
    val.to_le_bytes(),
    [0x34, 0x12]
);

pub const fn to_ne_bytes(self) -> [u8; 2][src]

Returns the memory representation of this fixed-point number as a byte array in native byte order.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let val = Fix::from_bits(0x1234);
assert_eq!(
    val.to_ne_bytes(),
    if cfg!(target_endian = "big") {
        [0x12, 0x34]
    } else {
        [0x34, 0x12]
    }
);

pub const fn count_ones(self) -> u32[src]

Returns the number of ones in the binary representation.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let f = Fix::from_bits(0b11_0010);
assert_eq!(f.count_ones(), 3);

pub const fn count_zeros(self) -> u32[src]

Returns the number of zeros in the binary representation.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let f = Fix::from_bits(!0b11_0010);
assert_eq!(f.count_zeros(), 3);

pub const fn leading_ones(self) -> u32[src]

Returns the number of leading ones in the binary representation.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let all_ones = !Fix::from_bits(0);
let f = all_ones - Fix::from_bits(0b10_0000);
assert_eq!(f.leading_ones(), 16 - 6);

pub const fn leading_zeros(self) -> u32[src]

Returns the number of leading zeros in the binary representation.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let f = Fix::from_bits(0b10_0000);
assert_eq!(f.leading_zeros(), 16 - 6);

pub const fn trailing_ones(self) -> u32[src]

Returns the number of trailing ones in the binary representation.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let f = Fix::from_bits(0b101_1111);
assert_eq!(f.trailing_ones(), 5);

pub const fn trailing_zeros(self) -> u32[src]

Returns the number of trailing zeros in the binary representation.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let f = Fix::from_bits(0b10_0000);
assert_eq!(f.trailing_zeros(), 5);

pub const fn rotate_left(self, n: u32) -> FixedU16<Frac>[src]

Shifts to the left by n bits, wrapping the truncated bits to the right end.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let bits: u16 = (0b111 << (16 - 3)) | 0b1010;
let rot = 0b1010111;
assert_eq!(bits.rotate_left(3), rot);
assert_eq!(Fix::from_bits(bits).rotate_left(3), Fix::from_bits(rot));

pub const fn rotate_right(self, n: u32) -> FixedU16<Frac>[src]

Shifts to the right by n bits, wrapping the truncated bits to the left end.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let bits: u16 = 0b1010111;
let rot = (0b111 << (16 - 3)) | 0b1010;
assert_eq!(bits.rotate_right(3), rot);
assert_eq!(Fix::from_bits(bits).rotate_right(3), Fix::from_bits(rot));

pub const fn is_power_of_two(self) -> bool[src]

Returns true if the fixed-point number is 2k for some integer k.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
// 3/8 is 0.0110
let three_eights = Fix::from_bits(0b0110);
// 1/2 is 0.1000
let half = Fix::from_bits(0b1000);
assert!(!three_eights.is_power_of_two());
assert!(half.is_power_of_two());

pub fn wide_mul<RhsFrac>(
    self,
    rhs: FixedU16<RhsFrac>
) -> FixedU32<Sum<Frac, RhsFrac>> where
    Frac: Add<RhsFrac>, 
[src]

Multiplies two fixed-point numbers and returns a wider type to retain all precision.

If self has i integer bits and f fractional bits, and rhs has j integer bits and g fractional bits, then the returned fixed-point number will have i + j integer bits and f + g fractional bits.

Examples

use fixed::{
    types::extra::{U2, U4},
    FixedU16,
};
// decimal: 1.25 × 1.0625 = 1.328_125
// binary: 1.01 × 1.0001 == 1.010101
let a = FixedU16::<U2>::from_num(1.25);
let b = FixedU16::<U4>::from_num(1.0625);
assert_eq!(a.wide_mul(b), 1.328_125);

pub fn mul_add<MulFrac: LeEqU16>(
    self,
    mul: FixedU16<MulFrac>,
    add: FixedU16<Frac>
) -> FixedU16<Frac>
[src]

Multiply and add. Returns self × mul + add.

The mul parameter can have a fixed-point type like self but with a different number of fractional bits.

Panics

When debug assertions are enabled, this method panics if the result overflows. 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_mul_add instead.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(
    Fix::from_num(4).mul_add(Fix::from_num(0.5), Fix::from_num(3)),
    Fix::from_num(5)
);

pub fn rem_euclid(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Remainder for Euclidean division.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(7.5).rem_euclid(Fix::from_num(2)), Fix::from_num(1.5));

pub fn next_power_of_two(self) -> FixedU16<Frac>[src]

Returns the smallest power of two that is ≥ self.

Panics

When debug assertions are enabled, panics if the next power of two is too large to represent. When debug assertions are not enabled, zero can be returned, but it is not considered a breaking change if in the future it panics; if this is not desirable use checked_next_power_of_two instead.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
// 3/8 is 0.0110
let three_eights = Fix::from_bits(0b0110);
// 1/2 is 0.1000
let half = Fix::from_bits(0b1000);
assert_eq!(three_eights.next_power_of_two(), half);
assert_eq!(half.next_power_of_two(), half);

pub fn checked_neg(self) -> Option<FixedU16<Frac>>[src]

Checked negation. Returns the negated value, or None on overflow.

Only zero can be negated without overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(0).checked_neg(), Some(Fix::from_num(0)));
assert_eq!(Fix::from_num(5).checked_neg(), None);

pub fn checked_add(self, rhs: FixedU16<Frac>) -> Option<FixedU16<Frac>>[src]

Checked addition. Returns the sum, or None on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let one = Fix::from_num(1);
assert_eq!((Fix::MAX - one).checked_add(one), Some(Fix::MAX));
assert_eq!(Fix::MAX.checked_add(one), None);

pub fn checked_sub(self, rhs: FixedU16<Frac>) -> Option<FixedU16<Frac>>[src]

Checked subtraction. Returns the difference, or None on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let one = Fix::from_num(1);
assert_eq!((Fix::MIN + one).checked_sub(one), Some(Fix::MIN));
assert_eq!(Fix::MIN.checked_sub(one), None);

pub fn checked_rem(self, rhs: FixedU16<Frac>) -> Option<FixedU16<Frac>>[src]

Checked remainder. Returns the remainder, or None if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(1.5).checked_rem(Fix::from_num(1)), Some(Fix::from_num(0.5)));
assert_eq!(Fix::from_num(1.5).checked_rem(Fix::from_num(0)), None);

pub fn checked_mul_add<MulFrac: LeEqU16>(
    self,
    mul: FixedU16<MulFrac>,
    add: FixedU16<Frac>
) -> Option<FixedU16<Frac>>
[src]

Checked multiply and add. Returns self × mul + add, or None on overflow.

The mul parameter can have a fixed-point type like self but with a different number of fractional bits.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(
    Fix::from_num(4).checked_mul_add(Fix::from_num(0.5), Fix::from_num(3)),
    Some(Fix::from_num(5))
);
assert_eq!(Fix::MAX.checked_mul_add(Fix::from_num(1), Fix::from_num(0)), Some(Fix::MAX));
assert_eq!(Fix::MAX.checked_mul_add(Fix::from_num(1), Fix::from_bits(1)), None);

pub fn checked_mul_int(self, rhs: u16) -> Option<FixedU16<Frac>>[src]

Checked multiplication by an integer. Returns the product, or None on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::MAX.checked_mul_int(1), Some(Fix::MAX));
assert_eq!(Fix::MAX.checked_mul_int(2), None);

pub fn checked_div_int(self, rhs: u16) -> Option<FixedU16<Frac>>[src]

Checked division by an integer. Returns the quotient, or None if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::MAX.checked_div_int(1), Some(Fix::MAX));
assert_eq!(Fix::from_num(1).checked_div_int(0), None);

pub fn checked_rem_euclid(self, rhs: FixedU16<Frac>) -> Option<FixedU16<Frac>>[src]

Checked remainder for Euclidean division. Returns the remainder, or None if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let num = Fix::from_num(7.5);
assert_eq!(num.checked_rem_euclid(Fix::from_num(2)), Some(Fix::from_num(1.5)));
assert_eq!(num.checked_rem_euclid(Fix::from_num(0)), None);

pub fn checked_shl(self, rhs: u32) -> Option<FixedU16<Frac>>[src]

Checked shift left. Returns the shifted number, or None if rhs ≥ 16.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!((Fix::from_num(1) / 2).checked_shl(3), Some(Fix::from_num(4)));
assert_eq!((Fix::from_num(1) / 2).checked_shl(16), None);

pub fn checked_shr(self, rhs: u32) -> Option<FixedU16<Frac>>[src]

Checked shift right. Returns the shifted number, or None if rhs ≥ 16.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(4).checked_shr(3), Some(Fix::from_num(1) / 2));
assert_eq!(Fix::from_num(4).checked_shr(16), None);

pub fn checked_next_power_of_two(self) -> Option<FixedU16<Frac>>[src]

Returns the smallest power of two that is ≥ self, or None if the next power of two is too large to represent.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
// 3/8 is 0.0110
let three_eights = Fix::from_bits(0b0110);
// 1/2 is 0.1000
let half = Fix::from_bits(0b1000);
assert_eq!(three_eights.checked_next_power_of_two(), Some(half));
assert!(Fix::MAX.checked_next_power_of_two().is_none());

pub const fn saturating_neg(self) -> FixedU16<Frac>[src]

Saturating negation. Returns the negated value, saturating on overflow.

This method always returns zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(0).saturating_neg(), Fix::from_num(0));
assert_eq!(Fix::from_num(5).saturating_neg(), Fix::from_num(0));

pub const fn saturating_add(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Saturating addition. Returns the sum, saturating on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(3).saturating_add(Fix::from_num(2)), Fix::from_num(5));
assert_eq!(Fix::MAX.saturating_add(Fix::from_num(1)), Fix::MAX);

pub const fn saturating_sub(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Saturating subtraction. Returns the difference, saturating on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(5).saturating_sub(Fix::from_num(3)), Fix::from_num(2));
assert_eq!(Fix::from_num(0).saturating_sub(Fix::from_num(1)), Fix::from_num(0));

pub fn saturating_mul_add<MulFrac: LeEqU16>(
    self,
    mul: FixedU16<MulFrac>,
    add: FixedU16<Frac>
) -> FixedU16<Frac>
[src]

Saturating multiply and add. Returns self × mul + add, saturating on overflow.

The mul parameter can have a fixed-point type like self but with a different number of fractional bits.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(
    Fix::from_num(4).saturating_mul_add(Fix::from_num(0.5), Fix::from_num(3)),
    Fix::from_num(5)
);
let half_max = Fix::MAX / 2;
assert_eq!(half_max.saturating_mul_add(Fix::from_num(3), half_max), Fix::MAX);

pub const fn saturating_mul_int(self, rhs: u16) -> FixedU16<Frac>[src]

Saturating multiplication by an integer. Returns the product, saturating on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(3).saturating_mul_int(2), Fix::from_num(6));
assert_eq!(Fix::MAX.saturating_mul_int(2), Fix::MAX);

pub const fn wrapping_neg(self) -> FixedU16<Frac>[src]

Wrapping negation. Returns the negated value, wrapping on overflow.

Only zero can be negated without overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(0).wrapping_neg(), Fix::from_num(0));
assert_eq!(Fix::from_num(5).wrapping_neg(), Fix::wrapping_from_num(-5));
let neg_five_bits = !Fix::from_num(5).to_bits() + 1;
assert_eq!(Fix::from_num(5).wrapping_neg(), Fix::from_bits(neg_five_bits));

pub const fn wrapping_add(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Wrapping addition. Returns the sum, wrapping on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let one = Fix::from_num(1);
let one_minus_bit = one - Fix::from_bits(1);
assert_eq!(Fix::from_num(3).wrapping_add(Fix::from_num(2)), Fix::from_num(5));
assert_eq!(Fix::MAX.wrapping_add(one), one_minus_bit);

pub const fn wrapping_sub(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Wrapping subtraction. Returns the difference, wrapping on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let one = Fix::from_num(1);
let one_minus_bit = one - Fix::from_bits(1);
assert_eq!(Fix::from_num(5).wrapping_sub(Fix::from_num(3)), Fix::from_num(2));
assert_eq!(Fix::from_num(0).wrapping_sub(one), Fix::MAX - one_minus_bit);

pub fn wrapping_mul_add<MulFrac: LeEqU16>(
    self,
    mul: FixedU16<MulFrac>,
    add: FixedU16<Frac>
) -> FixedU16<Frac>
[src]

Wrapping multiply and add. Returns self × mul + add, wrapping on overflow.

The mul parameter can have a fixed-point type like self but with a different number of fractional bits.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(
    Fix::from_num(4).wrapping_mul_add(Fix::from_num(0.5), Fix::from_num(3)),
    Fix::from_num(5)
);
assert_eq!(Fix::MAX.wrapping_mul_add(Fix::from_num(1), Fix::from_num(0)), Fix::MAX);
assert_eq!(Fix::MAX.wrapping_mul_add(Fix::from_num(1), Fix::from_bits(1)), Fix::MIN);
let wrapped = Fix::from_bits(!0 << 2);
assert_eq!(Fix::MAX.wrapping_mul_add(Fix::from_num(3), Fix::MAX), wrapped);

pub const fn wrapping_mul_int(self, rhs: u16) -> FixedU16<Frac>[src]

Wrapping multiplication by an integer. Returns the product, wrapping on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(3).wrapping_mul_int(2), Fix::from_num(6));
let wrapped = Fix::from_bits(!0 << 2);
assert_eq!(Fix::MAX.wrapping_mul_int(4), wrapped);

pub fn wrapping_div_int(self, rhs: u16) -> FixedU16<Frac>[src]

Wrapping division by an integer. Returns the quotient.

Can never overflow for unsigned values.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
// 1.5 is binary 1.1
let one_point_5 = Fix::from_bits(0b11 << (4 - 1));
assert_eq!(Fix::from_num(3).wrapping_div_int(2), one_point_5);

pub const fn wrapping_shl(self, rhs: u32) -> FixedU16<Frac>[src]

Wrapping shift left. Wraps rhs if rhs ≥ 16, then shifts and returns the number.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!((Fix::from_num(1) / 2).wrapping_shl(3), Fix::from_num(4));
assert_eq!((Fix::from_num(1) / 2).wrapping_shl(3 + 16), Fix::from_num(4));

pub const fn wrapping_shr(self, rhs: u32) -> FixedU16<Frac>[src]

Wrapping shift right. Wraps rhs if rhs ≥ 16, then shifts and returns the number.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!((Fix::from_num(4)).wrapping_shr(3), Fix::from_num(1) / 2);
assert_eq!((Fix::from_num(4)).wrapping_shr(3 + 16), Fix::from_num(1) / 2);

pub fn wrapping_next_power_of_two(self) -> FixedU16<Frac>[src]

Returns the smallest power of two that is ≥ self, wrapping to 0 if the next power of two is too large to represent.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
// 3/8 is 0.0110
let three_eights = Fix::from_bits(0b0110);
// 1/2 is 0.1000
let half = Fix::from_bits(0b1000);
assert_eq!(three_eights.wrapping_next_power_of_two(), half);
assert_eq!(Fix::MAX.wrapping_next_power_of_two(), 0);

pub fn unwrapped_neg(self) -> FixedU16<Frac>[src]

Unwrapped negation. Returns the negated value, panicking on overflow.

Only zero can be negated without overflow.

Panics

Panics if the result does not fit.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(0).unwrapped_neg(), Fix::from_num(0));

The following panics because of overflow.

ⓘThis example panics
use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let _overflow = Fix::from_num(5).unwrapped_neg();

pub fn unwrapped_add(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Unwrapped addition. Returns the sum, panicking on overflow.

Panics

Panics if the result does not fit.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(3).unwrapped_add(Fix::from_num(2)), Fix::from_num(5));

The following panics because of overflow.

ⓘThis example panics
use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let _overflow = Fix::MAX.unwrapped_add(Fix::from_bits(1));

pub fn unwrapped_sub(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Unwrapped subtraction. Returns the difference, panicking on overflow.

Panics

Panics if the result does not fit.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(5).unwrapped_sub(Fix::from_num(3)), Fix::from_num(2));

The following panics because of overflow.

ⓘThis example panics
use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let _overflow = Fix::MIN.unwrapped_sub(Fix::from_bits(1));

pub fn unwrapped_mul_add<MulFrac: LeEqU16>(
    self,
    mul: FixedU16<MulFrac>,
    add: FixedU16<Frac>
) -> FixedU16<Frac>
[src]

Unwrapped multiply and add. Returns self × mul + add, panicking on overflow.

The mul parameter can have a fixed-point type like self but with a different number of fractional bits.

Panics

Panics if the result does not fit.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(
    Fix::from_num(4).unwrapped_mul_add(Fix::from_num(0.5), Fix::from_num(3)),
    Fix::from_num(5)
);

The following panics because of overflow.

ⓘThis example panics
use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let _overflow = Fix::MAX.unwrapped_mul_add(Fix::from_num(1), Fix::from_bits(1));

pub fn unwrapped_mul_int(self, rhs: u16) -> FixedU16<Frac>[src]

Unwrapped multiplication by an integer. Returns the product, panicking on overflow.

Panics

Panics if the result does not fit.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(3).unwrapped_mul_int(2), Fix::from_num(6));

The following panics because of overflow.

ⓘThis example panics
use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let _overflow = Fix::MAX.unwrapped_mul_int(4);

pub fn unwrapped_div_int(self, rhs: u16) -> FixedU16<Frac>[src]

Unwrapped division by an integer. Returns the quotient.

Can never overflow for unsigned values.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
// 1.5 is binary 1.1
let one_point_5 = Fix::from_bits(0b11 << (4 - 1));
assert_eq!(Fix::from_num(3).unwrapped_div_int(2), one_point_5);

pub fn unwrapped_shl(self, rhs: u32) -> FixedU16<Frac>[src]

Unwrapped shift left. Panics if rhs ≥ 16.

Panics

Panics if rhs ≥ 16.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!((Fix::from_num(1) / 2).unwrapped_shl(3), Fix::from_num(4));

The following panics because of overflow.

ⓘThis example panics
use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let _overflow = Fix::from_num(1).unwrapped_shl(16);

pub fn unwrapped_shr(self, rhs: u32) -> FixedU16<Frac>[src]

Unwrapped shift right. Panics if rhs ≥ 16.

Panics

Panics if rhs ≥ 16.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!((Fix::from_num(4)).unwrapped_shr(3), Fix::from_num(1) / 2);

The following panics because of overflow.

ⓘThis example panics
use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let _overflow = Fix::from_num(1).unwrapped_shr(16);

pub fn unwrapped_next_power_of_two(self) -> FixedU16<Frac>[src]

Returns the smallest power of two that is ≥ self, panicking if the next power of two is too large to represent.

Panics

Panics if the result does not fit.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
// 3/8 is 0.0110
let three_eights = Fix::from_bits(0b0110);
// 1/2 is 0.1000
let half = Fix::from_bits(0b1000);
assert_eq!(three_eights.unwrapped_next_power_of_two(), half);

The following panics because of overflow.

ⓘThis example panics
use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let _overflow = Fix::MAX.unwrapped_next_power_of_two();

pub const fn overflowing_neg(self) -> (FixedU16<Frac>, bool)[src]

Overflowing negation.

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

Only zero can be negated without overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(0).overflowing_neg(), (Fix::from_num(0), false));
assert_eq!(Fix::from_num(5).overflowing_neg(), Fix::overflowing_from_num(-5));
let neg_five_bits = !Fix::from_num(5).to_bits() + 1;
assert_eq!(Fix::from_num(5).overflowing_neg(), (Fix::from_bits(neg_five_bits), true));

pub const fn overflowing_add(
    self,
    rhs: FixedU16<Frac>
) -> (FixedU16<Frac>, bool)
[src]

Overflowing addition.

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

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let one = Fix::from_num(1);
let one_minus_bit = one - Fix::from_bits(1);
assert_eq!(Fix::from_num(3).overflowing_add(Fix::from_num(2)), (Fix::from_num(5), false));
assert_eq!(Fix::MAX.overflowing_add(one), (one_minus_bit, true));

pub const fn overflowing_sub(
    self,
    rhs: FixedU16<Frac>
) -> (FixedU16<Frac>, bool)
[src]

Overflowing subtraction.

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

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let one = Fix::from_num(1);
let one_minus_bit = one - Fix::from_bits(1);
assert_eq!(Fix::from_num(5).overflowing_sub(Fix::from_num(3)), (Fix::from_num(2), false));
assert_eq!(Fix::from_num(0).overflowing_sub(one), (Fix::MAX - one_minus_bit, true));

pub fn overflowing_mul_add<MulFrac: LeEqU16>(
    self,
    mul: FixedU16<MulFrac>,
    add: FixedU16<Frac>
) -> (FixedU16<Frac>, bool)
[src]

Overflowing multiply and add.

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

The mul parameter can have a fixed-point type like self but with a different number of fractional bits.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(
    Fix::MAX.overflowing_mul_add(Fix::from_num(1), Fix::from_num(0)),
    (Fix::MAX, false)
);
assert_eq!(
    Fix::MAX.overflowing_mul_add(Fix::from_num(1), Fix::from_bits(1)),
    (Fix::MIN, true)
);
assert_eq!(
    Fix::MAX.overflowing_mul_add(Fix::from_num(3), Fix::MAX),
    (Fix::from_bits(!0 << 2), true)
);

pub const fn overflowing_mul_int(self, rhs: u16) -> (FixedU16<Frac>, bool)[src]

Overflowing multiplication by an integer.

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

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(3).overflowing_mul_int(2), (Fix::from_num(6), false));
let wrapped = Fix::from_bits(!0 << 2);
assert_eq!(Fix::MAX.overflowing_mul_int(4), (wrapped, true));

pub fn overflowing_div_int(self, rhs: u16) -> (FixedU16<Frac>, bool)[src]

Overflowing division by an integer.

Returns a tuple of the quotient and false, as the division can never overflow for unsigned values.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
// 1.5 is binary 1.1
let one_point_5 = Fix::from_bits(0b11 << (4 - 1));
assert_eq!(Fix::from_num(3).overflowing_div_int(2), (one_point_5, false));

pub const fn overflowing_shl(self, rhs: u32) -> (FixedU16<Frac>, bool)[src]

Overflowing shift left.

Returns a tuple of the shifted value and a bool indicating whether an overflow has occurred. Overflow occurs when rhs ≥ 16. On overflow rhs is wrapped before the shift operation.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!((Fix::from_num(1) / 2).overflowing_shl(3), (Fix::from_num(4), false));
assert_eq!((Fix::from_num(1) / 2).overflowing_shl(3 + 16), (Fix::from_num(4), true));

pub const fn overflowing_shr(self, rhs: u32) -> (FixedU16<Frac>, bool)[src]

Overflowing shift right.

Returns a tuple of the shifted value and a bool indicating whether an overflow has occurred. Overflow occurs when rhs ≥ 16. On overflow rhs is wrapped before the shift operation.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!((Fix::from_num(4)).overflowing_shr(3), (Fix::from_num(1) / 2, false));
assert_eq!((Fix::from_num(4)).overflowing_shr(3 + 16), (Fix::from_num(1) / 2, true));

impl<Frac: LeEqU16> FixedU16<Frac>[src]

The implementation of items in this block depends on the number of fractional bits Frac.

pub const INT_NBITS: u32[src]

The number of integer bits.

Examples

use fixed::{types::extra::U6, FixedU16};
type Fix = FixedU16<U6>;
assert_eq!(Fix::INT_NBITS, 16 - 6);

pub const FRAC_NBITS: u32[src]

The number of fractional bits.

Examples

use fixed::{types::extra::U6, FixedU16};
type Fix = FixedU16<U6>;
assert_eq!(Fix::FRAC_NBITS, 6);

pub fn from_num<Src: ToFixed>(src: Src) -> FixedU16<Frac>[src]

Creates a fixed-point number from another number.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize.
  • A floating-point number of type f32 or f64. If the f16 feature is enabled, it can also be of type f16 or bf16. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other number src for which ToFixed is implemented, in which case this method returns src.to_fixed().

Panics

For floating-point numbers, panics if the value is not finite.

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_num instead.

Examples

use fixed::{types::extra::U4, types::I16F16, FixedU16};
type Fix = FixedU16<U4>;

// 1.75 is 1.11 in binary
let src = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(Fix::from_num(src), Fix::from_bits(0b111 << (4 - 2)));

assert_eq!(Fix::from_num(3i32), Fix::from_bits(3 << 4));
assert_eq!(Fix::from_num(3i64), Fix::from_bits(3 << 4));

assert_eq!(Fix::from_num(1.75f32), Fix::from_bits(0b111 << (4 - 2)));
assert_eq!(Fix::from_num(1.75f64), Fix::from_bits(0b111 << (4-2)));

pub fn to_num<Dst: FromFixed>(self) -> Dst[src]

Converts a fixed-point number to another number.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize. Any fractional bits are discarded, which rounds towards −∞.
  • A floating-point number of type f32 or f64. If the f16 feature is enabled, it can also be of type f16 or bf16. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other type Dst for which FromFixed is implemented, in which case this method returns Dst::from_fixed(self).

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_to_num instead.

Examples

use fixed::{types::extra::U4, types::I30F2, FixedU16};
type Fix = FixedU16<U4>;

// 1.75 is 1.11 in binary
let src = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(src.to_num::<I30F2>(), I30F2::from_bits(0b111));
// src >> 2 is 0.0111, which for I30F2 is truncated to 0.01
assert_eq!((src >> 2u32).to_num::<I30F2>(), I30F2::from_bits(1));

// 2.5 is 10.1 in binary
let two_point_5 = Fix::from_bits(0b101 << (4 - 1));
assert_eq!(two_point_5.to_num::<i32>(), 2);
assert_eq!(two_point_5.to_num::<i64>(), 2);

// 1.625 is 1.101 in binary
let one_point_625 = Fix::from_bits(0b1101 << (4 - 3));
assert_eq!(one_point_625.to_num::<f32>(), 1.625f32);
assert_eq!(one_point_625.to_num::<f64>(), 1.625f64);

pub fn checked_from_num<Src: ToFixed>(src: Src) -> Option<FixedU16<Frac>>[src]

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

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize.
  • A floating-point number of type f32 or f64. If the f16 feature is enabled, it can also be of type f16 or bf16. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other number src for which ToFixed is implemented, in which case this method returns src.checked_to_fixed().

Examples

use fixed::{
    types::extra::{U2, U4},
    types::I16F16,
    FixedU16,
};
type Fix = FixedU16<U4>;

// 1.75 is 1.11 in binary
let src = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(Fix::checked_from_num(src), Some(Fix::from_bits(0b111 << (4 - 2))));
let too_large = FixedU16::<U2>::MAX;
assert!(Fix::checked_from_num(too_large).is_none());

assert_eq!(Fix::checked_from_num(3), Some(Fix::from_bits(3 << 4)));
let too_large = u16::MAX;
assert!(Fix::checked_from_num(too_large).is_none());
let too_small = -1;
assert!(Fix::checked_from_num(too_small).is_none());

// 1.75 is 1.11 in binary
let expected = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(Fix::checked_from_num(1.75f32), Some(expected));
assert_eq!(Fix::checked_from_num(1.75f64), Some(expected));
assert!(Fix::checked_from_num(2e38).is_none());
assert!(Fix::checked_from_num(std::f64::NAN).is_none());

pub fn checked_to_num<Dst: FromFixed>(self) -> Option<Dst>[src]

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

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize. Any fractional bits are discarded, which rounds towards −∞.
  • A floating-point number of type f32 or f64. If the f16 feature is enabled, it can also be of type f16 or bf16. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other type Dst for which FromFixed is implemented, in which case this method returns Dst::checked_from_fixed(self).

Examples

use fixed::{
    types::extra::{U0, U4, U6},
    types::I16F16,
    FixedU16,
};
type Fix = FixedU16<U4>;

// 1.75 is 1.11 in binary
let src = Fix::from_bits(0b111 << (4 - 2));
let expected = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(src.checked_to_num::<I16F16>(), Some(expected));
type TooFewIntBits = FixedU16<U6>;
assert!(Fix::MAX.checked_to_num::<TooFewIntBits>().is_none());

// 2.5 is 10.1 in binary
let two_point_5 = Fix::from_bits(0b101 << (4 - 1));
assert_eq!(two_point_5.checked_to_num::<i32>(), Some(2));
assert_eq!(two_point_5.checked_to_num::<i64>(), Some(2));
type AllInt = FixedU16<U0>;
assert!(AllInt::MAX.checked_to_num::<i16>().is_none());

// 1.625 is 1.101 in binary
let one_point_625 = Fix::from_bits(0b1101 << (4 - 3));
assert_eq!(one_point_625.checked_to_num::<f32>(), Some(1.625f32));

pub fn saturating_from_num<Src: ToFixed>(src: Src) -> FixedU16<Frac>[src]

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

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize.
  • A floating-point number of type f32 or f64. If the f16 feature is enabled, it can also be of type f16 or bf16. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other number src for which ToFixed is implemented, in which case this method returns src.saturating_to_fixed().

Panics

This method panics if the value is a floating-point NaN.

Examples

use fixed::{
    types::extra::{U2, U4},
    types::I16F16,
    FixedU16,
};
type Fix = FixedU16<U4>;

// 1.75 is 1.11 in binary
let src = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(Fix::saturating_from_num(src), Fix::from_bits(0b111 << (4 - 2)));
let too_large = FixedU16::<U2>::MAX;
assert_eq!(Fix::saturating_from_num(too_large), Fix::MAX);

assert_eq!(Fix::saturating_from_num(3), Fix::from_bits(3 << 4));
let too_small = -1;
assert_eq!(Fix::saturating_from_num(too_small), Fix::MIN);

// 1.75 is 1.11 in binary
let expected = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(Fix::saturating_from_num(1.75f32), expected);
assert_eq!(Fix::saturating_from_num(1.75f64), expected);
assert_eq!(Fix::saturating_from_num(2e38), Fix::MAX);
assert_eq!(Fix::saturating_from_num(std::f64::NEG_INFINITY), Fix::MIN);

pub fn saturating_to_num<Dst: FromFixed>(self) -> Dst[src]

Converts a fixed-point number to another number, saturating the value if it does not fit.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize. Any fractional bits are discarded, which rounds towards −∞.
  • A floating-point number of type f32 or f64. If the f16 feature is enabled, it can also be of type f16 or bf16. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other type Dst for which FromFixed is implemented, in which case this method returns Dst::saturating_from_fixed(self).

Examples

use fixed::{
    types::extra::{U0, U4, U6},
    types::I16F16,
    FixedU16,
};
type Fix = FixedU16<U4>;

// 1.75 is 1.11 in binary
let src = Fix::from_bits(0b111 << (4 - 2));
let expected = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(src.saturating_to_num::<I16F16>(), expected);
type TooFewIntBits = FixedU16<U6>;
let saturated = Fix::MAX.saturating_to_num::<TooFewIntBits>();
assert_eq!(saturated, TooFewIntBits::MAX);

// 2.5 is 10.1 in binary
let two_point_5 = Fix::from_bits(0b101 << (4 - 1));
assert_eq!(two_point_5.saturating_to_num::<i32>(), 2);
type AllInt = FixedU16<U0>;
assert_eq!(AllInt::MAX.saturating_to_num::<i16>(), i16::MAX);

// 1.625 is 1.101 in binary
let one_point_625 = Fix::from_bits(0b1101 << (4 - 3));
assert_eq!(one_point_625.saturating_to_num::<f32>(), 1.625f32);

pub fn wrapping_from_num<Src: ToFixed>(src: Src) -> FixedU16<Frac>[src]

Creates a fixed-point number from another number, wrapping the value on overflow.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize.
  • A floating-point number of type f32 or f64. If the f16 feature is enabled, it can also be of type f16 or bf16. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other number src for which ToFixed is implemented, in which case this method returns src.wrapping_to_fixed().

Panics

For floating-point numbers, panics if the value is not finite.

Examples

use fixed::{
    types::extra::{U0, U4},
    types::I16F16,
    FixedU16,
};
type Fix = FixedU16<U4>;

// 1.75 is 1.11 in binary
let src = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(Fix::wrapping_from_num(src), Fix::from_bits(0b111 << (4 - 2)));
// integer 0b1101 << (16 - 7) will wrap to fixed-point 1010...
let too_large = FixedU16::<U0>::from_bits(0b1101 << (16 - 7));
let wrapped = Fix::from_bits(0b1010 << (16 - 4));
assert_eq!(Fix::wrapping_from_num(too_large), wrapped);

// integer 0b1101 << (16 - 7) will wrap to fixed-point 1010...
let large: u16 = 0b1101 << (16 - 7);
let wrapped = Fix::from_bits(0b1010 << (16 - 4));
assert_eq!(Fix::wrapping_from_num(large), wrapped);

// 1.75 is 1.11 in binary
let expected = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(Fix::wrapping_from_num(1.75f32), expected);
// 1.75 << (16 - 4) wraps to binary 11000...
let large = 1.75 * 2f32.powi(16 - 4);
let wrapped = Fix::from_bits(0b1100 << (16 - 4));
assert_eq!(Fix::wrapping_from_num(large), wrapped);

pub fn wrapping_to_num<Dst: FromFixed>(self) -> Dst[src]

Converts a fixed-point number to another number, wrapping the value on overflow.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize. Any fractional bits are discarded, which rounds towards −∞.
  • A floating-point number of type f32 or f64. If the f16 feature is enabled, it can also be of type f16 or bf16. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other type Dst for which FromFixed is implemented, in which case this method returns Dst::wrapping_from_fixed(self).

Examples

use fixed::{
    types::extra::{U0, U4, U6},
    types::I16F16,
    FixedU16,
};
type Fix = FixedU16<U4>;

// 1.75 is 1.11 in binary
let src = Fix::from_bits(0b111 << (4 - 2));
let expected = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(src.wrapping_to_num::<I16F16>(), expected);
type TooFewIntBits = FixedU16<U6>;
let wrapped = TooFewIntBits::from_bits(Fix::MAX.to_bits() << 2);
assert_eq!(Fix::MAX.wrapping_to_num::<TooFewIntBits>(), wrapped);

// 2.5 is 10.1 in binary
let two_point_5 = Fix::from_bits(0b101 << (4 - 1));
assert_eq!(two_point_5.wrapping_to_num::<i32>(), 2);
type AllInt = FixedU16<U0>;
assert_eq!(AllInt::MAX.wrapping_to_num::<i16>(), -1);

// 1.625 is 1.101 in binary
let one_point_625 = Fix::from_bits(0b1101 << (4 - 3));
assert_eq!(one_point_625.wrapping_to_num::<f32>(), 1.625f32);

pub fn unwrapped_from_num<Src: ToFixed>(src: Src) -> FixedU16<Frac>[src]

Creates a fixed-point number from another number, panicking on overflow.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize.
  • A floating-point number of type f32 or f64. If the f16 feature is enabled, it can also be of type f16 or bf16. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other number src for which ToFixed is implemented.

Panics

Panics if the value does not fit.

For floating-point numbers, also panics if the value is not finite.

Examples

use fixed::{
    types::{extra::U4, I16F16},
    FixedU16,
};
type Fix = FixedU16<U4>;

// 1.75 is 1.11 in binary
let src = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(Fix::unwrapped_from_num(src), Fix::from_bits(0b111 << (4 - 2)));

The following panics because of overflow.

ⓘThis example panics
use fixed::{
    types::extra::{U0, U4},
    FixedU16,
};
type Fix = FixedU16<U4>;
let too_large = FixedU16::<U0>::from_bits(0b1101 << (16 - 7));
let _overflow = Fix::unwrapped_from_num(too_large);

pub fn unwrapped_to_num<Dst: FromFixed>(self) -> Dst[src]

Converts a fixed-point number to another number, panicking on overflow.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize. Any fractional bits are discarded, which rounds towards −∞.
  • A floating-point number of type f32 or f64. If the f16 feature is enabled, it can also be of type f16 or bf16. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other type Dst for which FromFixed is implemented.

Panics

Panics if the value does not fit.

Examples

use fixed::{
    types::{extra::U4, I16F16},
    FixedU16,
};
type Fix = FixedU16<U4>;

// 1.75 is 1.11 in binary
let src = Fix::from_bits(0b111 << (4 - 2));
let expected = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(src.unwrapped_to_num::<I16F16>(), expected);

The following panics because of overflow.

ⓘThis example panics
use fixed::{
    types::extra::{U4, U6},
    FixedU16,
};
type Fix = FixedU16<U4>;
type TooFewIntBits = FixedU16<U6>;
let _overflow = Fix::MAX.unwrapped_to_num::<TooFewIntBits>();

pub fn overflowing_from_num<Src: ToFixed>(src: Src) -> (FixedU16<Frac>, bool)[src]

Creates a fixed-point number from another number.

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

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize.
  • A floating-point number of type f32 or f64. If the f16 feature is enabled, it can also be of type f16 or bf16. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other number src for which ToFixed is implemented, in which case this method returns src.overflowing_to_fixed().

Panics

For floating-point numbers, panics if the value is not finite.

Examples

use fixed::{
    types::extra::{U0, U4},
    types::I16F16,
    FixedU16,
};
type Fix = FixedU16<U4>;

// 1.75 is 1.11 in binary
let src = I16F16::from_bits(0b111 << (16 - 2));
let expected = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(Fix::overflowing_from_num(src), (expected, false));
// integer 0b1101 << (16 - 7) will wrap to fixed-point 1010...
let too_large = FixedU16::<U0>::from_bits(0b1101 << (16 - 7));
let wrapped = Fix::from_bits(0b1010 << (16 - 4));
assert_eq!(Fix::overflowing_from_num(too_large), (wrapped, true));

assert_eq!(Fix::overflowing_from_num(3), (Fix::from_bits(3 << 4), false));
// integer 0b1101 << (16 - 7) will wrap to fixed-point 1010...
let large: u16 = 0b1101 << (16 - 7);
let wrapped = Fix::from_bits(0b1010 << (16 - 4));
assert_eq!(Fix::overflowing_from_num(large), (wrapped, true));

// 1.75 is 1.11 in binary
let expected = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(Fix::overflowing_from_num(1.75f32), (expected, false));
// 1.75 << (16 - 4) wraps to binary 11000...
let large = 1.75 * 2f32.powi(16 - 4);
let wrapped = Fix::from_bits(0b1100 << (16 - 4));
assert_eq!(Fix::overflowing_from_num(large), (wrapped, true));

pub fn overflowing_to_num<Dst: FromFixed>(self) -> (Dst, bool)[src]

Converts a fixed-point number to another number.

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

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize. Any fractional bits are discarded, which rounds towards −∞.
  • A floating-point number of type f32 or f64. If the f16 feature is enabled, it can also be of type f16 or bf16. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other type Dst for which FromFixed is implemented, in which case this method returns Dst::overflowing_from_fixed(self).

Examples

use fixed::{
    types::extra::{U0, U4, U6},
    types::I16F16,
    FixedU16,
};
type Fix = FixedU16<U4>;

// 1.75 is 1.11 in binary
let src = Fix::from_bits(0b111 << (4 - 2));
let expected = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(src.overflowing_to_num::<I16F16>(), (expected, false));
type TooFewIntBits = FixedU16<U6>;
let wrapped = TooFewIntBits::from_bits(Fix::MAX.to_bits() << 2);
assert_eq!(Fix::MAX.overflowing_to_num::<TooFewIntBits>(), (wrapped, true));

// 2.5 is 10.1 in binary
let two_point_5 = Fix::from_bits(0b101 << (4 - 1));
assert_eq!(two_point_5.overflowing_to_num::<i32>(), (2, false));
let does_not_fit = FixedU16::<U0>::MAX;
let wrapped = -1i16;
assert_eq!(does_not_fit.overflowing_to_num::<i16>(), (wrapped, true));

// 1.625 is 1.101 in binary
let one_point_625 = Fix::from_bits(0b1101 << (4 - 3));
assert_eq!(one_point_625.overflowing_to_num::<f32>(), (1.625f32, false));

pub fn from_str_binary(src: &str) -> Result<FixedU16<Frac>, ParseFixedError>[src]

Parses a string slice containing binary digits to return a fixed-point number.

Rounding is to the nearest, with ties rounded to even.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
// 1.75 is 1.11 in binary
let f = Fix::from_str_binary("1.11");
let check = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(f, Ok(check));

pub fn from_str_octal(src: &str) -> Result<FixedU16<Frac>, ParseFixedError>[src]

Parses a string slice containing octal digits to return a fixed-point number.

Rounding is to the nearest, with ties rounded to even.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
// 1.75 is 1.11 in binary, 1.6 in octal
let f = Fix::from_str_octal("1.6");
let check = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(f, Ok(check));

pub fn from_str_hex(src: &str) -> Result<FixedU16<Frac>, ParseFixedError>[src]

Parses a string slice containing hexadecimal digits to return a fixed-point number.

Rounding is to the nearest, with ties rounded to even.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
// 1.75 is 1.11 in binary, 1.C in hexadecimal
let f = Fix::from_str_hex("1.C");
let check = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(f, Ok(check));

pub fn saturating_from_str(src: &str) -> Result<FixedU16<Frac>, ParseFixedError>[src]

Parses a string slice containing decimal digits to return a fixed-point number, saturating on overflow.

Rounding is to the nearest, with ties rounded to even.

Examples

use fixed::types::U8F8;
assert_eq!(U8F8::saturating_from_str("9999"), Ok(U8F8::MAX));
assert_eq!(U8F8::saturating_from_str("-1"), Ok(U8F8::from_num(0)));

pub fn saturating_from_str_binary(
    src: &str
) -> Result<FixedU16<Frac>, ParseFixedError>
[src]

Parses a string slice containing binary digits to return a fixed-point number, saturating on overflow.

Rounding is to the nearest, with ties rounded to even.

Examples

use fixed::types::U8F8;
assert_eq!(U8F8::saturating_from_str_binary("101100111000"), Ok(U8F8::MAX));
assert_eq!(U8F8::saturating_from_str_binary("-1"), Ok(U8F8::from_num(0)));

pub fn saturating_from_str_octal(
    src: &str
) -> Result<FixedU16<Frac>, ParseFixedError>
[src]

Parses a string slice containing octal digits to return a fixed-point number, saturating on overflow.

Rounding is to the nearest, with ties rounded to even.

Examples

use fixed::types::U8F8;
assert_eq!(U8F8::saturating_from_str_octal("7777"), Ok(U8F8::MAX));
assert_eq!(U8F8::saturating_from_str_octal("-1"), Ok(U8F8::from_num(0)));

pub fn saturating_from_str_hex(
    src: &str
) -> Result<FixedU16<Frac>, ParseFixedError>
[src]

Prases a string slice containing hexadecimal digits to return a fixed-point number, saturating on overflow.

Rounding is to the nearest, with ties rounded to even.

Examples

use fixed::types::U8F8;
assert_eq!(U8F8::saturating_from_str_hex("FFFF"), Ok(U8F8::MAX));
assert_eq!(U8F8::saturating_from_str_hex("-1"), Ok(U8F8::from_num(0)));

pub fn wrapping_from_str(src: &str) -> Result<FixedU16<Frac>, ParseFixedError>[src]

Parses a string slice containing decimal digits to return a fixed-point number, wrapping on overflow.

Rounding is to the nearest, with ties rounded to even.

Examples

use fixed::types::U8F8;
// 9999.5 = 15.5 + 256 × n
assert_eq!(U8F8::wrapping_from_str("9999.5"), Ok(U8F8::from_num(15.5)));
assert_eq!(U8F8::wrapping_from_str("-9999.5"), Ok(U8F8::from_num(240.5)));

pub fn wrapping_from_str_binary(
    src: &str
) -> Result<FixedU16<Frac>, ParseFixedError>
[src]

Parses a string slice containing binary digits to return a fixed-point number, wrapping on overflow.

Rounding is to the nearest, with ties rounded to even.

Examples

use fixed::types::U8F8;
let check = U8F8::from_bits(0b1110001 << (8 - 1));
assert_eq!(U8F8::wrapping_from_str_binary("101100111000.1"), Ok(check));
assert_eq!(U8F8::wrapping_from_str_binary("-101100111000.1"), Ok(check.wrapping_neg()));

pub fn wrapping_from_str_octal(
    src: &str
) -> Result<FixedU16<Frac>, ParseFixedError>
[src]

Parses a string slice containing octal digits to return a fixed-point number, wrapping on overflow.

Rounding is to the nearest, with ties rounded to even.

Examples

use fixed::types::U8F8;
let check = U8F8::from_bits(0o1654 << (8 - 3));
assert_eq!(U8F8::wrapping_from_str_octal("7165.4"), Ok(check));
assert_eq!(U8F8::wrapping_from_str_octal("-7165.4"), Ok(check.wrapping_neg()));

pub fn wrapping_from_str_hex(
    src: &str
) -> Result<FixedU16<Frac>, ParseFixedError>
[src]

Parses a string slice containing hexadecimal digits to return a fixed-point number, wrapping on overflow.

Rounding is to the nearest, with ties rounded to even.

Examples

use fixed::types::U8F8;
let check = U8F8::from_bits(0xFFE);
assert_eq!(U8F8::wrapping_from_str_hex("C0F.FE"), Ok(check));
assert_eq!(U8F8::wrapping_from_str_hex("-C0F.FE"), Ok(check.wrapping_neg()));

pub fn overflowing_from_str(
    src: &str
) -> Result<(FixedU16<Frac>, bool), ParseFixedError>
[src]

Parses a string slice containing decimal digits to return a fixed-point number.

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

Rounding is to the nearest, with ties rounded to even.

Examples

use fixed::types::U8F8;
assert_eq!(U8F8::overflowing_from_str("99.5"), Ok((U8F8::from_num(99.5), false)));
// 9999.5 = 15.5 + 256 × n
assert_eq!(U8F8::overflowing_from_str("9999.5"), Ok((U8F8::from_num(15.5), true)));

pub fn overflowing_from_str_binary(
    src: &str
) -> Result<(FixedU16<Frac>, bool), ParseFixedError>
[src]

Parses a string slice containing binary digits to return a fixed-point number.

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

Rounding is to the nearest, with ties rounded to even.

Examples

use fixed::types::U8F8;
let check = U8F8::from_bits(0b1110001 << (8 - 1));
assert_eq!(U8F8::overflowing_from_str_binary("111000.1"), Ok((check, false)));
assert_eq!(U8F8::overflowing_from_str_binary("101100111000.1"), Ok((check, true)));

pub fn overflowing_from_str_octal(
    src: &str
) -> Result<(FixedU16<Frac>, bool), ParseFixedError>
[src]

Parses a string slice containing octal digits to return a fixed-point number.

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

Rounding is to the nearest, with ties rounded to even.

Examples

use fixed::types::U8F8;
let check = U8F8::from_bits(0o1654 << (8 - 3));
assert_eq!(U8F8::overflowing_from_str_octal("165.4"), Ok((check, false)));
assert_eq!(U8F8::overflowing_from_str_octal("7165.4"), Ok((check, true)));

pub fn overflowing_from_str_hex(
    src: &str
) -> Result<(FixedU16<Frac>, bool), ParseFixedError>
[src]

Parses a string slice containing hexadecimal digits to return a fixed-point number.

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

Rounding is to the nearest, with ties rounded to even.

Examples

use fixed::types::U8F8;
let check = U8F8::from_bits(0xFFE);
assert_eq!(U8F8::overflowing_from_str_hex("F.FE"), Ok((check, false)));
assert_eq!(U8F8::overflowing_from_str_hex("C0F.FE"), Ok((check, true)));

pub fn int(self) -> FixedU16<Frac>[src]

Returns the integer part.

Note that for unsigned numbers, this is equivalent to floor.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
// 0010.0000
let two = Fix::from_num(2);
// 0010.0100
let two_and_quarter = two + two / 8;
assert_eq!(two_and_quarter.int(), two);

pub fn frac(self) -> FixedU16<Frac>[src]

Returns the fractional part.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
// 0000.0100
let quarter = Fix::from_num(1) / 4;
// 0010.0100
let two_and_quarter = quarter * 9;
assert_eq!(two_and_quarter.frac(), quarter);

pub fn round_to_zero(self) -> FixedU16<Frac>[src]

Rounds to the next integer towards 0.

Note that for unsigned numbers, this is equivalent to floor.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.1).round_to_zero(), Fix::from_num(2));
assert_eq!(Fix::from_num(2.9).round_to_zero(), Fix::from_num(2));

pub fn ceil(self) -> FixedU16<Frac>[src]

Rounds to the next integer towards +∞.

Panics

When debug assertions are enabled, panics if the result does not fit. When debug assertions are not enabled, the wrapped result can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_ceil instead.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).ceil(), Fix::from_num(3));

pub fn floor(self) -> FixedU16<Frac>[src]

Rounds to the next integer towards −∞.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).floor(), Fix::from_num(2));

pub fn round(self) -> FixedU16<Frac>[src]

Rounds to the nearest integer, with ties rounded away from zero.

Panics

When debug assertions are enabled, panics if the result does not fit. When debug assertions are not enabled, the wrapped result can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_round instead.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).round(), Fix::from_num(3));

pub fn round_ties_to_even(self) -> FixedU16<Frac>[src]

Rounds to the nearest integer, with ties rounded to even.

Panics

When debug assertions are enabled, panics if the result does not fit. When debug assertions are not enabled, the wrapped result can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_round_ties_to_even instead.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).round_ties_to_even(), Fix::from_num(2));
assert_eq!(Fix::from_num(3.5).round_ties_to_even(), Fix::from_num(4));

pub fn checked_ceil(self) -> Option<FixedU16<Frac>>[src]

Checked ceil. Rounds to the next integer towards +∞, returning None on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).checked_ceil(), Some(Fix::from_num(3)));
assert!(Fix::MAX.checked_ceil().is_none());

pub fn checked_floor(self) -> Option<FixedU16<Frac>>[src]

Checked floor. Rounds to the next integer towards −∞.Always returns Some for unsigned values.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).checked_floor(), Some(Fix::from_num(2)));

pub fn checked_round(self) -> Option<FixedU16<Frac>>[src]

Checked round. Rounds to the nearest integer, with ties rounded away from zero, returning None on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).checked_round(), Some(Fix::from_num(3)));
assert!(Fix::MAX.checked_round().is_none());

pub fn checked_round_ties_to_even(self) -> Option<FixedU16<Frac>>[src]

Checked round. Rounds to the nearest integer, with ties rounded to even, returning None on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).checked_round_ties_to_even(), Some(Fix::from_num(2)));
assert_eq!(Fix::from_num(3.5).checked_round_ties_to_even(), Some(Fix::from_num(4)));
assert!(Fix::MAX.checked_round_ties_to_even().is_none());

pub fn saturating_ceil(self) -> FixedU16<Frac>[src]

Saturating ceil. Rounds to the next integer towards +∞, saturating on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).saturating_ceil(), Fix::from_num(3));
assert_eq!(Fix::MAX.saturating_ceil(), Fix::MAX);

pub fn saturating_floor(self) -> FixedU16<Frac>[src]

Saturating floor. Rounds to the next integer towards −∞. Cannot overflow for unsigned values.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).saturating_floor(), Fix::from_num(2));

pub fn saturating_round(self) -> FixedU16<Frac>[src]

Saturating round. Rounds to the nearest integer, with ties rounded away from zero, and saturating on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).saturating_round(), Fix::from_num(3));
assert_eq!(Fix::MAX.saturating_round(), Fix::MAX);

pub fn saturating_round_ties_to_even(self) -> FixedU16<Frac>[src]

Saturating round. Rounds to the nearest integer, with ties rounded to even, and saturating on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).saturating_round_ties_to_even(), Fix::from_num(2));
assert_eq!(Fix::from_num(3.5).saturating_round_ties_to_even(), Fix::from_num(4));
assert_eq!(Fix::MAX.saturating_round_ties_to_even(), Fix::MAX);

pub fn wrapping_ceil(self) -> FixedU16<Frac>[src]

Wrapping ceil. Rounds to the next integer towards +∞, wrapping on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).wrapping_ceil(), Fix::from_num(3));
assert_eq!(Fix::MAX.wrapping_ceil(), Fix::MIN);

pub fn wrapping_floor(self) -> FixedU16<Frac>[src]

Wrapping floor. Rounds to the next integer towards −∞. Cannot overflow for unsigned values.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).wrapping_floor(), Fix::from_num(2));

pub fn wrapping_round(self) -> FixedU16<Frac>[src]

Wrapping round. Rounds to the next integer to the nearest, with ties rounded away from zero, and wrapping on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).wrapping_round(), Fix::from_num(3));
assert_eq!(Fix::MAX.wrapping_round(), Fix::MIN);

pub fn wrapping_round_ties_to_even(self) -> FixedU16<Frac>[src]

Wrapping round. Rounds to the next integer to the nearest, with ties rounded to even, and wrapping on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).wrapping_round_ties_to_even(), Fix::from_num(2));
assert_eq!(Fix::from_num(3.5).wrapping_round_ties_to_even(), Fix::from_num(4));
assert_eq!(Fix::MAX.wrapping_round_ties_to_even(), Fix::MIN);

pub fn unwrapped_ceil(self) -> FixedU16<Frac>[src]

Unwrapped ceil. Rounds to the next integer towards +∞, panicking on overflow.

Panics

Panics if the result does not fit.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).unwrapped_ceil(), Fix::from_num(3));

The following panics because of overflow.

ⓘThis example panics
use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let _overflow = Fix::MAX.unwrapped_ceil();

pub fn unwrapped_floor(self) -> FixedU16<Frac>[src]

Unwrapped floor. Rounds to the next integer towards −∞. Cannot overflow for unsigned values.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).unwrapped_floor(), Fix::from_num(2));

pub fn unwrapped_round(self) -> FixedU16<Frac>[src]

Unwrapped round. Rounds to the next integer to the nearest, with ties rounded away from zero, and panicking on overflow.

Panics

Panics if the result does not fit.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).unwrapped_round(), Fix::from_num(3));

The following panics because of overflow.

ⓘThis example panics
use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let _overflow = Fix::MAX.unwrapped_round();

pub fn unwrapped_round_ties_to_even(self) -> FixedU16<Frac>[src]

Unwrapped round. Rounds to the next integer to the nearest, with ties rounded to even, and panicking on overflow.

Panics

Panics if the result does not fit.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).unwrapped_round_ties_to_even(), Fix::from_num(2));
assert_eq!(Fix::from_num(3.5).unwrapped_round_ties_to_even(), Fix::from_num(4));

The following panics because of overflow.

ⓘThis example panics
use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let _overflow = Fix::MAX.unwrapped_round_ties_to_even();

pub fn overflowing_ceil(self) -> (FixedU16<Frac>, bool)[src]

Overflowing ceil. Rounds to the next integer towards +∞.

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

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).overflowing_ceil(), (Fix::from_num(3), false));
assert_eq!(Fix::MAX.overflowing_ceil(), (Fix::MIN, true));

pub fn overflowing_floor(self) -> (FixedU16<Frac>, bool)[src]

Overflowing floor. Rounds to the next integer towards −∞.

Returns a tuple of the fixed-point number and false.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).overflowing_floor(), (Fix::from_num(2), false));

pub fn overflowing_round(self) -> (FixedU16<Frac>, bool)[src]

Overflowing round. Rounds to the next integer to the nearest, with ties rounded away from zero.

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

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).overflowing_round(), (Fix::from_num(3), false));
assert_eq!(Fix::MAX.overflowing_round(), (Fix::MIN, true));

pub fn overflowing_round_ties_to_even(self) -> (FixedU16<Frac>, bool)[src]

Overflowing round. Rounds to the next integer to the nearest, with ties rounded to even.

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

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2.5).overflowing_round_ties_to_even(), (Fix::from_num(2), false));
assert_eq!(Fix::from_num(3.5).overflowing_round_ties_to_even(), (Fix::from_num(4), false));
assert_eq!(Fix::MAX.overflowing_round_ties_to_even(), (Fix::MIN, true));

pub fn int_log2(self) -> i32[src]

Integer base-2 logarithm, rounded down.

Panics

Panics if the fixed-point number is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(4).int_log2(), 2);
assert_eq!(Fix::from_num(3.9375).int_log2(), 1);
assert_eq!(Fix::from_num(0.25).int_log2(), -2);
assert_eq!(Fix::from_num(0.1875).int_log2(), -3);

pub fn int_log10(self) -> i32[src]

Integer base-10 logarithm, rounded down.

Panics

Panics if the fixed-point number is zero.

Examples

use fixed::{
    types::extra::{U2, U6},
    FixedU16,
};
assert_eq!(FixedU16::<U2>::from_num(10).int_log10(), 1);
assert_eq!(FixedU16::<U2>::from_num(9.75).int_log10(), 0);
assert_eq!(FixedU16::<U6>::from_num(0.109375).int_log10(), -1);
assert_eq!(FixedU16::<U6>::from_num(0.09375).int_log10(), -2);

pub fn checked_int_log2(self) -> Option<i32>[src]

Checked integer base-2 logarithm, rounded down. Returns the logarithm or None if the fixed-point number is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(0).checked_int_log2(), None);
assert_eq!(Fix::from_num(4).checked_int_log2(), Some(2));
assert_eq!(Fix::from_num(3.9375).checked_int_log2(), Some(1));
assert_eq!(Fix::from_num(0.25).checked_int_log2(), Some(-2));
assert_eq!(Fix::from_num(0.1875).checked_int_log2(), Some(-3));

pub fn checked_int_log10(self) -> Option<i32>[src]

Checked integer base-10 logarithm, rounded down. Returns the logarithm or None if the fixed-point number is zero.

Examples

use fixed::{
    types::extra::{U2, U6},
    FixedU16,
};
assert_eq!(FixedU16::<U2>::from_num(0).checked_int_log10(), None);
assert_eq!(FixedU16::<U2>::from_num(10).checked_int_log10(), Some(1));
assert_eq!(FixedU16::<U2>::from_num(9.75).checked_int_log10(), Some(0));
assert_eq!(FixedU16::<U6>::from_num(0.109375).checked_int_log10(), Some(-1));
assert_eq!(FixedU16::<U6>::from_num(0.09375).checked_int_log10(), Some(-2));

pub fn recip(self) -> FixedU16<Frac>[src]

Returns the reciprocal (inverse) of the fixed-point number, 1/self.

Panics

Panics if the fixed-point number is zero.

When debug assertions are enabled, this method also panics if the reciprocal overflows. 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_recip instead.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2).recip(), Fix::from_num(0.5));

pub fn div_euclid(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Euclidean division.

Panics

Panics if the divisor is zero.

When debug assertions are enabled, this method also panics if the division overflows. 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_div_euclid instead.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(7.5).div_euclid(Fix::from_num(2)), Fix::from_num(3));

pub fn div_euclid_int(self, rhs: u16) -> FixedU16<Frac>[src]

Euclidean division by an integer.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(7.5).div_euclid_int(2), Fix::from_num(3));

pub fn rem_euclid_int(self, rhs: u16) -> FixedU16<Frac>[src]

Remainder for Euclidean division by an integer.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(7.5).rem_euclid_int(2), Fix::from_num(1.5));

pub fn checked_mul(self, rhs: FixedU16<Frac>) -> Option<FixedU16<Frac>>[src]

Checked multiplication. Returns the product, or None on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::MAX.checked_mul(Fix::from_num(1)), Some(Fix::MAX));
assert_eq!(Fix::MAX.checked_mul(Fix::from_num(2)), None);

pub fn checked_div(self, rhs: FixedU16<Frac>) -> Option<FixedU16<Frac>>[src]

Checked division. Returns the quotient, or None if the divisor is zero or on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::MAX.checked_div(Fix::from_num(1)), Some(Fix::MAX));
assert_eq!(Fix::MAX.checked_div(Fix::from_num(1) / 2), None);

pub fn checked_recip(self) -> Option<FixedU16<Frac>>[src]

Checked reciprocal. Returns the reciprocal, or None if self is zero or on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(2).checked_recip(), Some(Fix::from_num(0.5)));
assert_eq!(Fix::from_num(0).checked_recip(), None);

pub fn checked_div_euclid(self, rhs: FixedU16<Frac>) -> Option<FixedU16<Frac>>[src]

Checked Euclidean division. Returns the quotient, or None if the divisor is zero or on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(7.5).checked_div_euclid(Fix::from_num(2)), Some(Fix::from_num(3)));
assert_eq!(Fix::from_num(7.5).checked_div_euclid(Fix::from_num(0)), None);
assert_eq!(Fix::MAX.checked_div_euclid(Fix::from_num(0.25)), None);

pub fn checked_rem_int(self, rhs: u16) -> Option<FixedU16<Frac>>[src]

Checked fixed-point remainder for division by an integer. Returns the remainder, or None if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(3.75).checked_rem_int(2), Some(Fix::from_num(1.75)));
assert_eq!(Fix::from_num(3.75).checked_rem_int(0), None);

pub fn checked_div_euclid_int(self, rhs: u16) -> Option<FixedU16<Frac>>[src]

Checked Euclidean division by an integer. Returns the quotient, or None if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(7.5).checked_div_euclid_int(2), Some(Fix::from_num(3)));
assert_eq!(Fix::from_num(7.5).checked_div_euclid_int(0), None);

pub fn checked_rem_euclid_int(self, rhs: u16) -> Option<FixedU16<Frac>>[src]

Checked remainder for Euclidean division by an integer. Returns the remainder, or None if the divisor is zero.

Examples

use fixed::{types::extra::U12, FixedU16};
type Fix = FixedU16<U12>;
assert_eq!(Fix::from_num(7.5).checked_rem_euclid_int(2), Some(Fix::from_num(1.5)));
assert_eq!(Fix::from_num(7.5).checked_rem_euclid_int(0), None);

pub fn saturating_mul(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Saturating multiplication. Returns the product, saturating on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(3).saturating_mul(Fix::from_num(2)), Fix::from_num(6));
assert_eq!(Fix::MAX.saturating_mul(Fix::from_num(2)), Fix::MAX);

pub fn saturating_div(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Saturating division. Returns the quotient, saturating on overflow.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let one_half = Fix::from_num(1) / 2;
assert_eq!(Fix::from_num(1).saturating_div(Fix::from_num(2)), one_half);
assert_eq!(Fix::MAX.saturating_div(one_half), Fix::MAX);

pub fn saturating_recip(self) -> FixedU16<Frac>[src]

Saturating reciprocal. Returns the reciprocal, saturating on overflow.

Panics

Panics if the fixed-point number is zero.

Examples

use fixed::{types::extra::U15, FixedU16};
// only one integer bit
type Fix = FixedU16<U15>;
assert_eq!(Fix::from_num(0.25).saturating_recip(), Fix::MAX);

pub fn saturating_div_euclid(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Saturating Euclidean division. Returns the quotient, saturating on overflow.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(7.5).saturating_div_euclid(Fix::from_num(2)), Fix::from_num(3));
assert_eq!(Fix::MAX.saturating_div_euclid(Fix::from_num(0.25)), Fix::MAX);

pub fn wrapping_mul(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Wrapping multiplication. Returns the product, wrapping on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(3).wrapping_mul(Fix::from_num(2)), Fix::from_num(6));
let wrapped = Fix::from_bits(!0 << 2);
assert_eq!(Fix::MAX.wrapping_mul(Fix::from_num(4)), wrapped);

pub fn wrapping_div(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Wrapping division. Returns the quotient, wrapping on overflow.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let one_point_5 = Fix::from_bits(0b11 << (4 - 1));
assert_eq!(Fix::from_num(3).wrapping_div(Fix::from_num(2)), one_point_5);
let quarter = Fix::from_num(1) / 4;
let wrapped = Fix::from_bits(!0 << 2);
assert_eq!(Fix::MAX.wrapping_div(quarter), wrapped);

pub fn wrapping_recip(self) -> FixedU16<Frac>[src]

Wrapping reciprocal. Returns the reciprocal, wrapping on overflow.

Panics

Panics if the fixed-point number is zero.

Examples

use fixed::{types::extra::U15, FixedU16};
// only one integer bit
type Fix = FixedU16<U15>;
assert_eq!(Fix::from_num(0.25).wrapping_recip(), Fix::from_num(0));

pub fn wrapping_div_euclid(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Wrapping Euclidean division. Returns the quotient, wrapping on overflow.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(7.5).wrapping_div_euclid(Fix::from_num(2)), Fix::from_num(3));
let wrapped = Fix::MAX.wrapping_mul_int(4).round_to_zero();
assert_eq!(Fix::MAX.wrapping_div_euclid(Fix::from_num(0.25)), wrapped);

pub fn wrapping_div_euclid_int(self, rhs: u16) -> FixedU16<Frac>[src]

Wrapping Euclidean division by an integer. Returns the quotient.

Can never overflow for unsigned values.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(7.5).wrapping_div_euclid_int(2), Fix::from_num(3));

pub fn wrapping_rem_euclid_int(self, rhs: u16) -> FixedU16<Frac>[src]

Wrapping remainder for Euclidean division by an integer. Returns the remainder.

Can never overflow for unsigned values.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U12, FixedU16};
type Fix = FixedU16<U12>;
assert_eq!(Fix::from_num(7.5).wrapping_rem_euclid_int(2), Fix::from_num(1.5));

pub fn unwrapped_mul(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Unwrapped multiplication. Returns the product, panicking on overflow.

Panics

Panics if the result does not fit.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(3).unwrapped_mul(Fix::from_num(2)), Fix::from_num(6));

The following panics because of overflow.

ⓘThis example panics
use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let _overflow = Fix::MAX.unwrapped_mul(Fix::from_num(4));

pub fn unwrapped_div(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Unwrapped division. Returns the quotient, panicking on overflow.

Panics

Panics if the divisor is zero or if the division results in overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let one_point_5 = Fix::from_bits(0b11 << (4 - 1));
assert_eq!(Fix::from_num(3).unwrapped_div(Fix::from_num(2)), one_point_5);

The following panics because of overflow.

ⓘThis example panics
use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let quarter = Fix::from_num(1) / 4;
let _overflow = Fix::MAX.unwrapped_div(quarter);

pub fn unwrapped_recip(self) -> FixedU16<Frac>[src]

Unwrapped reciprocal. Returns the reciprocal, panicking on overflow.

Panics

Panics if the fixed-point number is zero or on overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(0.25).unwrapped_recip(), Fix::from_num(4));

pub fn unwrapped_div_euclid(self, rhs: FixedU16<Frac>) -> FixedU16<Frac>[src]

Unwrapped Euclidean division. Returns the quotient, panicking on overflow.

Panics

Panics if the divisor is zero or if the division results in overflow.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(7.5).unwrapped_div_euclid(Fix::from_num(2)), Fix::from_num(3));

The following panics because of overflow.

ⓘThis example panics
use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let _overflow = Fix::MAX.unwrapped_div_euclid(Fix::from_num(0.25));

pub fn unwrapped_div_euclid_int(self, rhs: u16) -> FixedU16<Frac>[src]

Unwrapped Euclidean division by an integer. Returns the quotient.

Can never overflow for unsigned values.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(7.5).unwrapped_div_euclid_int(2), Fix::from_num(3));

pub fn unwrapped_rem_euclid_int(self, rhs: u16) -> FixedU16<Frac>[src]

Unwrapped remainder for Euclidean division by an integer. Returns the remainder.

Can never overflow for unsigned values.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U12, FixedU16};
type Fix = FixedU16<U12>;
assert_eq!(Fix::from_num(7.5).unwrapped_rem_euclid_int(2), Fix::from_num(1.5));

pub fn overflowing_mul(self, rhs: FixedU16<Frac>) -> (FixedU16<Frac>, bool)[src]

Overflowing multiplication.

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

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(3).overflowing_mul(Fix::from_num(2)), (Fix::from_num(6), false));
let wrapped = Fix::from_bits(!0 << 2);
assert_eq!(Fix::MAX.overflowing_mul(Fix::from_num(4)), (wrapped, true));

pub fn overflowing_div(self, rhs: FixedU16<Frac>) -> (FixedU16<Frac>, bool)[src]

Overflowing division.

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

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let one_point_5 = Fix::from_bits(0b11 << (4 - 1));
assert_eq!(Fix::from_num(3).overflowing_div(Fix::from_num(2)), (one_point_5, false));
let quarter = Fix::from_num(1) / 4;
let wrapped = Fix::from_bits(!0 << 2);
assert_eq!(Fix::MAX.overflowing_div(quarter), (wrapped, true));

pub fn overflowing_recip(self) -> (FixedU16<Frac>, bool)[src]

Overflowing reciprocal.

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

Panics

Panics if the fixed-point number is zero.

Examples

use fixed::{
    types::extra::{U4, U15},
    FixedU16,
};
type Fix = FixedU16<U4>;
// only one integer bit
type Small = FixedU16<U15>;
assert_eq!(Fix::from_num(0.25).overflowing_recip(), (Fix::from_num(4), false));
assert_eq!(Small::from_num(0.25).overflowing_recip(), (Small::from_num(0), true));

pub fn overflowing_div_euclid(
    self,
    rhs: FixedU16<Frac>
) -> (FixedU16<Frac>, bool)
[src]

Overflowing Euclidean division.

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

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
let check = Fix::from_num(3);
assert_eq!(Fix::from_num(7.5).overflowing_div_euclid(Fix::from_num(2)), (check, false));
let wrapped = Fix::MAX.wrapping_mul_int(4).round_to_zero();
assert_eq!(Fix::MAX.overflowing_div_euclid(Fix::from_num(0.25)), (wrapped, true));

pub fn overflowing_div_euclid_int(self, rhs: u16) -> (FixedU16<Frac>, bool)[src]

Overflowing Euclidean division by an integer.

Returns a tuple of the quotient and false, as the division can never overflow for unsigned values.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U4, FixedU16};
type Fix = FixedU16<U4>;
assert_eq!(Fix::from_num(7.5).overflowing_div_euclid_int(2), (Fix::from_num(3), false));

pub fn overflowing_rem_euclid_int(self, rhs: u16) -> (FixedU16<Frac>, bool)[src]

Remainder for Euclidean division by an integer.

Returns a tuple of the remainder and false, as this can never overflow for unsigned values.

Panics

Panics if the divisor is zero.

Examples

use fixed::{types::extra::U12, FixedU16};
type Fix = FixedU16<U12>;
assert_eq!(Fix::from_num(7.5).overflowing_rem_euclid_int(2), (Fix::from_num(1.5), false));

impl<Frac: LeEqU16> FixedU16<Frac>[src]

This block contains constants in the range 0 ≤ x < 0.5.

Examples

use fixed::{consts, types::extra::U16, FixedU16};
type Fix = FixedU16<U16>;
assert_eq!(Fix::LOG10_2, Fix::from_num(consts::LOG10_2));

pub const FRAC_1_TAU: FixedU16<Frac>[src]

1/τ = 0.159154…

pub const FRAC_2_TAU: FixedU16<Frac>[src]

2/τ = 0.318309…

pub const FRAC_PI_8: FixedU16<Frac>[src]

π/8 = 0.392699…

pub const FRAC_1_PI: FixedU16<Frac>[src]

1/π = 0.318309…

pub const LOG10_2: FixedU16<Frac>[src]

log10 2 = 0.301029…

pub const LOG10_E: FixedU16<Frac>[src]

log10 e = 0.434294…

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

This block contains constants in the range 0.5 ≤ x < 1.

Examples

use fixed::{consts, types::extra::U16, FixedU16};
type Fix = FixedU16<U16>;
assert_eq!(Fix::LN_2, Fix::from_num(consts::LN_2));
assert!(0.5 <= Fix::LN_2 && Fix::LN_2 < 1);

pub const FRAC_TAU_8: FixedU16<Frac>[src]

τ/8 = 0.785398…

pub const FRAC_TAU_12: FixedU16<Frac>[src]

τ/12 = 0.523598…

pub const FRAC_4_TAU: FixedU16<Frac>[src]

4/τ = 0.636619…

pub const FRAC_PI_4: FixedU16<Frac>[src]

π/4 = 0.785398…

pub const FRAC_PI_6: FixedU16<Frac>[src]

π/6 = 0.523598…

pub const FRAC_2_PI: FixedU16<Frac>[src]

2/π = 0.636619…

pub const FRAC_1_SQRT_2: FixedU16<Frac>[src]

1/√2 = 0.707106…

pub const LN_2: FixedU16<Frac>[src]

ln 2 = 0.693147…

pub const FRAC_1_PHI: FixedU16<Frac>[src]

The golden ratio conjugate, Φ = 1/φ = 0.618033…

impl<Frac: Unsigned> FixedU16<Frac> where
    Frac: IsLessOrEqual<U15, Output = True>, 
[src]

This block contains constants in the range 1 ≤ x < 2.

These constants are not representable in unsigned fixed-point numbers with less than 1 integer bit.

Examples

use fixed::{consts, types::extra::U15, FixedU16};
type Fix = FixedU16<U15>;
assert_eq!(Fix::LOG2_E, Fix::from_num(consts::LOG2_E));
assert!(1 <= Fix::LOG2_E && Fix::LOG2_E < 2);

The following example fails to compile, since the maximum representable value with 16 fractional bits and 0 integer bits is < 1.

ⓘThis example deliberately fails to compile
use fixed::{consts, types::extra::U16, FixedU16};
type Fix = FixedU16<U16>;
let _ = Fix::LOG2_E;

pub const FRAC_TAU_4: FixedU16<Frac>[src]

τ/4 = 1.57079…

pub const FRAC_TAU_6: FixedU16<Frac>[src]

τ/6 = 1.04719…

pub const FRAC_PI_2: FixedU16<Frac>[src]

π/2 = 1.57079…

pub const FRAC_PI_3: FixedU16<Frac>[src]

π/3 = 1.04719…

pub const FRAC_2_SQRT_PI: FixedU16<Frac>[src]

2/√π = 1.12837…

pub const SQRT_2: FixedU16<Frac>[src]

√2 = 1.41421…

pub const LOG2_E: FixedU16<Frac>[src]

log2 e = 1.44269…

pub const PHI: FixedU16<Frac>[src]

The golden ratio, φ = 1.61803…

impl<Frac: Unsigned> FixedU16<Frac> where
    Frac: IsLessOrEqual<U14, Output = True>, 
[src]

This block contains constants in the range 2 ≤ x < 4.

These constants are not representable in unsigned fixed-point numbers with less than 2 integer bits.

Examples

use fixed::{consts, types::extra::U14, FixedU16};
type Fix = FixedU16<U14>;
assert_eq!(Fix::E, Fix::from_num(consts::E));
assert!(2 <= Fix::E && Fix::E < 4);

The following example fails to compile, since the maximum representable value with 15 fractional bits and 1 integer bit is < 2.

ⓘThis example deliberately fails to compile
use fixed::{consts, types::extra::U15, FixedU16};
type Fix = FixedU16<U15>;
let _ = Fix::E;

pub const FRAC_TAU_2: FixedU16<Frac>[src]

τ/2 = 3.14159…

pub const FRAC_TAU_3: FixedU16<Frac>[src]

τ/3 = 2.09439…

pub const PI: FixedU16<Frac>[src]

Archimedes’ constant, π = 3.14159…

pub const E: FixedU16<Frac>[src]

Euler’s number, e = 2.71828…

pub const LOG2_10: FixedU16<Frac>[src]

log2 10 = 3.32192…

pub const LN_10: FixedU16<Frac>[src]

ln 10 = 2.30258…

impl<Frac: Unsigned> FixedU16<Frac> where
    Frac: IsLessOrEqual<U13, Output = True>, 
[src]

This block contains constants in the range 4 ≤ x < 8.

These constants are not representable in unsigned fixed-point numbers with less than 3 integer bits.

Examples

use fixed::{consts, types::extra::U13, FixedU16};
type Fix = FixedU16<U13>;
assert_eq!(Fix::TAU, Fix::from_num(consts::TAU));
assert!(4 <= Fix::TAU && Fix::TAU < 8);

The following example fails to compile, since the maximum representable value with 14 fractional bits and 2 integer bits is < 4.

ⓘThis example deliberately fails to compile
use fixed::{consts, types::extra::U14, FixedU16};
type Fix = FixedU16<U14>;
let _ = Fix::TAU;

pub const TAU: FixedU16<Frac>[src]

A turn, τ = 6.28318…

Trait Implementations

impl<Frac, '_> Add<&'_ FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the + operator.

impl<Frac, '_, '_> Add<&'_ FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the + operator.

impl<Frac> Add<FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the + operator.

impl<Frac, '_> Add<FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the + operator.

impl<Frac, '_> AddAssign<&'_ FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac> AddAssign<FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Binary for FixedU16<Frac>[src]

impl<Frac, '_> BitAnd<&'_ FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the & operator.

impl<Frac, '_, '_> BitAnd<&'_ FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the & operator.

impl<Frac> BitAnd<FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the & operator.

impl<Frac, '_> BitAnd<FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the & operator.

impl<Frac, '_> BitAndAssign<&'_ FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac> BitAndAssign<FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac, '_> BitOr<&'_ FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the | operator.

impl<Frac, '_, '_> BitOr<&'_ FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the | operator.

impl<Frac> BitOr<FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the | operator.

impl<Frac, '_> BitOr<FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the | operator.

impl<Frac, '_> BitOrAssign<&'_ FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac> BitOrAssign<FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac, '_> BitXor<&'_ FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the ^ operator.

impl<Frac, '_, '_> BitXor<&'_ FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the ^ operator.

impl<Frac> BitXor<FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the ^ operator.

impl<Frac, '_> BitXor<FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the ^ operator.

impl<Frac, '_> BitXorAssign<&'_ FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac> BitXorAssign<FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac> Bounded for FixedU16<Frac>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU128> Cast<FixedI128<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU16> Cast<FixedI16<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU32> Cast<FixedI32<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU64> Cast<FixedI64<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU8> Cast<FixedI8<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU128> Cast<FixedU128<FracDst>> for FixedU16<FracSrc>[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for bool[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for i8[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for u64[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for u128[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for usize[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for f32[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for f64[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for f16[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for bf16[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for i16[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for i32[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for i64[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for i128[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for isize[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for u8[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for u16[src]

impl<Frac: LeEqU16> Cast<FixedU16<Frac>> for u32[src]

impl<FracSrc: LeEqU8, FracDst: LeEqU16> Cast<FixedU16<FracDst>> for FixedI8<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU16> Cast<FixedU16<FracDst>> for FixedI16<FracSrc>[src]

impl<FracSrc: LeEqU32, FracDst: LeEqU16> Cast<FixedU16<FracDst>> for FixedI32<FracSrc>[src]

impl<FracSrc: LeEqU64, FracDst: LeEqU16> Cast<FixedU16<FracDst>> for FixedI64<FracSrc>[src]

impl<FracSrc: LeEqU128, FracDst: LeEqU16> Cast<FixedU16<FracDst>> for FixedI128<FracSrc>[src]

impl<FracSrc: LeEqU8, FracDst: LeEqU16> Cast<FixedU16<FracDst>> for FixedU8<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU16> Cast<FixedU16<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU32, FracDst: LeEqU16> Cast<FixedU16<FracDst>> for FixedU32<FracSrc>[src]

impl<FracSrc: LeEqU64, FracDst: LeEqU16> Cast<FixedU16<FracDst>> for FixedU64<FracSrc>[src]

impl<FracSrc: LeEqU128, FracDst: LeEqU16> Cast<FixedU16<FracDst>> for FixedU128<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU32> Cast<FixedU32<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU64> Cast<FixedU64<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU8> Cast<FixedU8<FracDst>> for FixedU16<FracSrc>[src]

impl<Frac: LeEqU16> Cast<bf16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Cast<f16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Cast<f32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Cast<f64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Cast<i128> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Cast<i16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Cast<i32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Cast<i64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Cast<i8> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Cast<isize> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Cast<u128> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Cast<u16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Cast<u32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Cast<u64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Cast<u8> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Cast<usize> for FixedU16<Frac>[src]

impl<Frac> CheckedAdd for FixedU16<Frac>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU128> CheckedCast<FixedI128<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU16> CheckedCast<FixedI16<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU32> CheckedCast<FixedI32<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU64> CheckedCast<FixedI64<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU8> CheckedCast<FixedI8<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU128> CheckedCast<FixedU128<FracDst>> for FixedU16<FracSrc>[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for bool[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for i8[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for u64[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for u128[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for usize[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for f32[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for f64[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for f16[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for bf16[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for i16[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for i32[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for i64[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for i128[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for isize[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for u8[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for u16[src]

impl<Frac: LeEqU16> CheckedCast<FixedU16<Frac>> for u32[src]

impl<FracSrc: LeEqU8, FracDst: LeEqU16> CheckedCast<FixedU16<FracDst>> for FixedI8<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU16> CheckedCast<FixedU16<FracDst>> for FixedI16<FracSrc>[src]

impl<FracSrc: LeEqU32, FracDst: LeEqU16> CheckedCast<FixedU16<FracDst>> for FixedI32<FracSrc>[src]

impl<FracSrc: LeEqU64, FracDst: LeEqU16> CheckedCast<FixedU16<FracDst>> for FixedI64<FracSrc>[src]

impl<FracSrc: LeEqU128, FracDst: LeEqU16> CheckedCast<FixedU16<FracDst>> for FixedI128<FracSrc>[src]

impl<FracSrc: LeEqU8, FracDst: LeEqU16> CheckedCast<FixedU16<FracDst>> for FixedU8<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU16> CheckedCast<FixedU16<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU32, FracDst: LeEqU16> CheckedCast<FixedU16<FracDst>> for FixedU32<FracSrc>[src]

impl<FracSrc: LeEqU64, FracDst: LeEqU16> CheckedCast<FixedU16<FracDst>> for FixedU64<FracSrc>[src]

impl<FracSrc: LeEqU128, FracDst: LeEqU16> CheckedCast<FixedU16<FracDst>> for FixedU128<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU32> CheckedCast<FixedU32<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU64> CheckedCast<FixedU64<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU8> CheckedCast<FixedU8<FracDst>> for FixedU16<FracSrc>[src]

impl<Frac: LeEqU16> CheckedCast<bf16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedCast<f16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedCast<f32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedCast<f64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedCast<i128> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedCast<i16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedCast<i32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedCast<i64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedCast<i8> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedCast<isize> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedCast<u128> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedCast<u16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedCast<u32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedCast<u64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedCast<u8> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedCast<usize> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedDiv for FixedU16<Frac>[src]

impl<Frac: LeEqU16> CheckedMul for FixedU16<Frac>[src]

impl<Frac> CheckedNeg for FixedU16<Frac>[src]

impl<Frac> CheckedRem for FixedU16<Frac>[src]

impl<Frac> CheckedShl for FixedU16<Frac>[src]

impl<Frac> CheckedShr for FixedU16<Frac>[src]

impl<Frac> CheckedSub for FixedU16<Frac>[src]

impl<Frac> Clone for FixedU16<Frac>[src]

impl<Frac> Copy for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Debug for FixedU16<Frac>[src]

impl<Frac> Default for FixedU16<Frac>[src]

impl<'de, Frac: LeEqU16> Deserialize<'de> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Display for FixedU16<Frac>[src]

impl<Frac: LeEqU16, '_> Div<&'_ FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the / operator.

impl<Frac: LeEqU16, '_, '_> Div<&'_ FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the / operator.

impl<Frac: LeEqU16, '_> Div<&'_ u16> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the / operator.

impl<Frac: LeEqU16, '_, '_> Div<&'_ u16> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the / operator.

impl<Frac: LeEqU16> Div<FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the / operator.

impl<Frac: LeEqU16, '_> Div<FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the / operator.

impl<Frac: LeEqU16> Div<u16> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the / operator.

impl<Frac: LeEqU16, '_> Div<u16> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the / operator.

impl<Frac: LeEqU16, '_> DivAssign<&'_ FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac: LeEqU16, '_> DivAssign<&'_ u16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> DivAssign<FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> DivAssign<u16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Eq for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Fixed for FixedU16<Frac>[src]

type Bits = u16

The primitive integer underlying type.

type Bytes = [u8; 2]

A byte array with the same size as the type.

type Frac = Frac

The number of fractional bits. Read more

impl<Frac: LeEqU16> FixedOptionalFeatures for FixedU16<Frac>[src]

impl<Frac: LeEqU16> FixedUnsigned for FixedU16<Frac>[src]

impl<Frac: LeEqU16> FloatConst for FixedU16<Frac>[src]

impl<Frac: LeEqU16> From<FixedU16<Frac>> for f32[src]

fn from(src: FixedU16<Frac>) -> f32[src]

Converts a fixed-point number to a floating-point number.

This conversion never fails (infallible) and does not lose any precision (lossless).

impl<Frac: LeEqU16> From<FixedU16<Frac>> for f64[src]

fn from(src: FixedU16<Frac>) -> f64[src]

Converts a fixed-point number to a floating-point number.

This conversion never fails (infallible) and does not lose any precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU32> From<FixedU16<FracSrc>> for FixedU32<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>,
    U16: Sub<FracSrc>,
    U32: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U32, FracDst>, Output = True>, 
[src]

fn from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) and does not lose any precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU32> From<FixedU16<FracSrc>> for FixedI32<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>,
    U16: Sub<FracSrc>,
    U31: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U31, FracDst>, Output = True>, 
[src]

fn from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) and does not lose any precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU64> From<FixedU16<FracSrc>> for FixedU64<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>,
    U16: Sub<FracSrc>,
    U64: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U64, FracDst>, Output = True>, 
[src]

fn from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) and does not lose any precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU64> From<FixedU16<FracSrc>> for FixedI64<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>,
    U16: Sub<FracSrc>,
    U63: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U63, FracDst>, Output = True>, 
[src]

fn from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) and does not lose any precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU128> From<FixedU16<FracSrc>> for FixedU128<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>,
    U16: Sub<FracSrc>,
    U128: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U128, FracDst>, Output = True>, 
[src]

fn from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) and does not lose any precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU128> From<FixedU16<FracSrc>> for FixedI128<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>,
    U16: Sub<FracSrc>,
    U127: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U127, FracDst>, Output = True>, 
[src]

fn from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) and does not lose any precision (lossless).

impl From<FixedU16<UTerm>> for u16[src]

fn from(src: FixedU16<U0>) -> Self[src]

Converts a fixed-point number with no fractional bits to an integer.

This conversion never fails (infallible) and cannot lose any fractional bits (lossless).

impl From<FixedU16<UTerm>> for u32[src]

fn from(src: FixedU16<U0>) -> Self[src]

Converts a fixed-point number with no fractional bits to an integer.

This conversion never fails (infallible) and cannot lose any fractional bits (lossless).

impl From<FixedU16<UTerm>> for i32[src]

fn from(src: FixedU16<U0>) -> Self[src]

Converts a fixed-point number with no fractional bits to an integer.

This conversion never fails (infallible) and cannot lose any fractional bits (lossless).

impl From<FixedU16<UTerm>> for u64[src]

fn from(src: FixedU16<U0>) -> Self[src]

Converts a fixed-point number with no fractional bits to an integer.

This conversion never fails (infallible) and cannot lose any fractional bits (lossless).

impl From<FixedU16<UTerm>> for i64[src]

fn from(src: FixedU16<U0>) -> Self[src]

Converts a fixed-point number with no fractional bits to an integer.

This conversion never fails (infallible) and cannot lose any fractional bits (lossless).

impl From<FixedU16<UTerm>> for u128[src]

fn from(src: FixedU16<U0>) -> Self[src]

Converts a fixed-point number with no fractional bits to an integer.

This conversion never fails (infallible) and cannot lose any fractional bits (lossless).

impl From<FixedU16<UTerm>> for i128[src]

fn from(src: FixedU16<U0>) -> Self[src]

Converts a fixed-point number with no fractional bits to an integer.

This conversion never fails (infallible) and cannot lose any fractional bits (lossless).

impl From<FixedU16<UTerm>> for usize[src]

fn from(src: FixedU16<U0>) -> Self[src]

Converts a fixed-point number with no fractional bits to an integer.

This conversion never fails (infallible) and cannot lose any fractional bits (lossless).

impl<FracSrc: LeEqU8, FracDst: LeEqU16> From<FixedU8<FracSrc>> for FixedU16<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>,
    U8: Sub<FracSrc>,
    U16: Sub<FracDst>,
    Diff<U8, FracSrc>: IsLessOrEqual<Diff<U16, FracDst>, Output = True>, 
[src]

fn from(src: FixedU8<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) and does not lose any precision (lossless).

impl<FracDst: LeEqU16> From<bool> for FixedU16<FracDst> where
    U16: Sub<FracDst>,
    U1: IsLessOrEqual<Diff<U16, FracDst>, Output = True>, 
[src]

fn from(src: bool) -> Self[src]

Converts a bool to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits (lossless).

impl From<u16> for FixedU16<U0>[src]

fn from(src: u16) -> Self[src]

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits (lossless).

impl<FracDst: LeEqU16> From<u8> for FixedU16<FracDst> where
    U16: Sub<FracDst>,
    U8: IsLessOrEqual<Diff<U16, FracDst>, Output = True>, 
[src]

fn from(src: u8) -> Self[src]

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

impl<Frac: LeEqU16> FromFixed for FixedU16<Frac>[src]

fn from_fixed<F: Fixed>(src: F) -> Self[src]

Converts a fixed-point number.

Any extra fractional bits are discarded, which rounds towards −∞.

fn checked_from_fixed<F: Fixed>(src: F) -> Option<Self>[src]

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

Any extra fractional bits are discarded, which rounds towards −∞.

fn saturating_from_fixed<F: Fixed>(src: F) -> Self[src]

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

Any extra fractional bits are discarded, which rounds towards −∞.

fn wrapping_from_fixed<F: Fixed>(src: F) -> Self[src]

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

Any extra fractional bits are discarded, which rounds towards −∞.

fn overflowing_from_fixed<F: Fixed>(src: F) -> (Self, bool)[src]

Converts 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 discarded, which rounds towards −∞.

impl<Frac: LeEqU16> FromPrimitive for FixedU16<Frac>[src]

impl<Frac: LeEqU16> FromStr for FixedU16<Frac>[src]

type Err = ParseFixedError

The associated error which can be returned from parsing.

fn from_str(s: &str) -> Result<Self, Self::Err>[src]

Parses a string slice to return a fixed-point number.

Rounding is to the nearest, with ties rounded to even.

impl<Frac> Hash for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Inv for FixedU16<Frac>[src]

type Output = Self

The result after applying the operator.

impl<FracSrc: LeEqU128, FracDst: LeEqU16> LosslessTryFrom<FixedI128<FracSrc>> for FixedU16<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedI128<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU16> LosslessTryFrom<FixedI16<FracSrc>> for FixedU16<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedI16<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU32, FracDst: LeEqU16> LosslessTryFrom<FixedI32<FracSrc>> for FixedU16<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedI32<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU64, FracDst: LeEqU16> LosslessTryFrom<FixedI64<FracSrc>> for FixedU16<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedI64<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU8, FracDst: LeEqU16> LosslessTryFrom<FixedI8<FracSrc>> for FixedU16<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedI8<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU128, FracDst: LeEqU16> LosslessTryFrom<FixedU128<FracSrc>> for FixedU16<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedU128<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<Frac: LeEqU16> LosslessTryFrom<FixedU16<Frac>> for f32[src]

fn lossless_try_from(src: FixedU16<Frac>) -> Option<f32>[src]

Converts a fixed-point number to a floating-point number.

This conversion actually never fails (infallible) but does not lose any precision (lossless).

impl<Frac: LeEqU16> LosslessTryFrom<FixedU16<Frac>> for f64[src]

fn lossless_try_from(src: FixedU16<Frac>) -> Option<f64>[src]

Converts a fixed-point number to a floating-point number.

This conversion actually never fails (infallible) but does not lose any precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU8> LosslessTryFrom<FixedU16<FracSrc>> for FixedI8<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedU16<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU16> LosslessTryFrom<FixedU16<FracSrc>> for FixedI16<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedU16<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU32> LosslessTryFrom<FixedU16<FracSrc>> for FixedI32<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedU16<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU64> LosslessTryFrom<FixedU16<FracSrc>> for FixedI64<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedU16<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU128> LosslessTryFrom<FixedU16<FracSrc>> for FixedI128<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedU16<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU8> LosslessTryFrom<FixedU16<FracSrc>> for FixedU8<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedU16<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU16> LosslessTryFrom<FixedU16<FracSrc>> for FixedU16<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedU16<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU32> LosslessTryFrom<FixedU16<FracSrc>> for FixedU32<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedU16<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU64> LosslessTryFrom<FixedU16<FracSrc>> for FixedU64<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedU16<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU16, FracDst: LeEqU128> LosslessTryFrom<FixedU16<FracSrc>> for FixedU128<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedU16<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl LosslessTryFrom<FixedU16<UTerm>> for i8[src]

fn lossless_try_from(src: FixedU16<U0>) -> Option<Self>[src]

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl LosslessTryFrom<FixedU16<UTerm>> for i16[src]

fn lossless_try_from(src: FixedU16<U0>) -> Option<Self>[src]

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl LosslessTryFrom<FixedU16<UTerm>> for u128[src]

fn lossless_try_from(src: FixedU16<U0>) -> Option<Self>[src]

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl LosslessTryFrom<FixedU16<UTerm>> for usize[src]

fn lossless_try_from(src: FixedU16<U0>) -> Option<Self>[src]

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl LosslessTryFrom<FixedU16<UTerm>> for i32[src]

fn lossless_try_from(src: FixedU16<U0>) -> Option<Self>[src]

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl LosslessTryFrom<FixedU16<UTerm>> for i64[src]

fn lossless_try_from(src: FixedU16<U0>) -> Option<Self>[src]

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl LosslessTryFrom<FixedU16<UTerm>> for i128[src]

fn lossless_try_from(src: FixedU16<U0>) -> Option<Self>[src]

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl LosslessTryFrom<FixedU16<UTerm>> for isize[src]

fn lossless_try_from(src: FixedU16<U0>) -> Option<Self>[src]

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl LosslessTryFrom<FixedU16<UTerm>> for u8[src]

fn lossless_try_from(src: FixedU16<U0>) -> Option<Self>[src]

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl LosslessTryFrom<FixedU16<UTerm>> for u16[src]

fn lossless_try_from(src: FixedU16<U0>) -> Option<Self>[src]

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl LosslessTryFrom<FixedU16<UTerm>> for u32[src]

fn lossless_try_from(src: FixedU16<U0>) -> Option<Self>[src]

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl LosslessTryFrom<FixedU16<UTerm>> for u64[src]

fn lossless_try_from(src: FixedU16<U0>) -> Option<Self>[src]

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl<FracSrc: LeEqU32, FracDst: LeEqU16> LosslessTryFrom<FixedU32<FracSrc>> for FixedU16<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedU32<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU64, FracDst: LeEqU16> LosslessTryFrom<FixedU64<FracSrc>> for FixedU16<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedU64<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<FracSrc: LeEqU8, FracDst: LeEqU16> LosslessTryFrom<FixedU8<FracSrc>> for FixedU16<FracDst> where
    FracSrc: IsLessOrEqual<FracDst, Output = True>, 
[src]

fn lossless_try_from(src: FixedU8<FracSrc>) -> Option<Self>[src]

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

impl<Frac: LeEqU16> LosslessTryFrom<bool> for FixedU16<Frac>[src]

fn lossless_try_from(src: bool) -> Option<Self>[src]

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl<Frac: LeEqU16> LosslessTryFrom<i128> for FixedU16<Frac>[src]

fn lossless_try_from(src: i128) -> Option<Self>[src]

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl<Frac: LeEqU16> LosslessTryFrom<i16> for FixedU16<Frac>[src]

fn lossless_try_from(src: i16) -> Option<Self>[src]

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl<Frac: LeEqU16> LosslessTryFrom<i32> for FixedU16<Frac>[src]

fn lossless_try_from(src: i32) -> Option<Self>[src]

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl<Frac: LeEqU16> LosslessTryFrom<i64> for FixedU16<Frac>[src]

fn lossless_try_from(src: i64) -> Option<Self>[src]

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl<Frac: LeEqU16> LosslessTryFrom<i8> for FixedU16<Frac>[src]

fn lossless_try_from(src: i8) -> Option<Self>[src]

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl<Frac: LeEqU16> LosslessTryFrom<isize> for FixedU16<Frac>[src]

fn lossless_try_from(src: isize) -> Option<Self>[src]

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl<Frac: LeEqU16> LosslessTryFrom<u128> for FixedU16<Frac>[src]

fn lossless_try_from(src: u128) -> Option<Self>[src]

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl<Frac: LeEqU16> LosslessTryFrom<u16> for FixedU16<Frac>[src]

fn lossless_try_from(src: u16) -> Option<Self>[src]

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl<Frac: LeEqU16> LosslessTryFrom<u32> for FixedU16<Frac>[src]

fn lossless_try_from(src: u32) -> Option<Self>[src]

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl<Frac: LeEqU16> LosslessTryFrom<u64> for FixedU16<Frac>[src]

fn lossless_try_from(src: u64) -> Option<Self>[src]

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl<Frac: LeEqU16> LosslessTryFrom<u8> for FixedU16<Frac>[src]

fn lossless_try_from(src: u8) -> Option<Self>[src]

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl<Frac: LeEqU16> LosslessTryFrom<usize> for FixedU16<Frac>[src]

fn lossless_try_from(src: usize) -> Option<Self>[src]

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

impl<FracSrc: LeEqU128, FracDst: LeEqU16> LossyFrom<FixedU128<FracSrc>> for FixedU16<FracDst> where
    U128: Sub<FracSrc>,
    U16: Sub<FracDst>,
    Diff<U128, FracSrc>: IsLessOrEqual<Diff<U16, FracDst>, Output = True>, 
[src]

fn lossy_from(src: FixedU128<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

impl<Frac: LeEqU16> LossyFrom<FixedU16<Frac>> for f16[src]

fn lossy_from(src: FixedU16<Frac>) -> f16[src]

Converts a fixed-point number to a floating-point number.

This conversion never fails (infallible) but may lose precision (lossy). Rounding is to the nearest, with ties rounded to even.

impl<Frac: LeEqU16> LossyFrom<FixedU16<Frac>> for bf16[src]

fn lossy_from(src: FixedU16<Frac>) -> bf16[src]

Converts a fixed-point number to a floating-point number.

This conversion never fails (infallible) but may lose precision (lossy). Rounding is to the nearest, with ties rounded to even.

impl<Frac: LeEqU16> LossyFrom<FixedU16<Frac>> for f32[src]

fn lossy_from(src: FixedU16<Frac>) -> f32[src]

Converts a fixed-point number to a floating-point number.

This conversion never fails (infallible) but may lose precision (lossy). Rounding is to the nearest, with ties rounded to even.

impl<Frac: LeEqU16> LossyFrom<FixedU16<Frac>> for f64[src]

fn lossy_from(src: FixedU16<Frac>) -> f64[src]

Converts a fixed-point number to a floating-point number.

This conversion never fails (infallible) but may lose precision (lossy). Rounding is to the nearest, with ties rounded to even.

impl<FracSrc: LeEqU16, FracDst: LeEqU8> LossyFrom<FixedU16<FracSrc>> for FixedU8<FracDst> where
    U16: Sub<FracSrc>,
    U8: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U8, FracDst>, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16, FracDst: LeEqU8> LossyFrom<FixedU16<FracSrc>> for FixedI8<FracDst> where
    U16: Sub<FracSrc>,
    U7: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U7, FracDst>, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16> LossyFrom<FixedU16<FracSrc>> for u8 where
    U16: Sub<FracSrc>,
    Diff<U16, FracSrc>: IsLessOrEqual<U8, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16> LossyFrom<FixedU16<FracSrc>> for i8 where
    U16: Sub<FracSrc>,
    Diff<U16, FracSrc>: IsLessOrEqual<U7, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16> LossyFrom<FixedU16<FracSrc>> for u16 where
    U16: Sub<FracSrc>,
    Diff<U16, FracSrc>: IsLessOrEqual<U16, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16> LossyFrom<FixedU16<FracSrc>> for i16 where
    U16: Sub<FracSrc>,
    Diff<U16, FracSrc>: IsLessOrEqual<U15, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16> LossyFrom<FixedU16<FracSrc>> for u32 where
    U16: Sub<FracSrc>,
    Diff<U16, FracSrc>: IsLessOrEqual<U32, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16> LossyFrom<FixedU16<FracSrc>> for i32 where
    U16: Sub<FracSrc>,
    Diff<U16, FracSrc>: IsLessOrEqual<U31, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16> LossyFrom<FixedU16<FracSrc>> for u64 where
    U16: Sub<FracSrc>,
    Diff<U16, FracSrc>: IsLessOrEqual<U64, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16> LossyFrom<FixedU16<FracSrc>> for i64 where
    U16: Sub<FracSrc>,
    Diff<U16, FracSrc>: IsLessOrEqual<U63, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16> LossyFrom<FixedU16<FracSrc>> for u128 where
    U16: Sub<FracSrc>,
    Diff<U16, FracSrc>: IsLessOrEqual<U128, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16> LossyFrom<FixedU16<FracSrc>> for i128 where
    U16: Sub<FracSrc>,
    Diff<U16, FracSrc>: IsLessOrEqual<U127, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16, FracDst: LeEqU16> LossyFrom<FixedU16<FracSrc>> for FixedU16<FracDst> where
    U16: Sub<FracSrc>,
    U16: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U16, FracDst>, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16> LossyFrom<FixedU16<FracSrc>> for usize where
    U16: Sub<FracSrc>,
    Diff<U16, FracSrc>: IsLessOrEqual<U16, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16> LossyFrom<FixedU16<FracSrc>> for isize where
    U16: Sub<FracSrc>,
    Diff<U16, FracSrc>: IsLessOrEqual<U15, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16, FracDst: LeEqU16> LossyFrom<FixedU16<FracSrc>> for FixedI16<FracDst> where
    U16: Sub<FracSrc>,
    U15: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U15, FracDst>, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16, FracDst: LeEqU32> LossyFrom<FixedU16<FracSrc>> for FixedU32<FracDst> where
    U16: Sub<FracSrc>,
    U32: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U32, FracDst>, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16, FracDst: LeEqU32> LossyFrom<FixedU16<FracSrc>> for FixedI32<FracDst> where
    U16: Sub<FracSrc>,
    U31: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U31, FracDst>, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16, FracDst: LeEqU64> LossyFrom<FixedU16<FracSrc>> for FixedU64<FracDst> where
    U16: Sub<FracSrc>,
    U64: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U64, FracDst>, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16, FracDst: LeEqU64> LossyFrom<FixedU16<FracSrc>> for FixedI64<FracDst> where
    U16: Sub<FracSrc>,
    U63: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U63, FracDst>, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16, FracDst: LeEqU128> LossyFrom<FixedU16<FracSrc>> for FixedU128<FracDst> where
    U16: Sub<FracSrc>,
    U128: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U128, FracDst>, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU16, FracDst: LeEqU128> LossyFrom<FixedU16<FracSrc>> for FixedI128<FracDst> where
    U16: Sub<FracSrc>,
    U127: Sub<FracDst>,
    Diff<U16, FracSrc>: IsLessOrEqual<Diff<U127, FracDst>, Output = True>, 
[src]

fn lossy_from(src: FixedU16<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU32, FracDst: LeEqU16> LossyFrom<FixedU32<FracSrc>> for FixedU16<FracDst> where
    U32: Sub<FracSrc>,
    U16: Sub<FracDst>,
    Diff<U32, FracSrc>: IsLessOrEqual<Diff<U16, FracDst>, Output = True>, 
[src]

fn lossy_from(src: FixedU32<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU64, FracDst: LeEqU16> LossyFrom<FixedU64<FracSrc>> for FixedU16<FracDst> where
    U64: Sub<FracSrc>,
    U16: Sub<FracDst>,
    Diff<U64, FracSrc>: IsLessOrEqual<Diff<U16, FracDst>, Output = True>, 
[src]

fn lossy_from(src: FixedU64<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

impl<FracSrc: LeEqU8, FracDst: LeEqU16> LossyFrom<FixedU8<FracSrc>> for FixedU16<FracDst> where
    U8: Sub<FracSrc>,
    U16: Sub<FracDst>,
    Diff<U8, FracSrc>: IsLessOrEqual<Diff<U16, FracDst>, Output = True>, 
[src]

fn lossy_from(src: FixedU8<FracSrc>) -> Self[src]

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

impl<FracDst: LeEqU16> LossyFrom<bool> for FixedU16<FracDst> where
    U16: Sub<FracDst>,
    U1: IsLessOrEqual<Diff<U16, FracDst>, Output = True>, 
[src]

fn lossy_from(src: bool) -> Self[src]

Converts a bool to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

impl LossyFrom<u16> for FixedU16<U0>[src]

fn lossy_from(src: u16) -> Self[src]

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and actually does not lose any precision (lossless).

impl<FracDst: LeEqU16> LossyFrom<u8> for FixedU16<FracDst> where
    U16: Sub<FracDst>,
    U8: IsLessOrEqual<Diff<U16, FracDst>, Output = True>, 
[src]

fn lossy_from(src: u8) -> Self[src]

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

impl<Frac: LeEqU16> LowerHex for FixedU16<Frac>[src]

impl<Frac: LeEqU16, '_> Mul<&'_ FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the * operator.

impl<Frac: LeEqU16, '_, '_> Mul<&'_ FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the * operator.

impl<Frac: LeEqU16, '_> Mul<&'_ FixedU16<Frac>> for u16[src]

type Output = FixedU16<Frac>

The resulting type after applying the * operator.

impl<Frac: LeEqU16, '_, '_> Mul<&'_ FixedU16<Frac>> for &'_ u16[src]

type Output = FixedU16<Frac>

The resulting type after applying the * operator.

impl<Frac: LeEqU16, '_> Mul<&'_ u16> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the * operator.

impl<Frac: LeEqU16, '_, '_> Mul<&'_ u16> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the * operator.

impl<Frac: LeEqU16> Mul<FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the * operator.

impl<Frac: LeEqU16, '_> Mul<FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the * operator.

impl<Frac: LeEqU16> Mul<FixedU16<Frac>> for u16[src]

type Output = FixedU16<Frac>

The resulting type after applying the * operator.

impl<Frac: LeEqU16, '_> Mul<FixedU16<Frac>> for &'_ u16[src]

type Output = FixedU16<Frac>

The resulting type after applying the * operator.

impl<Frac: LeEqU16> Mul<u16> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the * operator.

impl<Frac: LeEqU16, '_> Mul<u16> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the * operator.

impl<Frac, MulFrac: LeEqU16> MulAdd<FixedU16<MulFrac>, FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the fused multiply-add.

impl<Frac, MulFrac: LeEqU16> MulAddAssign<FixedU16<MulFrac>, FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac, RhsFrac: LeEqU16, '_> MulAssign<&'_ FixedU16<RhsFrac>> for FixedU16<Frac>[src]

impl<Frac: LeEqU16, '_> MulAssign<&'_ u16> for FixedU16<Frac>[src]

impl<Frac, RhsFrac: LeEqU16> MulAssign<FixedU16<RhsFrac>> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> MulAssign<u16> for FixedU16<Frac>[src]

impl<Frac> Not for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the ! operator.

impl<Frac, '_> Not for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the ! operator.

impl<Frac: LeEqU16> Num for FixedU16<Frac> where
    Frac: IsLessOrEqual<U15, Output = True>, 
[src]

type FromStrRadixErr = RadixParseFixedError

impl<Frac: LeEqU16> Octal for FixedU16<Frac>[src]

impl<Frac: LeEqU16> One for FixedU16<Frac> where
    Frac: IsLessOrEqual<U15, Output = True>, 
[src]

impl<Frac: LeEqU16> Ord for FixedU16<Frac>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU128> OverflowingCast<FixedI128<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU16> OverflowingCast<FixedI16<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU32> OverflowingCast<FixedI32<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU64> OverflowingCast<FixedI64<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU8> OverflowingCast<FixedI8<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU128> OverflowingCast<FixedU128<FracDst>> for FixedU16<FracSrc>[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for bool[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for i8[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for u64[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for u128[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for usize[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for f32[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for f64[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for f16[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for bf16[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for i16[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for i32[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for i64[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for i128[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for isize[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for u8[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for u16[src]

impl<Frac: LeEqU16> OverflowingCast<FixedU16<Frac>> for u32[src]

impl<FracSrc: LeEqU8, FracDst: LeEqU16> OverflowingCast<FixedU16<FracDst>> for FixedI8<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU16> OverflowingCast<FixedU16<FracDst>> for FixedI16<FracSrc>[src]

impl<FracSrc: LeEqU32, FracDst: LeEqU16> OverflowingCast<FixedU16<FracDst>> for FixedI32<FracSrc>[src]

impl<FracSrc: LeEqU64, FracDst: LeEqU16> OverflowingCast<FixedU16<FracDst>> for FixedI64<FracSrc>[src]

impl<FracSrc: LeEqU128, FracDst: LeEqU16> OverflowingCast<FixedU16<FracDst>> for FixedI128<FracSrc>[src]

impl<FracSrc: LeEqU8, FracDst: LeEqU16> OverflowingCast<FixedU16<FracDst>> for FixedU8<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU16> OverflowingCast<FixedU16<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU32, FracDst: LeEqU16> OverflowingCast<FixedU16<FracDst>> for FixedU32<FracSrc>[src]

impl<FracSrc: LeEqU64, FracDst: LeEqU16> OverflowingCast<FixedU16<FracDst>> for FixedU64<FracSrc>[src]

impl<FracSrc: LeEqU128, FracDst: LeEqU16> OverflowingCast<FixedU16<FracDst>> for FixedU128<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU32> OverflowingCast<FixedU32<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU64> OverflowingCast<FixedU64<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU8> OverflowingCast<FixedU8<FracDst>> for FixedU16<FracSrc>[src]

impl<Frac: LeEqU16> OverflowingCast<bf16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> OverflowingCast<f16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> OverflowingCast<f32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> OverflowingCast<f64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> OverflowingCast<i128> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> OverflowingCast<i16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> OverflowingCast<i32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> OverflowingCast<i64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> OverflowingCast<i8> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> OverflowingCast<isize> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> OverflowingCast<u128> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> OverflowingCast<u16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> OverflowingCast<u32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> OverflowingCast<u64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> OverflowingCast<u8> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> OverflowingCast<usize> for FixedU16<Frac>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU128> PartialEq<FixedI128<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU16> PartialEq<FixedI16<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU32> PartialEq<FixedI32<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU64> PartialEq<FixedI64<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU8> PartialEq<FixedI8<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU128> PartialEq<FixedU128<FracRhs>> for FixedU16<FracLhs>[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for i8[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for i16[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for u128[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for usize[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for f16[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for bf16[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for f32[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for f64[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for i32[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for i64[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for i128[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for isize[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for u8[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for u16[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for u32[src]

impl<Frac: LeEqU16> PartialEq<FixedU16<Frac>> for u64[src]

impl<FracLhs: LeEqU8, FracRhs: LeEqU16> PartialEq<FixedU16<FracRhs>> for FixedI8<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU16> PartialEq<FixedU16<FracRhs>> for FixedI16<FracLhs>[src]

impl<FracLhs: LeEqU32, FracRhs: LeEqU16> PartialEq<FixedU16<FracRhs>> for FixedI32<FracLhs>[src]

impl<FracLhs: LeEqU64, FracRhs: LeEqU16> PartialEq<FixedU16<FracRhs>> for FixedI64<FracLhs>[src]

impl<FracLhs: LeEqU128, FracRhs: LeEqU16> PartialEq<FixedU16<FracRhs>> for FixedI128<FracLhs>[src]

impl<FracLhs: LeEqU8, FracRhs: LeEqU16> PartialEq<FixedU16<FracRhs>> for FixedU8<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU16> PartialEq<FixedU16<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU32, FracRhs: LeEqU16> PartialEq<FixedU16<FracRhs>> for FixedU32<FracLhs>[src]

impl<FracLhs: LeEqU64, FracRhs: LeEqU16> PartialEq<FixedU16<FracRhs>> for FixedU64<FracLhs>[src]

impl<FracLhs: LeEqU128, FracRhs: LeEqU16> PartialEq<FixedU16<FracRhs>> for FixedU128<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU32> PartialEq<FixedU32<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU64> PartialEq<FixedU64<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU8> PartialEq<FixedU8<FracRhs>> for FixedU16<FracLhs>[src]

impl<Frac: LeEqU16> PartialEq<bf16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialEq<f16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialEq<f32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialEq<f64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialEq<i128> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialEq<i16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialEq<i32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialEq<i64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialEq<i8> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialEq<isize> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialEq<u128> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialEq<u16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialEq<u32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialEq<u64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialEq<u8> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialEq<usize> for FixedU16<Frac>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU128> PartialOrd<FixedI128<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU16> PartialOrd<FixedI16<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU32> PartialOrd<FixedI32<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU64> PartialOrd<FixedI64<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU8> PartialOrd<FixedI8<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU128> PartialOrd<FixedU128<FracRhs>> for FixedU16<FracLhs>[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for i8[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for i16[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for u128[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for usize[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for f16[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for bf16[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for f32[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for f64[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for i32[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for i64[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for i128[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for isize[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for u8[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for u16[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for u32[src]

impl<Frac: LeEqU16> PartialOrd<FixedU16<Frac>> for u64[src]

impl<FracLhs: LeEqU8, FracRhs: LeEqU16> PartialOrd<FixedU16<FracRhs>> for FixedI8<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU16> PartialOrd<FixedU16<FracRhs>> for FixedI16<FracLhs>[src]

impl<FracLhs: LeEqU32, FracRhs: LeEqU16> PartialOrd<FixedU16<FracRhs>> for FixedI32<FracLhs>[src]

impl<FracLhs: LeEqU64, FracRhs: LeEqU16> PartialOrd<FixedU16<FracRhs>> for FixedI64<FracLhs>[src]

impl<FracLhs: LeEqU128, FracRhs: LeEqU16> PartialOrd<FixedU16<FracRhs>> for FixedI128<FracLhs>[src]

impl<FracLhs: LeEqU8, FracRhs: LeEqU16> PartialOrd<FixedU16<FracRhs>> for FixedU8<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU16> PartialOrd<FixedU16<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU32, FracRhs: LeEqU16> PartialOrd<FixedU16<FracRhs>> for FixedU32<FracLhs>[src]

impl<FracLhs: LeEqU64, FracRhs: LeEqU16> PartialOrd<FixedU16<FracRhs>> for FixedU64<FracLhs>[src]

impl<FracLhs: LeEqU128, FracRhs: LeEqU16> PartialOrd<FixedU16<FracRhs>> for FixedU128<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU32> PartialOrd<FixedU32<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU64> PartialOrd<FixedU64<FracRhs>> for FixedU16<FracLhs>[src]

impl<FracLhs: LeEqU16, FracRhs: LeEqU8> PartialOrd<FixedU8<FracRhs>> for FixedU16<FracLhs>[src]

impl<Frac: LeEqU16> PartialOrd<bf16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialOrd<f16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialOrd<f32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialOrd<f64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialOrd<i128> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialOrd<i16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialOrd<i32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialOrd<i64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialOrd<i8> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialOrd<isize> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialOrd<u128> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialOrd<u16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialOrd<u32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialOrd<u64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialOrd<u8> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> PartialOrd<usize> for FixedU16<Frac>[src]

impl<'a, Frac: 'a + LeEqU16> Product<&'a FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Product<FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac, '_> Rem<&'_ FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the % operator.

impl<Frac, '_, '_> Rem<&'_ FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the % operator.

impl<Frac: LeEqU16, '_> Rem<&'_ u16> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the % operator.

impl<Frac: LeEqU16, '_, '_> Rem<&'_ u16> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the % operator.

impl<Frac> Rem<FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the % operator.

impl<Frac, '_> Rem<FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the % operator.

impl<Frac: LeEqU16> Rem<u16> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the % operator.

impl<Frac: LeEqU16, '_> Rem<u16> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the % operator.

impl<Frac, '_> RemAssign<&'_ FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac: LeEqU16, '_> RemAssign<&'_ u16> for FixedU16<Frac>[src]

impl<Frac> RemAssign<FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> RemAssign<u16> for FixedU16<Frac>[src]

impl<Frac> SaturatingAdd for FixedU16<Frac>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU128> SaturatingCast<FixedI128<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU16> SaturatingCast<FixedI16<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU32> SaturatingCast<FixedI32<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU64> SaturatingCast<FixedI64<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU8> SaturatingCast<FixedI8<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU128> SaturatingCast<FixedU128<FracDst>> for FixedU16<FracSrc>[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for bool[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for i8[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for u64[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for u128[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for usize[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for f32[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for f64[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for f16[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for bf16[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for i16[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for i32[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for i64[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for i128[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for isize[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for u8[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for u16[src]

impl<Frac: LeEqU16> SaturatingCast<FixedU16<Frac>> for u32[src]

impl<FracSrc: LeEqU8, FracDst: LeEqU16> SaturatingCast<FixedU16<FracDst>> for FixedI8<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU16> SaturatingCast<FixedU16<FracDst>> for FixedI16<FracSrc>[src]

impl<FracSrc: LeEqU32, FracDst: LeEqU16> SaturatingCast<FixedU16<FracDst>> for FixedI32<FracSrc>[src]

impl<FracSrc: LeEqU64, FracDst: LeEqU16> SaturatingCast<FixedU16<FracDst>> for FixedI64<FracSrc>[src]

impl<FracSrc: LeEqU128, FracDst: LeEqU16> SaturatingCast<FixedU16<FracDst>> for FixedI128<FracSrc>[src]

impl<FracSrc: LeEqU8, FracDst: LeEqU16> SaturatingCast<FixedU16<FracDst>> for FixedU8<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU16> SaturatingCast<FixedU16<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU32, FracDst: LeEqU16> SaturatingCast<FixedU16<FracDst>> for FixedU32<FracSrc>[src]

impl<FracSrc: LeEqU64, FracDst: LeEqU16> SaturatingCast<FixedU16<FracDst>> for FixedU64<FracSrc>[src]

impl<FracSrc: LeEqU128, FracDst: LeEqU16> SaturatingCast<FixedU16<FracDst>> for FixedU128<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU32> SaturatingCast<FixedU32<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU64> SaturatingCast<FixedU64<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU8> SaturatingCast<FixedU8<FracDst>> for FixedU16<FracSrc>[src]

impl<Frac: LeEqU16> SaturatingCast<bf16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingCast<f16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingCast<f32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingCast<f64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingCast<i128> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingCast<i16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingCast<i32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingCast<i64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingCast<i8> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingCast<isize> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingCast<u128> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingCast<u16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingCast<u32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingCast<u64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingCast<u8> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingCast<usize> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> SaturatingMul for FixedU16<Frac>[src]

impl<Frac> SaturatingSub for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Serialize for FixedU16<Frac>[src]

impl<Frac, '_> Shl<&'_ i128> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_, '_> Shl<&'_ i128> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<&'_ i16> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_, '_> Shl<&'_ i16> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<&'_ i32> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_, '_> Shl<&'_ i32> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<&'_ i64> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_, '_> Shl<&'_ i64> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<&'_ i8> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_, '_> Shl<&'_ i8> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<&'_ isize> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_, '_> Shl<&'_ isize> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<&'_ u128> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_, '_> Shl<&'_ u128> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<&'_ u16> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_, '_> Shl<&'_ u16> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<&'_ u32> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_, '_> Shl<&'_ u32> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<&'_ u64> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_, '_> Shl<&'_ u64> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<&'_ u8> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_, '_> Shl<&'_ u8> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<&'_ usize> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_, '_> Shl<&'_ usize> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac> Shl<i128> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<i128> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac> Shl<i16> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<i16> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac> Shl<i32> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<i32> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac> Shl<i64> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<i64> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac> Shl<i8> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<i8> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac> Shl<isize> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<isize> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac> Shl<u128> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<u128> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac> Shl<u16> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<u16> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac> Shl<u32> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<u32> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac> Shl<u64> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<u64> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac> Shl<u8> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<u8> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac> Shl<usize> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> Shl<usize> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the << operator.

impl<Frac, '_> ShlAssign<&'_ i128> for FixedU16<Frac>[src]

impl<Frac, '_> ShlAssign<&'_ i16> for FixedU16<Frac>[src]

impl<Frac, '_> ShlAssign<&'_ i32> for FixedU16<Frac>[src]

impl<Frac, '_> ShlAssign<&'_ i64> for FixedU16<Frac>[src]

impl<Frac, '_> ShlAssign<&'_ i8> for FixedU16<Frac>[src]

impl<Frac, '_> ShlAssign<&'_ isize> for FixedU16<Frac>[src]

impl<Frac, '_> ShlAssign<&'_ u128> for FixedU16<Frac>[src]

impl<Frac, '_> ShlAssign<&'_ u16> for FixedU16<Frac>[src]

impl<Frac, '_> ShlAssign<&'_ u32> for FixedU16<Frac>[src]

impl<Frac, '_> ShlAssign<&'_ u64> for FixedU16<Frac>[src]

impl<Frac, '_> ShlAssign<&'_ u8> for FixedU16<Frac>[src]

impl<Frac, '_> ShlAssign<&'_ usize> for FixedU16<Frac>[src]

impl<Frac> ShlAssign<i128> for FixedU16<Frac>[src]

impl<Frac> ShlAssign<i16> for FixedU16<Frac>[src]

impl<Frac> ShlAssign<i32> for FixedU16<Frac>[src]

impl<Frac> ShlAssign<i64> for FixedU16<Frac>[src]

impl<Frac> ShlAssign<i8> for FixedU16<Frac>[src]

impl<Frac> ShlAssign<isize> for FixedU16<Frac>[src]

impl<Frac> ShlAssign<u128> for FixedU16<Frac>[src]

impl<Frac> ShlAssign<u16> for FixedU16<Frac>[src]

impl<Frac> ShlAssign<u32> for FixedU16<Frac>[src]

impl<Frac> ShlAssign<u64> for FixedU16<Frac>[src]

impl<Frac> ShlAssign<u8> for FixedU16<Frac>[src]

impl<Frac> ShlAssign<usize> for FixedU16<Frac>[src]

impl<Frac, '_> Shr<&'_ i128> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_, '_> Shr<&'_ i128> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<&'_ i16> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_, '_> Shr<&'_ i16> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<&'_ i32> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_, '_> Shr<&'_ i32> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<&'_ i64> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_, '_> Shr<&'_ i64> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<&'_ i8> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_, '_> Shr<&'_ i8> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<&'_ isize> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_, '_> Shr<&'_ isize> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<&'_ u128> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_, '_> Shr<&'_ u128> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<&'_ u16> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_, '_> Shr<&'_ u16> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<&'_ u32> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_, '_> Shr<&'_ u32> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<&'_ u64> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_, '_> Shr<&'_ u64> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<&'_ u8> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_, '_> Shr<&'_ u8> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<&'_ usize> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_, '_> Shr<&'_ usize> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac> Shr<i128> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<i128> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac> Shr<i16> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<i16> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac> Shr<i32> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<i32> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac> Shr<i64> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<i64> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac> Shr<i8> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<i8> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac> Shr<isize> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<isize> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac> Shr<u128> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<u128> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac> Shr<u16> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<u16> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac> Shr<u32> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<u32> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac> Shr<u64> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<u64> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac> Shr<u8> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<u8> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac> Shr<usize> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> Shr<usize> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the >> operator.

impl<Frac, '_> ShrAssign<&'_ i128> for FixedU16<Frac>[src]

impl<Frac, '_> ShrAssign<&'_ i16> for FixedU16<Frac>[src]

impl<Frac, '_> ShrAssign<&'_ i32> for FixedU16<Frac>[src]

impl<Frac, '_> ShrAssign<&'_ i64> for FixedU16<Frac>[src]

impl<Frac, '_> ShrAssign<&'_ i8> for FixedU16<Frac>[src]

impl<Frac, '_> ShrAssign<&'_ isize> for FixedU16<Frac>[src]

impl<Frac, '_> ShrAssign<&'_ u128> for FixedU16<Frac>[src]

impl<Frac, '_> ShrAssign<&'_ u16> for FixedU16<Frac>[src]

impl<Frac, '_> ShrAssign<&'_ u32> for FixedU16<Frac>[src]

impl<Frac, '_> ShrAssign<&'_ u64> for FixedU16<Frac>[src]

impl<Frac, '_> ShrAssign<&'_ u8> for FixedU16<Frac>[src]

impl<Frac, '_> ShrAssign<&'_ usize> for FixedU16<Frac>[src]

impl<Frac> ShrAssign<i128> for FixedU16<Frac>[src]

impl<Frac> ShrAssign<i16> for FixedU16<Frac>[src]

impl<Frac> ShrAssign<i32> for FixedU16<Frac>[src]

impl<Frac> ShrAssign<i64> for FixedU16<Frac>[src]

impl<Frac> ShrAssign<i8> for FixedU16<Frac>[src]

impl<Frac> ShrAssign<isize> for FixedU16<Frac>[src]

impl<Frac> ShrAssign<u128> for FixedU16<Frac>[src]

impl<Frac> ShrAssign<u16> for FixedU16<Frac>[src]

impl<Frac> ShrAssign<u32> for FixedU16<Frac>[src]

impl<Frac> ShrAssign<u64> for FixedU16<Frac>[src]

impl<Frac> ShrAssign<u8> for FixedU16<Frac>[src]

impl<Frac> ShrAssign<usize> for FixedU16<Frac>[src]

impl<Frac, '_> Sub<&'_ FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the - operator.

impl<Frac, '_, '_> Sub<&'_ FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the - operator.

impl<Frac> Sub<FixedU16<Frac>> for FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the - operator.

impl<Frac, '_> Sub<FixedU16<Frac>> for &'_ FixedU16<Frac>[src]

type Output = FixedU16<Frac>

The resulting type after applying the - operator.

impl<Frac, '_> SubAssign<&'_ FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac> SubAssign<FixedU16<Frac>> for FixedU16<Frac>[src]

impl<'a, Frac: 'a> Sum<&'a FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac> Sum<FixedU16<Frac>> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> ToFixed for FixedU16<Frac>[src]

fn to_fixed<F: Fixed>(self) -> F[src]

Converts a fixed-point number.

Any extra fractional bits are discarded, which rounds towards −∞.

fn checked_to_fixed<F: Fixed>(self) -> Option<F>[src]

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

Any extra fractional bits are discarded, which rounds towards −∞.

fn saturating_to_fixed<F: Fixed>(self) -> F[src]

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

Any extra fractional bits are discarded, which rounds towards −∞.

fn wrapping_to_fixed<F: Fixed>(self) -> F[src]

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

Any extra fractional bits are discarded, which rounds towards −∞.

fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)[src]

Converts 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 discarded, which rounds towards −∞.

impl<Frac: LeEqU16> ToPrimitive for FixedU16<Frac>[src]

impl<Frac: LeEqU16> Unsigned for FixedU16<Frac> where
    Frac: IsLessOrEqual<U15, Output = True>, 
[src]

impl<Frac: LeEqU16> UpperHex for FixedU16<Frac>[src]

impl<Frac> WrappingAdd for FixedU16<Frac>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU128> WrappingCast<FixedI128<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU16> WrappingCast<FixedI16<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU32> WrappingCast<FixedI32<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU64> WrappingCast<FixedI64<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU8> WrappingCast<FixedI8<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU128> WrappingCast<FixedU128<FracDst>> for FixedU16<FracSrc>[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for bool[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for i8[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for u64[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for u128[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for usize[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for f32[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for f64[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for f16[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for bf16[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for i16[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for i32[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for i64[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for i128[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for isize[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for u8[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for u16[src]

impl<Frac: LeEqU16> WrappingCast<FixedU16<Frac>> for u32[src]

impl<FracSrc: LeEqU8, FracDst: LeEqU16> WrappingCast<FixedU16<FracDst>> for FixedI8<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU16> WrappingCast<FixedU16<FracDst>> for FixedI16<FracSrc>[src]

impl<FracSrc: LeEqU32, FracDst: LeEqU16> WrappingCast<FixedU16<FracDst>> for FixedI32<FracSrc>[src]

impl<FracSrc: LeEqU64, FracDst: LeEqU16> WrappingCast<FixedU16<FracDst>> for FixedI64<FracSrc>[src]

impl<FracSrc: LeEqU128, FracDst: LeEqU16> WrappingCast<FixedU16<FracDst>> for FixedI128<FracSrc>[src]

impl<FracSrc: LeEqU8, FracDst: LeEqU16> WrappingCast<FixedU16<FracDst>> for FixedU8<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU16> WrappingCast<FixedU16<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU32, FracDst: LeEqU16> WrappingCast<FixedU16<FracDst>> for FixedU32<FracSrc>[src]

impl<FracSrc: LeEqU64, FracDst: LeEqU16> WrappingCast<FixedU16<FracDst>> for FixedU64<FracSrc>[src]

impl<FracSrc: LeEqU128, FracDst: LeEqU16> WrappingCast<FixedU16<FracDst>> for FixedU128<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU32> WrappingCast<FixedU32<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU64> WrappingCast<FixedU64<FracDst>> for FixedU16<FracSrc>[src]

impl<FracSrc: LeEqU16, FracDst: LeEqU8> WrappingCast<FixedU8<FracDst>> for FixedU16<FracSrc>[src]

impl<Frac: LeEqU16> WrappingCast<bf16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingCast<f16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingCast<f32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingCast<f64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingCast<i128> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingCast<i16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingCast<i32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingCast<i64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingCast<i8> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingCast<isize> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingCast<u128> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingCast<u16> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingCast<u32> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingCast<u64> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingCast<u8> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingCast<usize> for FixedU16<Frac>[src]

impl<Frac: LeEqU16> WrappingMul for FixedU16<Frac>[src]

impl<Frac> WrappingNeg for FixedU16<Frac>[src]

impl<Frac> WrappingShl for FixedU16<Frac>[src]

impl<Frac> WrappingShr for FixedU16<Frac>[src]

impl<Frac> WrappingSub for FixedU16<Frac>[src]

impl<Frac> Zero for FixedU16<Frac>[src]

Auto Trait Implementations

impl<Frac> RefUnwindSafe for FixedU16<Frac> where
    Frac: RefUnwindSafe

impl<Frac> Send for FixedU16<Frac> where
    Frac: Send

impl<Frac> Sync for FixedU16<Frac> where
    Frac: Sync

impl<Frac> Unpin for FixedU16<Frac> where
    Frac: Unpin

impl<Frac> UnwindSafe for FixedU16<Frac> where
    Frac: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Az for T[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> CheckedAs for T[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<Src, Dst> LosslessTryInto<Dst> for Src where
    Dst: LosslessTryFrom<Src>, 
[src]

impl<Src, Dst> LossyInto<Dst> for Src where
    Dst: LossyFrom<Src>, 
[src]

impl<T> NumAssign for T where
    T: Num + NumAssignOps<T>, 
[src]

impl<T, Rhs> NumAssignOps<Rhs> for T where
    T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>, 
[src]

impl<T> NumAssignRef for T where
    T: NumAssign + for<'r> NumAssignOps<&'r T>, 
[src]

impl<T, Rhs, Output> NumOps<Rhs, Output> for T where
    T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>, 
[src]

impl<T> NumRef for T where
    T: Num + for<'r> NumOps<&'r T, T>, 
[src]

impl<T> OverflowingAs for T[src]

impl<T, Base> RefNum<Base> for T where
    T: NumOps<Base, Base> + for<'r> NumOps<&'r Base, Base>, 
[src]

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> SaturatingAs for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> WrappingAs for T[src]