whatsapp_rust/store/
mod.rs1pub 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}