mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 17:24:06 +00:00
Auto merge of #82585 - TrolledWoods:master, r=dtolnay
Added CharIndices::offset function The CharIndices iterator has a field internally called front_offset, that I think would be very useful to have access to. You can already do something like ``char_indices.next().map(|(offset, _)| offset)``, but that is wordy, in addition to not handling the case where the iterator has ended, where you'd want the offset to be equal to the length. I'm very new to the open source world and the rust repository, so I'm sorry if I missed a step or did something weird.
This commit is contained in:
commit
cb81dc535c
@ -137,6 +137,7 @@
|
||||
#![feature(stmt_expr_attributes)]
|
||||
#![feature(str_split_as_str)]
|
||||
#![feature(str_split_inclusive_as_str)]
|
||||
#![feature(char_indices_offset)]
|
||||
#![feature(trait_alias)]
|
||||
#![feature(transparent_unions)]
|
||||
#![feature(try_blocks)]
|
||||
|
@ -189,6 +189,30 @@ impl<'a> CharIndices<'a> {
|
||||
pub fn as_str(&self) -> &'a str {
|
||||
self.iter.as_str()
|
||||
}
|
||||
|
||||
/// Returns the byte position of the next character, or the length
|
||||
/// of the underlying string if there are no more characters.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(char_indices_offset)]
|
||||
/// let mut chars = "a楽".char_indices();
|
||||
///
|
||||
/// assert_eq!(chars.offset(), 0);
|
||||
/// assert_eq!(chars.next(), Some((0, 'a')));
|
||||
///
|
||||
/// assert_eq!(chars.offset(), 1);
|
||||
/// assert_eq!(chars.next(), Some((1, '楽')));
|
||||
///
|
||||
/// assert_eq!(chars.offset(), 4);
|
||||
/// assert_eq!(chars.next(), None);
|
||||
/// ```
|
||||
#[inline]
|
||||
#[unstable(feature = "char_indices_offset", issue = "83871")]
|
||||
pub fn offset(&self) -> usize {
|
||||
self.front_offset
|
||||
}
|
||||
}
|
||||
|
||||
/// An iterator over the bytes of a string slice.
|
||||
|
Loading…
Reference in New Issue
Block a user