bonsaidb_utils/
lib.rs

1mod lock_macros;
2
3pub fn next_string_sequence(string: &str) -> String {
4    let mut bytes = string.as_bytes().to_vec();
5    for (index, char) in string.char_indices().rev() {
6        let mut next_char = u32::from(char) + 1;
7        if next_char == 0xd800 {
8            next_char = 0xE000;
9        } else if next_char > u32::from(char::MAX) {
10            continue;
11        }
12
13        let mut char_bytes = [0; 6];
14        bytes.splice(
15            index..,
16            char::try_from(next_char)
17                .unwrap()
18                .encode_utf8(&mut char_bytes)
19                .bytes(),
20        );
21        return String::from_utf8(bytes).unwrap();
22    }
23
24    String::default()
25}