Skip to content

Commit

Permalink
Tidy up iter_header a bit
Browse files Browse the repository at this point in the history
  • Loading branch information
jieyouxu committed Feb 22, 2024
1 parent 51c190b commit ba0bd9b
Showing 1 changed file with 14 additions and 13 deletions.
27 changes: 14 additions & 13 deletions src/tools/tidy/src/iter_header.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,20 @@ pub(crate) struct HeaderLine<'ln> {
pub(crate) fn iter_header<'ln>(contents: &'ln str, it: &mut dyn FnMut(HeaderLine<'ln>)) {
for ln in contents.lines() {
let ln = ln.trim();
if ln.starts_with(COMMENT) && ln[COMMENT.len()..].trim_start().starts_with('[') {
if let Some(close_brace) = ln.find(']') {
let open_brace = ln.find('[').unwrap();
let revision = &ln[open_brace + 1..close_brace];
it(HeaderLine {
revision: Some(revision),
directive: ln[(close_brace + 1)..].trim_start(),
});
} else {
panic!("malformed condition directive: expected `//@[foo]`, found `{ln}`")
}
} else if ln.starts_with(COMMENT) {
it(HeaderLine { revision: None, directive: ln[COMMENT.len()..].trim_start() });

// We're left with potentially `[rev]name: value`.
let Some(remainder) = ln.strip_prefix(COMMENT) else {
continue;
};

if let Some(remainder) = remainder.trim_start().strip_prefix('[') {
let Some((revision, remainder)) = remainder.split_once(']') else {
panic!("malformed revision directive: expected `//@[rev]`, found `{ln}`");
};
// We trimmed off the `[rev]` portion, left with `name: value`.
it(HeaderLine { revision: Some(revision), directive: remainder.trim() });
} else {
it(HeaderLine { revision: None, directive: remainder.trim() });
}
}
}

0 comments on commit ba0bd9b

Please sign in to comment.