use crate::srcinfo::field::RawField;
use pipe_trait::Pipe;
pub fn parse_line(line: &str) -> Option<(RawField<'_>, &'_ str)> {
let (field, value) = line.split_once('=')?;
let field = field.trim_end().pipe(RawField::parse_raw);
let value = value.trim_start();
Some((field, value))
}
pub fn trimmed_line_is_blank(trimmed_line: &str) -> bool {
trimmed_line.is_empty() || trimmed_line.starts_with('#')
}
pub fn non_blank_trimmed_lines(text: &str) -> impl Iterator<Item = &'_ str> {
text.lines()
.map(str::trim)
.filter(|line| !trimmed_line_is_blank(line))
}