renify/
method.rs

1#[derive(Debug, Clone, clap::ValueEnum, Copy)]
2pub enum Method {
3    /// => 9AFoh, wGRLC, knj9y, ... (--nbits => 5)
4    Random,
5    /// => de2662a9-fb02-4686-b556-0aca36c0e087
6    Uuid,
7    /// => 2023-03-04-22-26-42-222655555  (--delimiter => -)
8    Time,
9    /// => 1, 2, 3, ... (--start => 1)
10    Num,
11    /// => 001, 002, 003, ... (--nbits => 3)
12    Znum,
13    /// => X.jpg --> <Prefix><Delimiter>X.jpg
14    Prefix,
15    /// => X.jpg --> X<Delimiter><Append>.jpg
16    Append,
17    /// TODO: OS problem. aBcDe123.txt --> ABCDE123.txt.
18    Uppercase,
19    /// TODO: OS problem. aBcDe123.txt --> abcde123.txt.
20    Lowercase,
21    // /// TODO
22    // Capitalized,
23    // /// TODO
24    // Snake,
25    // /// TODO
26    // Replace,
27}
28
29impl From<&str> for Method {
30    fn from(s: &str) -> Self {
31        match s {
32            "Random" => Self::Random,
33            "Uuid" => Self::Uuid,
34            "Time" => Self::Time,
35            "Numbered" => Self::Num,
36            "Zero-Numbered" => Self::Znum,
37            "Prefix" => Self::Prefix,
38            "Append" => Self::Append,
39            "Uppercase" => Self::Uppercase,
40            "Lowercase" => Self::Lowercase,
41            _ => todo!(),
42        }
43    }
44}