Bug: 176913139

Clone this repo:
  1. f021041 Merge "Refresh Android.bp, cargo2android.json, TEST_MAPPING." by Joel Galenson · 5 weeks ago master
  2. ebe6985 Refresh Android.bp, cargo2android.json, TEST_MAPPING. by Joel Galenson · 8 weeks ago
  3. 7b38c4d Enable tests am: 558bba38c3 by Jeff Vander Stoep · 10 weeks ago
  4. 558bba3 Enable tests by Jeff Vander Stoep · 3 months ago
  5. 0b093da Merge "Upgrade rust/crates/cast to 0.3.0" am: a860660912 am: b3daea5e9f am: ce06b14f42 by Joel Galenson · 3 months ago

crates.io crates.io


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


Licensed under either of

at your option.


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.