Added repositories into AppState
This commit is contained in:
1 parent
6c20561ede
commit
11d5144db5
9 files changed
+67
-23
No files matched your search
@@ -9,7 +9,7 @@ use rusqlite::{Connection, Error, Params, Row, params};
|
||||
use std::time::Instant;
|
||||
use crate::data::repositories::DataRepository;
|
||||
|
||||
type CardStateRepository = DataRepository<CardState, SqliteDbLayer<CardState, CardStatesQuerySet>>;
|
||||
pub type CardStateRepository = DataRepository<CardState, SqliteDbLayer<CardState, CardStatesQuerySet>>;
|
||||
pub struct CardStatesQuerySet;
|
||||
impl TableAccessQuerySet<CardState> for CardStatesQuerySet {
|
||||
fn load() -> &'static str {
|
||||
|
||||
@@ -3,7 +3,7 @@ use crate::data::repositories::DataRepository;
|
||||
use crate::data_provider::{SqliteDbLayer, TableAccessQuerySet};
|
||||
use rusqlite::{Error, Params, Row};
|
||||
|
||||
type CustomFieldRepository = DataRepository<CustomField, SqliteDbLayer<CustomField, CustomFieldsQuerySet>>;
|
||||
pub type CustomFieldRepository = DataRepository<CustomField, SqliteDbLayer<CustomField, CustomFieldsQuerySet>>;
|
||||
|
||||
pub struct CustomFieldsQuerySet;
|
||||
impl TableAccessQuerySet<WordGroup> for CustomFieldsQuerySet {
|
||||
|
||||
@@ -8,8 +8,9 @@ use rusqlite::{Connection, Error, Params, Row};
|
||||
use crate::data::repositories::DataRepository;
|
||||
use crate::data_provider::card_states::CardStatesQuerySet;
|
||||
|
||||
type DeckRepository = DataRepository<DeckSettings, SqliteDbLayer<DeckSettings, DeckQuerySet>>;
|
||||
pub type DeckRepository = DataRepository<DeckSettings, SqliteDbLayer<DeckSettings, DeckQuerySet>>;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct DeckQuerySet;
|
||||
impl TableAccessQuerySet<DeckSettings> for DeckQuerySet {
|
||||
fn load() -> &'static str {
|
||||
|
||||
@@ -30,6 +30,7 @@ pub trait TableAccessQuerySet<T> {
|
||||
fn update_params(entity: &T) -> impl Params;
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct SqliteDbLayer<T, Q>
|
||||
where
|
||||
Q: TableAccessQuerySet<T>,
|
||||
@@ -37,6 +38,14 @@ where
|
||||
_phantom: PhantomData<(T, Q)>,
|
||||
}
|
||||
|
||||
impl<T, Q: TableAccessQuerySet<T>> Default for SqliteDbLayer<T, Q>{
|
||||
fn default() -> Self {
|
||||
Self{
|
||||
_phantom: PhantomData,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: EntityData, Q: TableAccessQuerySet<T>> DbLayer<T> for SqliteDbLayer<T, Q> {
|
||||
fn write_entity(&self, entity: &T, connection: &Connection) -> MaybeError {
|
||||
let time = Instant::now();
|
||||
|
||||
@@ -4,8 +4,9 @@ use rusqlite::{Error, Params, Row};
|
||||
use crate::data::repositories::DataRepository;
|
||||
use crate::data_provider::decks::DeckQuerySet;
|
||||
|
||||
type WordGroupRepository = DataRepository<WordGroup, SqliteDbLayer<WordGroup, WordGroupQuerySet>>;
|
||||
pub type WordGroupRepository = DataRepository<WordGroup, SqliteDbLayer<WordGroup, WordGroupQuerySet>>;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct WordGroupQuerySet;
|
||||
impl TableAccessQuerySet<WordGroup> for WordGroupQuerySet {
|
||||
fn load() -> &'static str {
|
||||
|
||||
@@ -7,8 +7,9 @@ use rusqlite::{Connection, Error, Params, Row, params};
|
||||
use std::collections::HashMap;
|
||||
use crate::data::repositories::DataRepository;
|
||||
|
||||
type DeckRepository = DataRepository<WordData, SqliteDbLayer<WordData, WordQuerySet>>;
|
||||
pub type WordRepository = DataRepository<WordData, SqliteDbLayer<WordData, WordQuerySet>>;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct WordQuerySet;
|
||||
impl TableAccessQuerySet<WordData> for WordQuerySet {
|
||||
fn load() -> &'static str {
|
||||
|
||||
Reference in new issue
Block a user