Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
82
third-party/vendor/num_enum/tests/unsafe_from_primitive.rs
vendored
Normal file
82
third-party/vendor/num_enum/tests/unsafe_from_primitive.rs
vendored
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
use ::num_enum::UnsafeFromPrimitive;
|
||||
|
||||
// Guard against https://github.com/illicitonion/num_enum/issues/27
|
||||
mod alloc {}
|
||||
mod core {}
|
||||
mod num_enum {}
|
||||
mod std {}
|
||||
|
||||
#[test]
|
||||
fn has_unsafe_from_primitive_number() {
|
||||
#[derive(Debug, Eq, PartialEq, UnsafeFromPrimitive)]
|
||||
#[repr(u8)]
|
||||
enum Enum {
|
||||
Zero,
|
||||
One,
|
||||
}
|
||||
|
||||
unsafe {
|
||||
assert_eq!(Enum::unchecked_transmute_from(0_u8), Enum::Zero);
|
||||
assert_eq!(Enum::unchecked_transmute_from(1_u8), Enum::One);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn has_unsafe_from_primitive_number_with_alternatives_and_default_which_are_ignored() {
|
||||
#[derive(Debug, Eq, PartialEq, UnsafeFromPrimitive)]
|
||||
#[repr(u8)]
|
||||
enum Enum {
|
||||
Zero,
|
||||
One,
|
||||
#[num_enum(alternatives = [3, 4])]
|
||||
Some,
|
||||
#[num_enum(default)]
|
||||
Many = 5,
|
||||
}
|
||||
|
||||
unsafe {
|
||||
assert_eq!(Enum::unchecked_transmute_from(0_u8), Enum::Zero);
|
||||
assert_eq!(Enum::unchecked_transmute_from(1_u8), Enum::One);
|
||||
assert_eq!(Enum::unchecked_transmute_from(2_u8), Enum::Some);
|
||||
assert_eq!(Enum::unchecked_transmute_from(5_u8), Enum::Many);
|
||||
// Any other conversions would be undefined behavior.
|
||||
}
|
||||
|
||||
#[allow(deprecated)]
|
||||
unsafe {
|
||||
assert_eq!(Enum::from_unchecked(0_u8), Enum::Zero);
|
||||
assert_eq!(Enum::from_unchecked(1_u8), Enum::One);
|
||||
assert_eq!(Enum::from_unchecked(2_u8), Enum::Some);
|
||||
assert_eq!(Enum::from_unchecked(5_u8), Enum::Many);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn has_unsafe_from_primitive_number_with_alternatives_and_std_default_which_are_ignored() {
|
||||
#[derive(Debug, Default, Eq, PartialEq, UnsafeFromPrimitive)]
|
||||
#[repr(u8)]
|
||||
enum Enum {
|
||||
Zero,
|
||||
One,
|
||||
#[num_enum(alternatives = [3, 4])]
|
||||
Some,
|
||||
#[default]
|
||||
Many = 5,
|
||||
}
|
||||
|
||||
unsafe {
|
||||
assert_eq!(Enum::unchecked_transmute_from(0_u8), Enum::Zero);
|
||||
assert_eq!(Enum::unchecked_transmute_from(1_u8), Enum::One);
|
||||
assert_eq!(Enum::unchecked_transmute_from(2_u8), Enum::Some);
|
||||
assert_eq!(Enum::unchecked_transmute_from(5_u8), Enum::Many);
|
||||
// Any other conversions would be undefined behavior.
|
||||
}
|
||||
|
||||
#[allow(deprecated)]
|
||||
unsafe {
|
||||
assert_eq!(Enum::from_unchecked(0_u8), Enum::Zero);
|
||||
assert_eq!(Enum::from_unchecked(1_u8), Enum::One);
|
||||
assert_eq!(Enum::from_unchecked(2_u8), Enum::Some);
|
||||
assert_eq!(Enum::from_unchecked(5_u8), Enum::Many);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue