Vendor dependencies for 0.3.0 release

This commit is contained in:
2025-09-27 10:29:08 -05:00
parent 0c8d39d483
commit 82ab7f317b
26803 changed files with 16134934 additions and 0 deletions

View 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);
}
}