Browse Source

Check path before loading

master
Drew Short 4 years ago
parent
commit
94bf54d85a
  1. 14
      src/config.rs
  2. 12
      src/state.rs

14
src/config.rs

@ -20,10 +20,16 @@ pub struct ConfigManager {
}
fn read_config<P: AsRef<Path>>(path: P) -> Result<Config, Box<dyn Error>> {
let file = File::open(path)?;
let reader = BufReader::new(file);
let result: Config = from_reader(reader)?;
Ok(result)
if path.as_ref().exists() {
let file = File::open(path)?;
let reader = BufReader::new(file);
let result: Config = from_reader(reader)?;
Ok(result)
} else {
Ok(Config {
save_directory: Some(String::from("tmp")),
})
}
}
impl ConfigManager {

12
src/state.rs

@ -21,10 +21,14 @@ pub struct StateManager {
}
fn read_state<P: AsRef<Path>>(path: P) -> Result<State, Box<dyn Error>> {
let file = File::open(path)?;
let reader = BufReader::new(file);
let result: State = from_reader(reader)?;
Ok(result)
if path.as_ref().exists() {
let file = File::open(path)?;
let reader = BufReader::new(file);
let result: State = from_reader(reader)?;
Ok(result)
} else {
Ok(State { downloaded: vec![] })
}
}
fn save_state<P: AsRef<Path>>(path: P, state: &State) -> serde_json::Result<()> {

Loading…
Cancel
Save