32 lines
658 B
Rust
32 lines
658 B
Rust
use serde::{Deserialize, Serialize};
|
|
|
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
|
|
#[serde(rename_all = "kebab-case")]
|
|
pub enum ServerState {
|
|
Stopped,
|
|
Starting,
|
|
Running,
|
|
Restarting,
|
|
Failed,
|
|
Stopping,
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn serializes_to_kebab_case() {
|
|
assert_eq!(
|
|
serde_json::to_string(&ServerState::Restarting).unwrap(),
|
|
"\"restarting\""
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn deserializes_from_kebab_case() {
|
|
let s: ServerState = serde_json::from_str("\"failed\"").unwrap();
|
|
assert_eq!(s, ServerState::Failed);
|
|
}
|
|
}
|