+14
-1
upload/src/config.rs
+14
-1
upload/src/config.rs
···
1
+
use std::{fmt, fs};
2
3
+
#[derive(Debug)]
4
pub struct Config {
5
pub user: String,
6
pub pword: String,
7
pub dir: String,
8
}
9
10
+
#[derive(Debug)]
11
pub enum ConfigErr {
12
TooManyDirectories,
13
NotEnoughArgs(String),
14
UnknownArg(String),
15
NotADirectory,
16
+
}
17
+
18
+
impl fmt::Display for ConfigErr {
19
+
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
20
+
match self {
21
+
ConfigErr::TooManyDirectories => write!(f, "Too many directories"),
22
+
ConfigErr::NotEnoughArgs(args) => write!(f, "Missing {}", args),
23
+
ConfigErr::UnknownArg(arg) => write!(f, "Unknown arg {}", arg),
24
+
ConfigErr::NotADirectory => write!(f, "Not a directory"),
25
+
}
26
+
}
27
}
28
29
pub fn extract() -> Result<Config, ConfigErr> {
+4
-12
upload/src/main.rs
+4
-12
upload/src/main.rs
···
2
3
fn main() -> Result<(), ()> {
4
// get config items
5
-
let config = match config::extract() {
6
-
Ok(v) => v,
7
-
Err(err) => {
8
-
match err {
9
-
config::ConfigErr::TooManyDirectories => println!("Too many directories"),
10
-
config::ConfigErr::NotEnoughArgs(args) => println!("Missing {}", args),
11
-
config::ConfigErr::UnknownArg(arg) => println!("Unknown arg {}", arg),
12
-
config::ConfigErr::NotADirectory => println!("Not a directory"),
13
-
}
14
-
return Err(());
15
-
}
16
-
};
17
18
println!(
19
"user: {}