Bug: 176913139

Clone this repo:
  1. 2a622be Merge "Update TEST_MAPPING" am: ecc0c7052c am: 23d01e5c2c am: 1e6fa6bf04 am: cfc196cce0 by Treehugger Robot · 8 months ago main-16k-with-phones master
  2. cfc196c Merge "Update TEST_MAPPING" am: ecc0c7052c am: 23d01e5c2c am: 1e6fa6bf04 by Treehugger Robot · 8 months ago
  3. 1e6fa6b Merge "Update TEST_MAPPING" am: ecc0c7052c am: 23d01e5c2c by Treehugger Robot · 8 months ago main-16k
  4. 23d01e5 Merge "Update TEST_MAPPING" am: ecc0c7052c by Treehugger Robot · 8 months ago
  5. ecc0c70 Merge "Update TEST_MAPPING" by Treehugger Robot · 8 months ago

crates.io crates.io

cast

Ergonomic, checked cast functions for primitive types

extern crate cast;

// `u8` and `u16` are checked cast functions, use them to cast from any numeric
// primitive to `u8`/`u16` respectively
use cast::{u8, u16, Error};

// Infallible operations, like integer promotion, are equivalent to a normal
// cast with `as`
assert_eq!(u16(0u8), 0u16);

// Everything else will return a `Result` depending on the success of the
// operation
assert_eq!(u8(0u16), Ok(0u8));
assert_eq!(u8(256u16), Err(Error::Overflow));
assert_eq!(u8(-1i8), Err(Error::Underflow));
assert_eq!(u8(1. / 0.), Err(Error::Infinite));
assert_eq!(u8(0. / 0.), Err(Error::NaN));

API docs

License

Licensed under either of

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-2.0 license, shall be dual licensed as above, without any additional terms or conditions.