revolt_database/models/safety_snapshots/ops/
reference.rs1use revolt_result::Result;
2
3use crate::ReferenceDb;
4use crate::Snapshot;
5
6use super::AbstractSnapshot;
7
8#[async_trait]
9impl AbstractSnapshot for ReferenceDb {
10 async fn insert_snapshot(&self, snapshot: &Snapshot) -> Result<()> {
12 let mut snapshots = self.safety_snapshots.lock().await;
13 if snapshots.contains_key(&snapshot.id) {
14 Err(create_database_error!("insert", "snapshot"))
15 } else {
16 snapshots.insert(snapshot.id.to_string(), snapshot.clone());
17 Ok(())
18 }
19 }
20}