diff options
Diffstat (limited to 'src/main/rust/store/mod.rs')
| -rw-r--r-- | src/main/rust/store/mod.rs | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/src/main/rust/store/mod.rs b/src/main/rust/store/mod.rs deleted file mode 100644 index 2cce3e9..0000000 --- a/src/main/rust/store/mod.rs +++ /dev/null @@ -1,58 +0,0 @@ -mod sqlite; - -use crate::store::sqlite::SQLiteStore; -use miette::{Diagnostic, Result}; -use thiserror::Error; - -pub enum Context { - SQLite(SQLiteStore), -} - -#[derive(Debug, Diagnostic, Error)] -pub enum ContextError { - #[error("Data storage error")] - DataError(#[from] ::sqlite::Error), - #[error("Int conversion error")] - ConversionError(#[from] std::num::TryFromIntError), -} - -impl Default for Context { - fn default() -> Self { - Context::SQLite(SQLiteStore::default()) - } -} - -pub trait Store { - fn init(&mut self) -> Result<(), ContextError>; - fn get_counter(&self) -> Result<u8, ContextError>; - fn set_counter(&mut self, new_count: u8) -> Result<u8, ContextError>; -} - -impl Context { - pub fn unwrap_store(&mut self) -> &mut impl Store { - match self { - Context::SQLite(store) => store, - } - } - - pub fn get_store(&self) -> &impl Store { - match self { - Context::SQLite(store) => store, - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn context_default() { - let context = Context::default(); - - let res = match context { - Context::SQLite(_) => true, - }; - assert!(res); - } -} |
