use aho_corasick::AhoCorasick;
use aho_corasick::MatchKind;
use std::sync::LazyLock;
static AC_HTML_PATTERN: [&str; 8] = ["&", "<", ">", "\"", "'", ":", "{", "}"];
static AC_HTML_REPLACE: [&str; 8] = [
"&", "<", ">", """, "'", ":", "{", "}",
];
static AC: LazyLock<AhoCorasick> = LazyLock::new(|| {
AhoCorasick::builder()
.match_kind(MatchKind::LeftmostFirst)
.build(AC_HTML_PATTERN)
.expect("ac")
});
pub fn template(data: &[u8]) -> Vec<u8> {
AC.replace_all_bytes(data, AC_HTML_REPLACE.as_slice())
}
pub fn template_string(data: &str) -> String {
AC.replace_all(data, AC_HTML_REPLACE.as_slice())
}