use super::helpers::de_opt_num_or_str;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Default, Deserialize, Serialize, PartialEq)]
pub struct Bomb {
#[serde(default)]
pub state: BombState,
#[serde(default)]
pub position: String,
#[serde(default)]
pub player: String,
#[serde(default, deserialize_with = "de_opt_num_or_str")]
pub countdown: Option<f32>,
}
#[derive(Clone, Copy, Debug, Default, Deserialize, Serialize, PartialEq, Eq, Hash)]
#[serde(rename_all = "lowercase")]
pub enum BombState {
Carried,
Dropped,
Planting,
Planted,
Defusing,
Defused,
Exploded,
#[serde(other)]
#[default]
Unknown,
}