1use instant_xml::ToXml;
2use std::str::FromStr;
3
4#[derive(Clone, Copy, Debug, Eq, PartialEq, ToXml)]
5#[xml(scalar)]
6pub enum Mode {
7 Relaxed,
8 Strict,
9}
10
11impl From<Mode> for char {
12 fn from(value: Mode) -> Self {
13 match value {
14 Mode::Relaxed => 'r',
15 Mode::Strict => 's',
16 }
17 }
18}
19
20impl FromStr for Mode {
21 type Err = String;
22
23 fn from_str(value: &str) -> Result<Self, Self::Err> {
24 Ok(match value {
25 "r" => Self::Relaxed,
26 "s" => Self::Strict,
27 _ => return Err(format!("invalid mode {value:?}")),
28 })
29 }
30}