use serde::{Deserialize, Serialize};
#[derive(
Debug,
Clone,
Copy,
PartialEq,
Eq,
Serialize,
Deserialize,
strum::AsRefStr,
strum::Display,
strum::EnumCount,
strum::EnumIter,
strum::EnumString,
strum::VariantNames,
strum::IntoStaticStr,
)]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
pub enum InputFormat {
Markdown,
}
#[cfg(test)]
mod tests {
use pretty_assertions::assert_eq;
use serde_json::json;
use strum::VariantNames;
use super::*;
#[test]
fn serialize_strum_variant_names() {
assert_eq!("markdown", InputFormat::Markdown.as_ref());
}
#[test]
fn iterate_strum_variant_names() {
assert_eq!(["markdown"], InputFormat::VARIANTS);
}
#[test]
fn serialize_json() {
assert_eq!(
json!("markdown"),
serde_json::to_value(InputFormat::Markdown).unwrap()
);
}
#[test]
fn deserialize_json() {
assert_eq!(
InputFormat::Markdown,
serde_json::from_value(json!("markdown")).unwrap()
);
}
}