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

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