use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
#[serde(rename_all = "lowercase")]
pub enum LogFormat {
#[default]
Text,
Json,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn default_is_text() {
assert_eq!(LogFormat::default(), LogFormat::Text);
}
#[test]
fn parses_text() {
let v: LogFormat = toml::from_str("v = \"text\"\n")
.map(|t: toml::Table| t["v"].clone().try_into().unwrap())
.unwrap();
assert_eq!(v, LogFormat::Text);
}
#[test]
fn parses_json() {
let v: LogFormat = toml::from_str("v = \"json\"\n")
.map(|t: toml::Table| t["v"].clone().try_into().unwrap())
.unwrap();
assert_eq!(v, LogFormat::Json);
}
#[test]
fn unknown_rejected() {
let result: Result<LogFormat, _> = toml::Value::String("yaml".into()).try_into();
assert!(result.is_err());
}
}