fn format_markup_tags()

in resctl-demo/src/doc.rs [118:187]


fn format_markup_tags(tag: &str) -> Option<StyledString> {
    AGENT_FILES.refresh();
    let sysreqs = AGENT_FILES.sysreqs();
    let bench = AGENT_FILES.bench();
    let empty_some = Some(StyledString::plain(""));

    if tag.starts_with("SysReq::") {
        for req in SysReq::into_enum_iter() {
            if format!("{:?}", req) == tag[8..] {
                if sysreqs.satisfied.contains(&req) {
                    return Some(StyledString::styled(tag, *COLOR_ACTIVE));
                } else {
                    return Some(StyledString::styled(tag, *COLOR_ALERT));
                }
            }
        }
    } else {
        match tag {
            "MissedSysReqs" => {
                let missed = sysreqs.missed.map.len();
                if missed > 0 {
                    return Some(StyledString::plain(format!("{}", missed)));
                } else {
                    return None;
                }
            }
            "NeedBenchHashd" => {
                if bench.hashd_seq > 0 {
                    return None;
                } else {
                    return empty_some;
                }
            }
            "NeedBenchIoCost" => {
                if bench.iocost_seq > 0 {
                    return None;
                } else {
                    return empty_some;
                }
            }
            "NeedBench" => {
                if bench.hashd_seq > 0 && bench.iocost_seq > 0 {
                    return None;
                } else {
                    return empty_some;
                }
            }
            "HaveBench" => {
                if bench.hashd_seq > 0 && bench.iocost_seq > 0 {
                    return empty_some;
                } else {
                    return None;
                }
            }
            "BenchBalloonSize" => {
                return Some(StyledString::plain(format_size(
                    Cmd::default().bench_hashd_balloon_size,
                )));
            }
            "HashdMemSize" => {
                return Some(StyledString::plain(format_size(
                    bench.hashd.mem_size as f64 * bench.hashd.mem_frac,
                )));
            }
            _ => {}
        }
    }

    Some(StyledString::plain(format!("%{}%", tag)))
}