whatsapp_rust/store/
mod.rs

1pub mod commands;
2pub mod device_aware_store;
3pub mod error;
4pub mod generic;
5pub mod persistence_manager;
6pub mod schema;
7pub mod signal;
8pub mod signal_adapter;
9pub mod sqlite_store;
10pub mod traits;
11
12pub use crate::store::traits::*;
13use std::ops::{Deref, DerefMut};
14use std::sync::Arc;
15
16#[derive(Clone)]
17pub struct Device {
18    pub core: wacore::store::Device,
19    pub backend: Arc<dyn Backend>,
20}
21
22impl Deref for Device {
23    type Target = wacore::store::Device;
24
25    fn deref(&self) -> &Self::Target {
26        &self.core
27    }
28}
29
30impl DerefMut for Device {
31    fn deref_mut(&mut self) -> &mut Self::Target {
32        &mut self.core
33    }
34}
35
36impl Device {
37    pub fn new(backend: Arc<dyn Backend>) -> Self {
38        let core = wacore::store::Device::new();
39        Self { core, backend }
40    }
41
42    pub fn to_serializable(&self) -> wacore::store::Device {
43        self.core.clone()
44    }
45
46    pub fn load_from_serializable(&mut self, loaded: wacore::store::Device) {
47        self.core = loaded;
48    }
49}