Use retain_mut in CommentBlock::extract

This commit is contained in:
DropDemBits 2023-03-31 17:41:40 -04:00
parent d689fd30bc
commit afe3dcd3ff
No known key found for this signature in database
GPG Key ID: 7FE02A6C1EDFA075

View File

@ -58,21 +58,19 @@ impl CommentBlock {
assert!(tag.starts_with(char::is_uppercase));
let tag = format!("{tag}:");
// Would be nice if we had `.retain_mut` here!
CommentBlock::extract_untagged(text)
.into_iter()
.filter_map(|mut block| {
let first = block.contents.remove(0);
first.strip_prefix(&tag).map(|id| {
if block.is_doc {
panic!("Use plain (non-doc) comments with tags like {tag}:\n {first}");
}
let mut blocks = CommentBlock::extract_untagged(text);
blocks.retain_mut(|block| {
let first = block.contents.remove(0);
let Some(id) = first.strip_prefix(&tag) else { return false; };
block.id = id.trim().to_string();
block
})
})
.collect()
if block.is_doc {
panic!("Use plain (non-doc) comments with tags like {tag}:\n {first}");
}
block.id = id.trim().to_string();
true
});
blocks
}
pub fn extract_untagged(text: &str) -> Vec<CommentBlock> {