terdoc_types/
input_format.rs1use serde::{Deserialize, Serialize};
5
6#[derive(
8 Debug,
9 Clone,
10 Copy,
11 PartialEq,
12 Eq,
13 Serialize,
14 Deserialize,
15 strum::AsRefStr,
16 strum::Display,
17 strum::EnumCount,
18 strum::EnumIter,
19 strum::EnumString,
20 strum::VariantNames,
21 strum::IntoStaticStr,
22)]
23#[serde(rename_all = "snake_case")]
24#[strum(serialize_all = "snake_case")]
25pub enum InputFormat {
26 Markdown,
28}
29
30#[cfg(test)]
31mod tests {
32 use pretty_assertions::assert_eq;
33 use serde_json::json;
34 use strum::VariantNames;
35
36 use super::*;
37
38 #[test]
39 fn serialize_strum_variant_names() {
40 assert_eq!("markdown", InputFormat::Markdown.as_ref());
41 }
42
43 #[test]
44 fn iterate_strum_variant_names() {
45 assert_eq!(["markdown"], InputFormat::VARIANTS);
46 }
47
48 #[test]
49 fn serialize_json() {
50 assert_eq!(
51 json!("markdown"),
52 serde_json::to_value(InputFormat::Markdown).unwrap()
53 );
54 }
55
56 #[test]
57 fn deserialize_json() {
58 assert_eq!(
59 InputFormat::Markdown,
60 serde_json::from_value(json!("markdown")).unwrap()
61 );
62 }
63}