mit_build_tools/manpage/
formatters.rs

1use tinytemplate::{error::Error, format_unescaped};
2
3/// Format a string as uppercase
4///
5/// # Errors
6///
7/// Errors if the value isn't string or null
8pub fn format_upper(value: &serde_json::Value, output: &mut String) -> Result<(), Error> {
9    let mut string_value = String::new();
10    format_escape(value, &mut string_value)?;
11
12    output.push_str(&string_value.to_uppercase());
13
14    Ok(())
15}
16
17/// Escape special markdown sequences
18///
19/// # Errors
20///
21/// Errors if the value isn't string or null
22pub fn format_escape(value: &serde_json::Value, output: &mut String) -> Result<(), Error> {
23    let mut string_value = String::new();
24    format_unescaped(value, &mut string_value)?;
25
26    output.push_str(
27        &string_value
28            .replace("[", "\\[")
29            .replace("]", "\\]")
30            .replace("(", "\\(")
31            .replace(")", "\\)")
32            .replace("`", "\\`")
33            .replace("<", "\\<")
34            .replace(">", "\\>"),
35    );
36
37    Ok(())
38}