1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
11#[serde(rename_all = "lowercase")]
12pub enum ConceptType {
13 Semantic,
15 Episodic,
17 Procedural,
19}
20
21#[cfg(test)]
22mod tests {
23 use super::ConceptType;
24
25 #[test]
26 fn round_trips_through_json() {
27 for value in [
28 ConceptType::Semantic,
29 ConceptType::Episodic,
30 ConceptType::Procedural,
31 ] {
32 let json = serde_json::to_string(&value).unwrap();
33 let parsed: ConceptType = serde_json::from_str(&json).unwrap();
34 assert_eq!(value, parsed);
35 }
36 }
37
38 #[test]
39 fn serializes_lowercase() {
40 let json = serde_json::to_string(&ConceptType::Episodic).unwrap();
41 assert_eq!(json, "\"episodic\"");
42 }
43}