ddapi_rs/util/
encoding.rs

1use std::borrow::Cow;
2use std::fmt::Write;
3
4pub fn slugify2(nickname: &str) -> Cow<str> {
5    let slugify2_symbols = "\t !\"#$%&'()*-/<=>?@[\\]^_`{|},.:+";
6    let mut result = String::with_capacity(nickname.len() * 4);
7
8    for symbol in nickname.chars() {
9        if slugify2_symbols.contains(symbol) || symbol as u32 >= 128 {
10            write!(&mut result, "-{}-", symbol as u32).unwrap();
11        } else {
12            result.push(symbol);
13        }
14    }
15
16    Cow::Owned(result)
17}
18
19pub fn encode(nickname: &str) -> Cow<str> {
20    urlencoding::encode(nickname)
21}