use crate::models::Function; pub fn show_area_query(a: &Option, first: bool) -> rinja::Result { let char = if first { '?' } else { '&' }; if let Some(a) = a { return Ok(format!("{}area={}", char, a)); } else { return Ok(String::new()); } } pub fn cond_show(show: &bool, text: &str) -> rinja::Result { return if *show { Ok(String::from(text)) } else { Ok(String::new()) }; } pub fn insert_value(option: &Option) -> rinja::Result { if let Some(val) = option { let s = format!(r#"value="{val}""#); return Ok(s); } Ok(String::new()) } pub fn is_some_and_eq(option: &Option, other: &T) -> rinja::Result where T: Eq, { Ok(option.as_ref().is_some_and(|x| x == other)) } pub fn invert(b: &bool) -> rinja::Result { return Ok(!b); } pub fn show_tree(f: &Function) -> rinja::Result { let mut tags = String::from(r#"Posten"#); if f == &Function::Fuehrungsassistent || f == &Function::Wachhabender { tags.push_str(r#"Führungsassistent"#); } if f == &Function::Wachhabender { tags.push_str(r#"Wachhabender"#); } Ok(format!(r#"
{tags}
"#)) }