pub mod error;
pub mod fs;
use crate::models::note::Note;
use error::StorageResult;
pub trait Storage {
fn init(&self) -> StorageResult<()>;
fn list_notes(&self) -> StorageResult<Vec<Note>>;
fn read_note(&self, title: &str) -> StorageResult<Note>;
fn write_note(&self, note: &Note) -> StorageResult<()>;
fn delete_note(&self, title: &str) -> StorageResult<()>;
fn rename_note(&self, old_title: &str, note: &Note) -> StorageResult<()> {
self.delete_note(old_title)?;
self.write_note(note)
}
}