pub mod document;
pub use self::document::*;
use failure::Error;
use crate::cfg;
pub struct State {
pub document: Document,
pub save_state: SaveState,
}
impl State {
pub fn new(conf: cfg::Cfg) -> Result<State, Error> {
Ok(match conf.file_path {
None => State {
document: Document::default(),
save_state: SaveState::Unsaved,
},
Some(path) => {
let mut f = ::std::fs::File::open(path)?;
State {
document: Document::open_from_file(&mut f)?,
save_state: SaveState::Saved,
}
},
})
}
}
#[derive(Debug)]
pub enum SaveState {
Unsaved,
Modified,
Saved,
}