use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum ConceptType {
Semantic,
Episodic,
Procedural,
}
#[cfg(test)]
mod tests {
use super::ConceptType;
#[test]
fn round_trips_through_json() {
for value in [
ConceptType::Semantic,
ConceptType::Episodic,
ConceptType::Procedural,
] {
let json = serde_json::to_string(&value).unwrap();
let parsed: ConceptType = serde_json::from_str(&json).unwrap();
assert_eq!(value, parsed);
}
}
#[test]
fn serializes_lowercase() {
let json = serde_json::to_string(&ConceptType::Episodic).unwrap();
assert_eq!(json, "\"episodic\"");
}
}