Trait fixed::traits::ToFixed

source ·
pub trait ToFixed {
    fn to_fixed<F: Fixed>(self) -> F;
    fn checked_to_fixed<F: Fixed>(self) -> Option<F>;
    fn saturating_to_fixed<F: Fixed>(self) -> F;
    fn wrapping_to_fixed<F: Fixed>(self) -> F;
    fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool);

    fn unwrapped_to_fixed<F: Fixed>(self) -> F
    where
        Self: Sized
, { ... } }
Expand description

This trait provides checked conversions to fixed-point numbers.

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

Examples

use fixed::traits::ToFixed;
use fixed::types::{U8F8, U16F16};
let f: U8F8 = 13.5f32.to_fixed();
assert_eq!(f, U8F8::from_bits((13 << 8) | (1 << 7)));
// 0x1234.5678 is too large and can be wrapped to 0x34.56
let too_large = U16F16::from_bits(0x1234_5678);
let checked: Option<U8F8> = too_large.checked_to_num();
assert_eq!(checked, None);
let saturating: U8F8 = too_large.saturating_to_num();
assert_eq!(saturating, U8F8::MAX);
let wrapping: U8F8 = too_large.wrapping_to_num();
assert_eq!(wrapping, U8F8::from_bits(0x3456));
let overflowing: (U8F8, bool) = too_large.overflowing_to_num();
assert_eq!(overflowing, (U8F8::from_bits(0x3456), true));

Required Methods§

Converts to a fixed-point number.

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

Panics

Panics if self is a floating-point number that is not finite.

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

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

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

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

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

Panics

Panics if self is a floating-point number that is NaN.

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

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

Panics

Panics if self is a floating-point number that is not finite.

Converts to 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.

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

Panics

Panics if self is a floating-point number that is not finite.

Provided Methods§

Converts to a fixed-point number, panicking if it does not fit.

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

Panics

Panics if self is a floating-point number that is not finite or if the value does not fit, even if debug assertions are not enabled.

Implementations on Foreign Types§

Converts a bool to a fixed-point number.

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

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

Convert a bool to a fixed-point number, saturating if it does not fit.

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

Converts a bool to 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.

Converts a bool to a fixed-point number, panicking if it does not fit.

Panics

Panics if the value does not fit, even when debug assertions are not enabled.

Converts an integer to a fixed-point number.

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

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

Converts an integer to a fixed-point number, saturating if it does not fit.

Converts an integer to a fixed-point number, wrapping if it does not fit.

Converts an integer to 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.

Converts an integer to a fixed-point number, panicking if it does not fit.

Panics

Panics if the value does not fit, even when debug assertions are not enabled.

Converts an integer to a fixed-point number.

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

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

Converts an integer to a fixed-point number, saturating if it does not fit.

Converts an integer to a fixed-point number, wrapping if it does not fit.

Converts an integer to 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.

Converts an integer to a fixed-point number, panicking if it does not fit.

Panics

Panics if the value does not fit, even when debug assertions are not enabled.

Converts an integer to a fixed-point number.

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

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

Converts an integer to a fixed-point number, saturating if it does not fit.

Converts an integer to a fixed-point number, wrapping if it does not fit.

Converts an integer to 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.

Converts an integer to a fixed-point number, panicking if it does not fit.

Panics

Panics if the value does not fit, even when debug assertions are not enabled.

Converts an integer to a fixed-point number.

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

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

Converts an integer to a fixed-point number, saturating if it does not fit.

Converts an integer to a fixed-point number, wrapping if it does not fit.

Converts an integer to 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.

Converts an integer to a fixed-point number, panicking if it does not fit.

Panics

Panics if the value does not fit, even when debug assertions are not enabled.

Converts an integer to a fixed-point number.

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

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

Converts an integer to a fixed-point number, saturating if it does not fit.

Converts an integer to a fixed-point number, wrapping if it does not fit.

Converts an integer to 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.

Converts an integer to a fixed-point number, panicking if it does not fit.

Panics

Panics if the value does not fit, even when debug assertions are not enabled.

Converts an integer to a fixed-point number.

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

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

Converts an integer to a fixed-point number, saturating if it does not fit.

Converts an integer to a fixed-point number, wrapping if it does not fit.

Converts an integer to 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.

Converts an integer to a fixed-point number, panicking if it does not fit.

Panics

Panics if the value does not fit, even when debug assertions are not enabled.

Converts an integer to a fixed-point number.

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

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

Converts an integer to a fixed-point number, saturating if it does not fit.

Converts an integer to a fixed-point number, wrapping if it does not fit.

Converts an integer to 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.

Converts an integer to a fixed-point number, panicking if it does not fit.

Panics

Panics if the value does not fit, even when debug assertions are not enabled.

Converts an integer to a fixed-point number.

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

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

Converts an integer to a fixed-point number, saturating if it does not fit.

Converts an integer to a fixed-point number, wrapping if it does not fit.

Converts an integer to 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.

Converts an integer to a fixed-point number, panicking if it does not fit.

Panics

Panics if the value does not fit, even when debug assertions are not enabled.

Converts an integer to a fixed-point number.

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

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

Converts an integer to a fixed-point number, saturating if it does not fit.

Converts an integer to a fixed-point number, wrapping if it does not fit.

Converts an integer to 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.

Converts an integer to a fixed-point number, panicking if it does not fit.

Panics

Panics if the value does not fit, even when debug assertions are not enabled.

Converts an integer to a fixed-point number.

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

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

Converts an integer to a fixed-point number, saturating if it does not fit.

Converts an integer to a fixed-point number, wrapping if it does not fit.

Converts an integer to 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.

Converts an integer to a fixed-point number, panicking if it does not fit.

Panics

Panics if the value does not fit, even when debug assertions are not enabled.

Converts an integer to a fixed-point number.

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

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

Converts an integer to a fixed-point number, saturating if it does not fit.

Converts an integer to a fixed-point number, wrapping if it does not fit.

Converts an integer to 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.

Converts an integer to a fixed-point number, panicking if it does not fit.

Panics

Panics if the value does not fit, even when debug assertions are not enabled.

Converts an integer to a fixed-point number.

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

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

Converts an integer to a fixed-point number, saturating if it does not fit.

Converts an integer to a fixed-point number, wrapping if it does not fit.

Converts an integer to 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.

Converts an integer to a fixed-point number, panicking if it does not fit.

Panics

Panics if the value does not fit, even when debug assertions are not enabled.

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

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

Panics

Panics if self is not finite.

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

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

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

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

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

Panics

Panics if self is NaN.

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

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

Panics

Panics if self is not finite.

Converts a floating-point number to 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.

Panics

Panics if self is not finite.

Converts a floating-point number to a fixed-point number, panicking if it does not fit.

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

Panics

Panics if self is not finite or if the value does not fit, even when debug assertions are not enabled.

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

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

Panics

Panics if self is not finite.

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

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

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

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

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

Panics

Panics if self is NaN.

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

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

Panics

Panics if self is not finite.

Converts a floating-point number to 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.

Panics

Panics if self is not finite.

Converts a floating-point number to a fixed-point number, panicking if it does not fit.

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

Panics

Panics if self is not finite or if the value does not fit, even when debug assertions are not enabled.

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

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

Panics

Panics if self is not finite.

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

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

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

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

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

Panics

Panics if self is NaN.

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

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

Panics

Panics if self is not finite.

Converts a floating-point number to 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.

Panics

Panics if self is not finite.

Converts a floating-point number to a fixed-point number, panicking if it does not fit.

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

Panics

Panics if self is not finite or if the value does not fit, even when debug assertions are not enabled.

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

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

Panics

Panics if self is not finite.

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

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

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

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

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

Panics

Panics if self is NaN.

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

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

Panics

Panics if self is not finite.

Converts a floating-point number to 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.

Panics

Panics if self is not finite.

Converts a floating-point number to a fixed-point number, panicking if it does not fit.

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

Panics

Panics if self is not finite or if the value does not fit, even when debug assertions are not enabled.

Implementors§