1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
use crate::error::{JoshutoError, JoshutoErrorKind, JoshutoResult};
#[derive(Clone, Debug, Copy, Default)]
pub enum LineMode {
#[default]
Size,
MTime,
SizeMTime,
}
impl LineMode {
pub fn from_string(name: &str) -> JoshutoResult<LineMode> {
match name {
"size" => Ok(LineMode::Size),
"mtime" => Ok(LineMode::MTime),
"sizemtime" => Ok(LineMode::SizeMTime),
_ => Err(JoshutoError::new(
JoshutoErrorKind::InvalidParameters,
format!("Linemode '{}' unknown.", name),
)),
}
}
pub fn as_str(&self) -> &'static str {
match self {
Self::Size => "size",
Self::MTime => "mtime",
Self::SizeMTime => "sizemtime",
}
}
}
|