use super::settings::{KafkaSettings, Setting};
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum OffsetReset {
Earliest,
Latest,
}
impl OffsetReset {
pub fn as_str(self) -> &'static str {
match self {
OffsetReset::Earliest => "earliest",
OffsetReset::Latest => "latest",
}
}
}
pub fn consumer_settings(
settings: &KafkaSettings,
group_id: &str,
offset_reset: OffsetReset,
) -> Vec<Setting> {
let mut s = settings.security_settings();
s.extend([
("group.id", group_id.to_string()),
("enable.auto.commit", "false".to_string()),
("enable.auto.offset.store", "false".to_string()),
("enable.partition.eof", "false".to_string()),
("isolation.level", "read_committed".to_string()),
("auto.offset.reset", offset_reset.as_str().to_string()),
("session.timeout.ms", settings.session_timeout_ms.to_string()),
]);
s
}