feldera_types/
checkpoint.rs

1use serde::{Deserialize, Serialize};
2use utoipa::ToSchema;
3
4/// Checkpoint status returned by the `/checkpoint_status` endpoint.
5#[derive(Clone, Debug, Default, Serialize, Deserialize, ToSchema)]
6pub struct CheckpointStatus {
7    /// Most recently successful checkpoint.
8    pub success: Option<u64>,
9
10    /// Most recently failed checkpoint, and the associated error.
11    pub failure: Option<CheckpointFailure>,
12}
13
14/// Information about a failed checkpoint.
15#[derive(Clone, Debug, Default, Serialize, Deserialize, ToSchema)]
16pub struct CheckpointFailure {
17    /// Sequence number of the failed checkpoint.
18    pub sequence_number: u64,
19
20    /// Error message associated with the failure.
21    pub error: String,
22}
23
24/// Response to a checkpoint request.
25#[derive(Clone, Debug, Default, Serialize, Deserialize, ToSchema)]
26pub struct CheckpointResponse {
27    pub checkpoint_sequence_number: u64,
28}
29
30impl CheckpointResponse {
31    pub fn new(checkpoint_sequence_number: u64) -> Self {
32        Self {
33            checkpoint_sequence_number,
34        }
35    }
36}