1#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
9#[non_exhaustive]
10pub enum Preset {
11 Ultrafast,
13
14 Faster,
16
17 Fast,
19
20 #[default]
22 Medium,
23
24 Slow,
26
27 Slower,
29
30 Veryslow,
32}
33
34impl Preset {
35 #[must_use]
37 pub const fn as_str(self) -> &'static str {
38 match self {
39 Self::Ultrafast => "ultrafast",
40 Self::Faster => "faster",
41 Self::Fast => "fast",
42 Self::Medium => "medium",
43 Self::Slow => "slow",
44 Self::Slower => "slower",
45 Self::Veryslow => "veryslow",
46 }
47 }
48}
49
50#[cfg(test)]
51mod tests {
52 use super::*;
53
54 #[test]
55 fn test_preset_as_str() {
56 assert_eq!(Preset::Ultrafast.as_str(), "ultrafast");
57 assert_eq!(Preset::Medium.as_str(), "medium");
58 assert_eq!(Preset::Veryslow.as_str(), "veryslow");
59 }
60
61 #[test]
62 fn test_default_preset() {
63 assert_eq!(Preset::default(), Preset::Medium);
64 }
65}