1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
4#[serde(rename_all = "snake_case")]
5pub enum Status {
6 Compressed,
7 Passthrough,
8}
9
10#[cfg(test)]
11mod tests {
12 use super::*;
13
14 #[test]
15 fn serializes_to_canonical_snake_case_strings() {
16 assert_eq!(
17 serde_json::to_string(&Status::Compressed).unwrap(),
18 "\"compressed\""
19 );
20 assert_eq!(
21 serde_json::to_string(&Status::Passthrough).unwrap(),
22 "\"passthrough\""
23 );
24 }
25
26 #[test]
27 fn round_trips_through_json() {
28 for status in [Status::Compressed, Status::Passthrough] {
29 let json = serde_json::to_string(&status).unwrap();
30 let back: Status = serde_json::from_str(&json).unwrap();
31 assert_eq!(status, back);
32 }
33 }
34}