armour/database/
updater.rs

1use derive_more::{AsMut, AsRef, Debug, Deref, DerefMut};
2use sled::InlineArray;
3
4use crate::{Entry, Record};
5
6#[derive(Debug, Clone, AsMut, AsRef, Deref, DerefMut)]
7pub struct Updater<Item: Record> {
8    pub id: Item::SelfId,
9    #[deref]
10    #[deref_mut]
11    #[as_ref]
12    #[as_mut]
13    pub val: Item,
14    #[debug(skip)]
15    pub bytes: InlineArray,
16    pub old: Item,
17}
18
19impl<Item: Record> From<Updater<Item>> for Entry<Item> {
20    fn from(value: Updater<Item>) -> Self {
21        Entry::new(value.id, value.val)
22    }
23}