summaryrefslogtreecommitdiff
path: root/src/service/rooms/state_compressor/data.rs
blob: d221d576d4af3f5854c6c1f6fa6b60ccebe3541c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use std::{collections::HashSet, sync::Arc};

use super::CompressedStateEvent;
use crate::Result;

pub struct StateDiff {
    pub parent: Option<u64>,
    pub added: Arc<HashSet<CompressedStateEvent>>,
    pub removed: Arc<HashSet<CompressedStateEvent>>,
}

pub trait Data: Send + Sync {
    fn get_statediff(&self, shortstatehash: u64) -> Result<StateDiff>;
    fn save_statediff(&self, shortstatehash: u64, diff: StateDiff) -> Result<()>;
}