1use serde::{Deserialize, Serialize};
7
8#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
10#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
11#[serde(rename_all = "snake_case")]
12pub enum CompressionMode {
13 Geometry,
15}
16
17#[cfg(test)]
18mod tests {
19 use super::*;
20
21 #[derive(Serialize)]
22 struct Wrap {
23 #[serde(skip_serializing_if = "Option::is_none")]
24 compress: Option<CompressionMode>,
25 }
26
27 #[test]
28 fn none_is_omitted() {
29 let j = serde_json::to_string(&Wrap { compress: None }).unwrap();
30 assert_eq!(j, "{}");
31 }
32
33 #[test]
34 fn geometry_is_string_literal() {
35 let j = serde_json::to_string(&Wrap {
36 compress: Some(CompressionMode::Geometry),
37 })
38 .unwrap();
39 assert_eq!(j, "{\"compress\":\"geometry\"}");
40 }
41}