Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use serde::{Deserialize, Serialize};
use std::{collections::BTreeMap, io::Result};

pub(crate) trait JsonStore: Send + Sync {
    fn save<T>(&self, obj: &T) -> Result<String>
    where
        for<'de> T: Serialize + Deserialize<'de>;
    fn save_with_id<T>(&self, obj: &T, id: &str) -> Result<String>
    where
        for<'de> T: Serialize + Deserialize<'de>;
    fn get<T>(&self, id: &str) -> Result<T>
    where
        for<'de> T: Deserialize<'de>;
    fn all<T>(&self) -> Result<BTreeMap<String, T>>
    where
        for<'de> T: Deserialize<'de>;
    fn delete(&self, id: &str) -> Result<()>;
}