Bug: 176913139

Clone this repo:
  1. ec29f88 Update Android.bp by running cargo_embargo am: 6913d870ff by James Farrell · 4 weeks ago main master
  2. 6913d87 Update Android.bp by running cargo_embargo by James Farrell · 4 weeks ago
  3. cb2684b Merge "Ensure crate is compiled with std for panic handler" into main am: 638e33bd39 by Treehugger Robot · 5 weeks ago
  4. 638e33b Merge "Ensure crate is compiled with std for panic handler" into main by Treehugger Robot · 5 weeks ago
  5. 5e5a5f7 Ensure crate is compiled with std for panic handler by Chris Wailes · 5 weeks 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.