rust_mcp_transport/
event_store.rs1mod in_memory_event_store;
2use async_trait::async_trait;
3pub use in_memory_event_store::*;
4
5use crate::{EventId, SessionId, StreamId};
6
7#[derive(Debug, Clone)]
8pub struct EventStoreMessages {
9 pub session_id: SessionId,
10 pub stream_id: StreamId,
11 pub messages: Vec<String>,
12}
13
14#[async_trait]
15pub trait EventStore: Send + Sync {
16 async fn store_event(
17 &self,
18 session_id: SessionId,
19 stream_id: StreamId,
20 time_stamp: u128,
21 message: String,
22 ) -> EventId;
23 async fn remove_by_session_id(&self, session_id: SessionId);
24 async fn remove_stream_in_session(&self, session_id: SessionId, stream_id: StreamId);
25 async fn clear(&self);
26 async fn events_after(&self, last_event_id: EventId) -> Option<EventStoreMessages>;
27}