use idiolect_records::{IdiolectFamily, Nsid, RecordFamily};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum IndexerAction {
Create,
Update,
Delete,
}
#[derive(Debug, Clone)]
pub struct IndexerEvent<F: RecordFamily = IdiolectFamily> {
pub seq: u64,
pub live: bool,
pub did: String,
pub rev: String,
pub rkey: String,
pub collection: Nsid,
pub action: IndexerAction,
pub cid: Option<String>,
pub record: Option<F::AnyRecord>,
}
impl<F: RecordFamily> IndexerEvent<F> {
#[must_use]
pub fn at_uri(&self) -> String {
format!("at://{}/{}/{}", self.did, self.collection, self.rkey)
}
}