1
0
mirror of https://github.com/danog/strum.git synced 2024-12-04 02:17:56 +01:00
strum/strum_tests/tests/phf.rs
kraktus fd519ec47f
Fix EnumIter macro code generation (#287)
* Add test to ensure macro call `::core`-related functions

Avoiding local core modules to break the macro-generated code.

Currently failing due to issue with `EnumIter` macros.

* Fix macro of `EnumIter`

close https://github.com/Peternator7/strum/issues/284

---------

Co-authored-by: kraktus <kraktus@users.noreply.github.com>
2023-07-29 14:58:18 -07:00

36 lines
861 B
Rust

mod core {} // ensure macros call `::core`
#[cfg(feature = "test_phf")]
#[test]
fn from_str_with_phf() {
#[derive(Debug, PartialEq, Eq, Clone, strum::EnumString)]
#[strum(use_phf)]
enum Color {
#[strum(ascii_case_insensitive)]
Blue,
Red,
}
assert_eq!("Red".parse::<Color>().unwrap(), Color::Red);
assert_eq!("bLuE".parse::<Color>().unwrap(), Color::Blue);
}
#[cfg(feature = "test_phf")]
#[test]
fn from_str_with_phf_big() {
// This tests PHF when there are many case insensitive variants
#[derive(Debug, PartialEq, Eq, Clone, strum::EnumString)]
#[strum(use_phf, ascii_case_insensitive)]
enum Enum {
Var1,
Var2,
Var3,
Var4,
Var5,
Var6,
Var7,
Var8,
Var9,
}
assert_eq!("vAr2".parse::<Enum>().unwrap(), Enum::Var2);
}