1
0
mirror of https://github.com/danog/strum.git synced 2024-12-11 17:09:36 +01:00
strum/strum_tests/tests/serialize_all.rs
Evgeniy Dushistov 640c0bb713 Implement serialize_all=UPPERCASE (#48)
* Implement serialize_all=UPPERCASE

* applying rustfmt 1.2.2-stable

* handling of all options listed in serde docs for compatibility

See https://serde.rs/container-attrs.html#container-attributes
2019-07-29 08:26:29 -07:00

38 lines
1018 B
Rust

/// test serialize_all cooperation with other macroses
extern crate strum;
#[macro_use]
extern crate strum_macros;
use std::str::FromStr;
use std::string::ToString;
#[derive(Debug, Eq, PartialEq, EnumString, ToString, IntoStaticStr)]
#[strum(serialize_all = "title_case")]
enum Foo1 {
DarkBlack,
Dim { glow: usize },
BrightWhite,
}
#[test]
fn test_serialize_all_title_case() {
assert_eq!("Dark Black", Foo1::DarkBlack.to_string());
assert_eq!(Foo1::DarkBlack, Foo1::from_str("Dark Black").unwrap());
assert_eq!("Dark Black", <&'static str>::from(Foo1::DarkBlack));
}
#[derive(Debug, Eq, PartialEq, EnumString, ToString, IntoStaticStr)]
#[strum(serialize_all = "UPPERCASE")]
enum Foo2 {
DarkBlack,
Dim { glow: usize },
BrightWhite,
}
#[test]
fn test_serialize_all_upper_case() {
assert_eq!("DARKBLACK", Foo2::DarkBlack.to_string());
assert_eq!(Foo2::DarkBlack, Foo2::from_str("DARKBLACK").unwrap());
assert_eq!("DARKBLACK", <&'static str>::from(Foo2::DarkBlack));
}