mod.rs 754 B

12345678910111213141516171819202122232425262728293031323334
  1. pub mod document;
  2. pub use self::document::*;
  3. use failure::Error;
  4. use cfg;
  5. pub struct State {
  6. pub document: Document,
  7. pub save_state: SaveState,
  8. }
  9. impl State {
  10. pub fn new(conf: cfg::Cfg) -> Result<State, Error> {
  11. Ok(match conf.file_path {
  12. None => State {
  13. document: Document::default(),
  14. save_state: SaveState::Unsaved,
  15. },
  16. Some(path) => {
  17. let mut f = ::std::fs::File::open(path)?;
  18. State {
  19. document: Document::open_from_file(&mut f)?,
  20. save_state: SaveState::Saved,
  21. }
  22. },
  23. })
  24. }
  25. }
  26. #[derive(Debug)]
  27. pub enum SaveState {
  28. Unsaved,
  29. Modified,
  30. Saved,
  31. }