surrealdb_core/fnc/util/string/
slug.rsuse ascii::any_ascii as ascii;
use regex::Regex;
use std::sync::LazyLock;
static SIMPLES: LazyLock<Regex> = LazyLock::new(|| Regex::new("[^a-z0-9-_]").unwrap());
static HYPHENS: LazyLock<Regex> = LazyLock::new(|| Regex::new("-+").unwrap());
pub fn slug<S: AsRef<str>>(s: S) -> String {
let s = s.as_ref();
let mut s = ascii(s);
s.make_ascii_lowercase();
let s = SIMPLES.replace_all(s.as_ref(), "-");
let s = HYPHENS.replace_all(s.as_ref(), "-");
let s = s.trim_matches('-');
s.to_owned()
}