zerolaunch_plugin_api/host/
cache_level.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)]
7pub enum CacheLevel {
8 #[default]
11 #[serde(rename = "full")]
12 Full,
13 #[serde(rename = "skipMemory")]
16 SkipMemory,
17 #[serde(rename = "skipAll")]
20 SkipAll,
21 #[serde(rename = "cacheOnly")]
25 CacheOnly,
26}
27
28#[cfg(test)]
29mod tests {
30 use super::*;
31
32 #[test]
34 fn cache_level_wire_names_roundtrip() {
35 let cases = [
36 (CacheLevel::Full, "\"full\""),
37 (CacheLevel::SkipMemory, "\"skipMemory\""),
38 (CacheLevel::SkipAll, "\"skipAll\""),
39 (CacheLevel::CacheOnly, "\"cacheOnly\""),
40 ];
41 for (level, wire) in cases {
42 assert_eq!(serde_json::to_string(&level).unwrap(), wire);
43 assert_eq!(serde_json::from_str::<CacheLevel>(wire).unwrap(), level);
44 }
45 }
46}