use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ActionStakes {
Low,
Medium,
High,
}
impl ActionStakes {
#[must_use]
pub const fn risk_multiplier(self) -> f32 {
match self {
ActionStakes::Low => 0.5,
ActionStakes::Medium => 1.0,
ActionStakes::High => 2.0,
}
}
}
impl Default for ActionStakes {
fn default() -> Self {
ActionStakes::Medium
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn action_stakes_risk_multipliers() {
assert!((ActionStakes::Low.risk_multiplier() - 0.5).abs() < f32::EPSILON);
assert!((ActionStakes::Medium.risk_multiplier() - 1.0).abs() < f32::EPSILON);
assert!((ActionStakes::High.risk_multiplier() - 2.0).abs() < f32::EPSILON);
}
}