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}