in src/html.rs [169:194]
fn filter(&self, value: &Value, args: &HashMap<String, Value>) -> tera::Result<Value> {
let rate = try_get_value!("severity", "value", f64, value);
let kind = match args.get("kind") {
Some(val) => try_get_value!("severity", "kind", String, val),
None => "lines".to_string(),
};
fn severity(hi: f64, medium: f64, rate: f64) -> Value {
to_value(if hi <= rate && rate <= 100. {
"success"
} else if medium <= rate && rate < hi {
"warning"
} else {
"danger"
})
.unwrap()
}
match kind.as_ref() {
"lines" => Ok(severity(self.hi_limit, self.med_limit, rate)),
"branches" => Ok(severity(self.branch_hi_limit, self.branch_med_limit, rate)),
"functions" => Ok(severity(self.fn_hi_limit, self.fn_med_limit, rate)),
_ => Err(tera::Error::msg("Unsupported kind")),
}
}