pub mod bus;
pub mod jsonl;
pub mod jsonl_gz;
pub mod stream;
pub fn parse_sink_names(value: &str) -> Vec<String> {
let sinks: Vec<String> = value
.split(',')
.map(|v| v.trim().to_lowercase())
.filter(|v| !v.is_empty())
.collect();
if sinks.is_empty() {
vec!["stderr".to_string()]
} else {
sinks
}
}
#[cfg(test)]
mod tests {
use super::parse_sink_names;
#[test]
fn trims_and_normalizes() {
assert_eq!(
parse_sink_names(" jsonl, JSONL_GZ, STDERR "),
vec![
"jsonl".to_string(),
"jsonl_gz".to_string(),
"stderr".to_string(),
]
);
}
#[test]
fn defaults_empty_value_to_stderr() {
assert_eq!(parse_sink_names(" , "), vec!["stderr".to_string()]);
}
}