use serde::{Deserialize, Serialize};
pub type SeqNo = u64;
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub enum SeekPosition {
Beginning,
LastAcknowledged,
#[default]
Latest,
Sequence(SeqNo),
}
impl From<crate::config::SeekMode> for SeekPosition {
fn from(mode: crate::config::SeekMode) -> Self {
match mode {
crate::config::SeekMode::Beginning => SeekPosition::Beginning,
crate::config::SeekMode::LastAcknowledged => SeekPosition::LastAcknowledged,
crate::config::SeekMode::Latest => SeekPosition::Latest,
}
}
}
#[derive(Debug, Clone)]
pub struct ConsumerState {
pub name: String,
pub last_acked: Option<SeqNo>,
}