count_code_units: 7 count_codepoints: 6 codepoint_offset: string.codepoint_offset(Str, 0, 0) string.codepoint_offset(Str, 0, 1, 1) string.index(Str, 0, 'a') string.codepoint_offset(Str, 1, 1) string.codepoint_offset(Str, 1, 1, 2) string.index(Str, 1, 'ß') string.codepoint_offset(Str, 2, 2) string.codepoint_offset(Str, 2, 1, 3) string.index(Str, 2, 'ΞΎ') string.codepoint_offset(Str, 3, 3) string.codepoint_offset(Str, 3, 1, 4) string.index(Str, 3, 'ε••') string.codepoint_offset(Str, 4, 4) string.codepoint_offset(Str, 4, 1, 6) string.index(Str, 4, '𐀀') string.codepoint_offset(Str, 5, 6) string.codepoint_offset(Str, 6, 1, _) failed string.index(Str, 6, '.') string.codepoint_offset(Str, 6, _) failed to_char_list: ['a', 'ß', 'ΞΎ', 'ε••', '𐀀', '.'] from_char_list: aΓŸΞΎε••π€€. from_rev_char_list: .π€€ε••ΞΎΓŸa to_code_unit_list: [97, 223, 958, 21845, 55296, 56320, 46] from_code_unit_list: aΓŸΞΎε••π€€. index_next: index_next(Str, 0, 1, 'a') index_next(Str, 1, 2, 'ß') index_next(Str, 2, 3, 'ΞΎ') index_next(Str, 3, 4, 'ε••') index_next(Str, 4, 6, '𐀀') index_next(Str, 6, 7, '.') end index_next(-1): end unsafe_index_next: unsafe_index_next(Str, 0, 1, 'a') unsafe_index_next(Str, 1, 2, 'ß') unsafe_index_next(Str, 2, 3, 'ΞΎ') unsafe_index_next(Str, 3, 4, 'ε••') unsafe_index_next(Str, 4, 6, '𐀀') unsafe_index_next(Str, 6, 7, '.') end unsafe_prev_index: unsafe_prev_index(Str, 7, 6, '.') unsafe_prev_index(Str, 6, 4, '𐀀') unsafe_prev_index(Str, 4, 3, 'ε••') unsafe_prev_index(Str, 3, 2, 'ΞΎ') unsafe_prev_index(Str, 2, 1, 'ß') unsafe_prev_index(Str, 1, 0, 'a') end split_by_codepoint: split_by_codepoint(Str, -1, "", "aΓŸΞΎε••π€€.") split_by_codepoint(Str, 0, "", "aΓŸΞΎε••π€€.") split_by_codepoint(Str, 1, "a", "ΓŸΞΎε••π€€.") split_by_codepoint(Str, 2, "aß", "ξ啕𐀀.") split_by_codepoint(Str, 3, "aßξ", "啕𐀀.") split_by_codepoint(Str, 4, "aΓŸΞΎε••", "𐀀.") split_by_codepoint(Str, 5, "aΓŸΞΎε••π€€", ".") split_by_codepoint(Str, 6, "aΓŸΞΎε••π€€.", "") left_by_codepoint: aßξ right_by_codepoint: 啕𐀀. between_codepoints: ΞΎε••