use crate::event::identity::WriterId;
use crate::event::types::{AdmissionSeq, EventId};
use serde::{Deserialize, Serialize};
use std::fmt::Debug;
mod private {
pub trait Sealed {}
}
pub trait JournalEvent:
private::Sealed + Debug + Clone + Send + Sync + Serialize + for<'de> Deserialize<'de>
{
fn id(&self) -> &EventId;
fn writer_id(&self) -> &WriterId;
fn event_type_name(&self) -> &str;
fn admission_seq(&self) -> Option<AdmissionSeq> {
None
}
fn set_admission_seq(&mut self, _seq: AdmissionSeq) {}
}
#[doc(hidden)]
pub use private::Sealed;