You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
741 B
Rust
22 lines
741 B
Rust
use enumscribe::*;
|
|
|
|
#[derive(ScribeStaticStr, TryUnscribe, PartialEq, Eq, Debug)]
|
|
#[enumscribe(rename_all = "snake_case")]
|
|
enum Bird {
|
|
BlackRedstart,
|
|
#[enumscribe(case_insensitive)]
|
|
GardenWarbler,
|
|
#[enumscribe(rename = "SCREAMING-KEBAB-CASE")]
|
|
BarnacleGoose,
|
|
}
|
|
|
|
fn main() {
|
|
assert_eq!(Bird::BlackRedstart.scribe(), "black_redstart");
|
|
assert_eq!(Bird::GardenWarbler.scribe(), "garden_warbler");
|
|
assert_eq!(Bird::BarnacleGoose.scribe(), "BARNACLE-GOOSE");
|
|
|
|
assert_eq!(Bird::try_unscribe("black_redstart").unwrap(), Bird::BlackRedstart);
|
|
assert_eq!(Bird::try_unscribe("gArDeN_wArBlEr").unwrap(), Bird::GardenWarbler);
|
|
assert_eq!(Bird::try_unscribe("BARNACLE-GOOSE").unwrap(), Bird::BarnacleGoose);
|
|
}
|