[][src]Crate az

Numeric casts

This crate provides casts and checked casts.

Quick examples

use az::{Az, OverflowingAs, WrappingAs};
use core::num::Wrapping;

// Panics on overflow with `debug_assertions`, otherwise wraps
assert_eq!(12i32.az::<u32>(), 12u32);

// Always wraps
let wrapped = 1u32.wrapping_neg();
assert_eq!((-1).wrapping_as::<u32>(), wrapped);
assert_eq!((-1).overflowing_as::<u32>(), (wrapped, true));

// Wrapping can also be obtained using `Wrapping`
assert_eq!((-1).az::<Wrapping<u32>>().0, wrapped);

Conversions from floating-point to integers are also supported. Numbers are rounded towards zero, but the Round wrapper can be used to convert floating-point numbers to integers with rounding to the nearest, with ties rounded to even.

use az::{Az, CheckedAs, Round, SaturatingAs};
use core::f32;

assert_eq!(15.7.az::<i32>(), 15);
assert_eq!(Round(15.5).az::<i32>(), 16);
assert_eq!(1.5e20.saturating_as::<i32>(), i32::max_value());
assert_eq!(f32::NAN.checked_as::<i32>(), None);

Using the az crate

The az crate is available on crates.io. To use it in your crate, add it as a dependency inside Cargo.toml:

[dependencies]
az = "0.3.1"

License

This crate is free software: you can redistribute it and/or modify it under the terms of either

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache License, Version 2.0, shall be dual licensed as above, without any additional terms or conditions.

Structs

Round

Used to convert floating-point numbers to integers with rounding to the nearest, with ties rounded to even.

Traits

Az

Used to cast values.

Cast

Used to cast values.

CheckedAs

Used for checked casts.

CheckedCast

Used for checked casts.

OverflowingAs

Used for overflowing casts.

OverflowingCast

Used for overflowing casts.

SaturatingAs

Used to cast into the destination type, saturating if the value does not fit.

SaturatingCast

Used to cast into the destination type, saturating if the value does not fit.

StaticAsDeprecated

Used to cast values if all possible source type values fit in the destination type.

StaticCastDeprecated

Used to cast values if all possible source type values fit in the destination type.

WrappingAs

Wrapping cast.

WrappingCast

Wrapping cast.

Functions

cast

Casts the value.

checked_cast

Casts the value, returning None if the value does not fit.

overflowing_cast

Overflowing cast.

saturating_cast

Casts the value, saturating if the value does not fit.

static_castDeprecated

Casts the value, returning None if the destination type cannot hold all values of the source type.

wrapping_cast

Casts the value, wrapping on overflow.