/// Reads the last code point out of a byte iterator (assuming a
/// UTF-8-like encoding).
-#[unstable(feature = "str_internals")]
#[inline]
-pub fn next_code_point_reverse(bytes: &mut slice::Iter<u8>) -> Option<u32> {
+fn next_code_point_reverse(bytes: &mut slice::Iter<u8>) -> Option<u32> {
// Decode UTF-8
let w = match bytes.next_back() {
None => return None,
/// Pluck a code point out of a UTF-8-like byte slice and return the
/// index of the next code point.
#[inline]
-#[unstable(feature = "str_internals")]
-pub fn char_range_at_raw(bytes: &[u8], i: usize) -> (u32, usize) {
+fn char_range_at_raw(bytes: &[u8], i: usize) -> (u32, usize) {
if bytes[i] < 128 {
return (bytes[i] as u32, i + 1);
}
}
}
- /// Returns the code point at `position`.
- ///
- /// # Panics
- ///
- /// Panics if `position` is not at a code point boundary,
- /// or is beyond the end of the string.
- #[inline]
- pub fn code_point_at(&self, position: usize) -> CodePoint {
- let (code_point, _) = self.code_point_range_at(position);
- code_point
- }
-
- /// Returns the code point at `position`
- /// and the position of the next code point.
- ///
- /// # Panics
- ///
- /// Panics if `position` is not at a code point boundary,
- /// or is beyond the end of the string.
- #[inline]
- pub fn code_point_range_at(&self, position: usize) -> (CodePoint, usize) {
- let (c, n) = char_range_at_raw(&self.bytes, position);
- (CodePoint { value: c }, n)
- }
-
/// Returns an iterator for the string’s code points.
#[inline]
pub fn code_points(&self) -> Wtf8CodePoints {