use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)]
pub enum CacheLevel {
#[default]
#[serde(rename = "full")]
Full,
#[serde(rename = "skipMemory")]
SkipMemory,
#[serde(rename = "skipAll")]
SkipAll,
#[serde(rename = "cacheOnly")]
CacheOnly,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn cache_level_wire_names_roundtrip() {
let cases = [
(CacheLevel::Full, "\"full\""),
(CacheLevel::SkipMemory, "\"skipMemory\""),
(CacheLevel::SkipAll, "\"skipAll\""),
(CacheLevel::CacheOnly, "\"cacheOnly\""),
];
for (level, wire) in cases {
assert_eq!(serde_json::to_string(&level).unwrap(), wire);
assert_eq!(serde_json::from_str::<CacheLevel>(wire).unwrap(), level);
}
}
}