Simplify fixture parsing

This commit is contained in:
Aleksey Kladov 2020-01-30 13:17:56 +01:00
parent 5dcd9fdf5e
commit c445c72eb3

View file

@ -188,29 +188,16 @@ pub fn parse_fixture(fixture: &str) -> Vec<FixtureEntry> {
} }
}); });
let mut res = Vec::new(); let mut res: Vec<FixtureEntry> = Vec::new();
let mut meta = None;
loop {
let mut next_meta = None;
let mut text = String::new();
for line in lines.by_ref() { for line in lines.by_ref() {
if line.starts_with("//-") { if line.starts_with("//-") {
next_meta = Some(line["//-".len()..].trim().to_string()); let meta = line["//-".len()..].trim().to_string();
break; res.push(FixtureEntry { meta, text: String::new() })
} } else if let Some(entry) = res.last_mut() {
text.push_str(line); entry.text.push_str(line);
text.push('\n'); entry.text.push('\n');
}
if let Some(meta) = meta {
res.push(FixtureEntry { meta, text });
}
meta = next_meta;
if meta.is_none() {
break;
} }
} }
res res
} }