intrepid_model/subscriptions/
subscription_marker.rs1use crate::{Event, EventKind};
2
3#[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
5pub struct SubscriptionMarker {
6 pub target_name: String,
10 pub position: i64,
12}
13
14impl SubscriptionMarker {
15 pub fn read_marker(
17 stream_name: impl AsRef<str>,
18 target_stream_name: impl AsRef<str>,
19 position: i64,
20 ) -> Event {
21 Event {
22 stream_name: stream_name.as_ref().to_owned(),
23 kind: EventKind::Marker,
24 data: serde_json::to_vec(&SubscriptionMarker {
26 target_name: target_stream_name.as_ref().to_owned(),
27 position,
28 })
29 .expect("failed to serialize event log read marker")
30 .into(),
31 }
32 }
33}