#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
#[non_exhaustive]
pub enum Preset {
Ultrafast,
Faster,
Fast,
#[default]
Medium,
Slow,
Slower,
Veryslow,
}
impl Preset {
#[must_use]
pub const fn as_str(self) -> &'static str {
match self {
Self::Ultrafast => "ultrafast",
Self::Faster => "faster",
Self::Fast => "fast",
Self::Medium => "medium",
Self::Slow => "slow",
Self::Slower => "slower",
Self::Veryslow => "veryslow",
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_preset_as_str() {
assert_eq!(Preset::Ultrafast.as_str(), "ultrafast");
assert_eq!(Preset::Medium.as_str(), "medium");
assert_eq!(Preset::Veryslow.as_str(), "veryslow");
}
#[test]
fn test_default_preset() {
assert_eq!(Preset::default(), Preset::Medium);
}
}