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 32 33 34 35 36 37 38 39 40 41 42 43 44
#[derive(Debug, Clone, clap::ValueEnum, Copy)]
pub enum Method {
// /// Sample a u8, uniformly distributed over ASCII letters and numbers: a-z, A-Z and 0-9.
Random,
/// => de2662a9-fb02-4686-b556-0aca36c0e087
Uuid,
/// => 2023-03-04-22-26-42-222655555 (--delimiter => -)
Time,
/// => 1, 2, 3, ... (--start => 1)
Num,
/// => 001, 002, 003, ... (--nbits => 3)
Znum,
/// => X.jpg --> <Prefix><Delimiter>X.jpg
Prefix,
/// => X.jpg --> X<Delimiter><Append>.jpg
Append,
/// TODO: OS problem. aBcDe123.txt --> ABCDE123.txt.
Uppercase,
/// TODO: OS problem. aBcDe123.txt --> abcde123.txt.
Lowercase,
// /// TODO
// Capitalized,
// /// TODO
// Snake,
// /// TODO
// Replace,
}
impl From<&str> for Method {
fn from(s: &str) -> Self {
match s {
"Random" => Self::Random,
"Uuid" => Self::Uuid,
"Time" => Self::Time,
"Numbered" => Self::Num,
"Zero-Numbered" => Self::Znum,
"Prefix" => Self::Prefix,
"Append" => Self::Append,
"Uppercase" => Self::Uppercase,
"Lowercase" => Self::Lowercase,
_ => todo!(),
}
}
}