gonzalo_domain/
checkpoint.rs1use crate::codec::RecordCodec;
4use gonzalo_core::RecordKind;
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
9pub struct Checkpoint {
10 pub label: String,
11 pub payload: String,
12}
13impl RecordCodec for Checkpoint {}
14impl Checkpoint {
15 pub const KIND: RecordKind = RecordKind::Checkpoint;
16}
17
18#[cfg(test)]
19mod tests {
20 use super::*;
21 use crate::codec::RecordCodec;
22
23 #[test]
24 fn checkpoint_roundtrips() {
25 let c = Checkpoint {
26 label: "before-refactor".into(),
27 payload: "blob".into(),
28 };
29 assert_eq!(Checkpoint::from_body(&c.to_body().unwrap()).unwrap(), c);
30 assert_eq!(Checkpoint::KIND, RecordKind::Checkpoint);
31 }
32}