Trait kas::cast::CastApprox

pub trait CastApprox<T> {
    // Required methods
    fn try_cast_approx(self) -> Result<T, Error>;
    fn cast_approx(self) -> T;
}
Expand description

Like Into, but for ConvApprox

On success, the result must be approximately the same as the input value: the difference must be smaller than the precision of the target type. For example, one may have 1.9f32.cast_approx() = 1.

Precise rounding mode should usually be truncation (round towards zero), but this is not required. Use CastFloat where a specific rounding mode is required.

This trait is automatically implemented for every implementation of ConvApprox.

Required Methods§

fn try_cast_approx(self) -> Result<T, Error>

Try approximate conversion from Self to T

Use this method to explicitly handle errors.

fn cast_approx(self) -> T

Cast approximately from Self to T

Use this method only where success is expected: implementations are permitted to panic or silently return a different (safe, defined) value on error.

In debug builds, implementations must panic.

Implementations by this library will panic in debug builds or if the always_assert feature flag is used, otherwise conversions have the same behaviour as the as keyword.

Implementors§

§

impl<S, T> CastApprox<T> for S
where T: ConvApprox<S>,