#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct TopicPartition {
pub topic: String,
pub partition: i32,
}
impl TopicPartition {
#[must_use]
pub fn new(topic: impl Into<String>, partition: i32) -> Self {
Self {
topic: topic.into(),
partition,
}
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct OffsetAndMetadata {
pub offset: i64,
pub leader_epoch: Option<i32>,
pub metadata: Option<String>,
}
impl OffsetAndMetadata {
#[must_use]
pub const fn new(offset: i64) -> Self {
Self {
offset,
leader_epoch: None,
metadata: None,
}
}
#[must_use]
pub const fn leader_epoch(mut self, leader_epoch: i32) -> Self {
self.leader_epoch = Some(leader_epoch);
self
}
#[must_use]
pub fn metadata(mut self, metadata: impl Into<String>) -> Self {
self.metadata = Some(metadata.into());
self
}
}