#[derive(Debug, Clone, PartialEq, Eq)]
pub struct TopicPartition {
pub topic: String,
pub partition: i32,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct TaskAssignment {
pub subtopology_id: String,
pub partitions: Vec<i32>,
pub source_topic_partitions: Vec<TopicPartition>,
}
#[derive(Debug, Clone, Default, PartialEq, Eq)]
pub struct StreamsAssignment {
pub active: Vec<TaskAssignment>,
pub standby: Vec<TaskAssignment>,
pub warmup: Vec<TaskAssignment>,
}
#[derive(Debug, Clone, Default)]
pub struct TaskOffsetTracker {
pub task_offsets: std::collections::HashMap<(String, i32), i64>,
pub task_end_offsets: std::collections::HashMap<(String, i32), i64>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum StreamsStatus {
StaleTopology(String),
MissingSourceTopics(String),
IncorrectlyPartitionedTopics(String),
MissingInternalTopics(String),
ShutdownApplication,
AssignmentDelayed(String),
Unknown(i8, String),
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum StreamsEvent {
Assigned(StreamsAssignment),
NotReady(Vec<StreamsStatus>),
Fenced,
}