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

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.