use unicode_casefold::UnicodeCaseFold;
use unicode_normalization::UnicodeNormalization;
pub fn name_key_for_display_name(display_name: &str) -> String {
display_name
.nfc()
.collect::<String>()
.case_fold()
.nfc()
.collect()
}
#[cfg(test)]
mod tests {
use super::name_key_for_display_name;
#[test]
fn nfc_casefold_v0_normalizes_and_casefolds() {
let decomposed = "Cafe\u{301}.TXT";
let composed = "CAFÉ.txt";
let left = name_key_for_display_name(decomposed);
let right = name_key_for_display_name(composed);
assert_eq!(left, right);
assert_eq!(left, "café.txt");
}
}