Skip to main content

cipherstash_config/column/index/
ste_vec_mode.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Copy, Clone, Debug, Default, Serialize, Deserialize, PartialEq, Eq)]
4#[serde(rename_all = "kebab-case")]
5pub enum SteVecMode {
6    Compat,
7    #[default]
8    Standard,
9}
10
11#[cfg(test)]
12mod tests {
13    use super::SteVecMode;
14    use serde_json::json;
15
16    #[test]
17    fn test_default_is_standard() {
18        assert_eq!(SteVecMode::default(), SteVecMode::Standard);
19    }
20
21    #[test]
22    fn test_serializes_kebab_case() {
23        assert_eq!(
24            serde_json::to_value(SteVecMode::Compat).unwrap(),
25            json!("compat")
26        );
27        assert_eq!(
28            serde_json::to_value(SteVecMode::Standard).unwrap(),
29            json!("standard")
30        );
31    }
32
33    #[test]
34    fn test_deserializes_kebab_case() {
35        let compat: SteVecMode = serde_json::from_value(json!("compat")).unwrap();
36        let standard: SteVecMode = serde_json::from_value(json!("standard")).unwrap();
37        assert_eq!(compat, SteVecMode::Compat);
38        assert_eq!(standard, SteVecMode::Standard);
39    }
40}