pub mod document; pub use self::document::*; use failure::Error; use cfg; pub struct State { pub document: Document, pub save_state: SaveState, } impl State { pub fn new(conf: cfg::Cfg) -> Result { 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, }