diff options
| author | bors <bors@rust-lang.org> | 2023-10-15 17:09:37 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-10-15 17:09:37 +0000 |
| commit | 64368d0279c41699fffd7980304488d65a42ba32 (patch) | |
| tree | 13255b406038b2f2036688644843d24017cce343 /library/core/src/char | |
| parent | d60d63fbf7565daba4b9cc46cbbfabc366aeff63 (diff) | |
| parent | 60fd119a293b56529c4a49f60103679eaced0aed (diff) | |
| download | rust-64368d0279c41699fffd7980304488d65a42ba32.tar.gz rust-64368d0279c41699fffd7980304488d65a42ba32.zip | |
Auto merge of #110729 - ColinFinck:decode-utf16-fused-iterator, r=dtolnay
Implement FusedIterator for DecodeUtf16 when the inner iterator does I have just implemented an iterator that wraps `DecodeUtf16` and wanted to implement `FusedIterator` for my iterator when I noticed that `DecodeUtf16` currently doesn't implement `FusedIterator` at all. A quick look at the code of `DecodeUtf16` revealed that `DecodeUtf16::next` only returns `None` when its inner iterator returns `None`: https://github.com/rust-lang/rust/blob/3462f79e94f466a56ddaccfcdd3a3d44dd1dda9f/library/core/src/char/decode.rs#L45 As a result, we can implement `FusedIterator` for `DecodeUtf16` when the inner iterator does. I'm following the example of #96397 here and consider this change minor and non-controversial, which is why I haven't added an RFC. I have also added the required feature name (`"decode_utf16_fused_iterator"`), however without adding a chapter to the Rust Unstable book (same as #96397).
Diffstat (limited to 'library/core/src/char')
| -rw-r--r-- | library/core/src/char/decode.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/library/core/src/char/decode.rs b/library/core/src/char/decode.rs index dbfe251f2bb..d76f983d87c 100644 --- a/library/core/src/char/decode.rs +++ b/library/core/src/char/decode.rs @@ -2,6 +2,7 @@ use crate::error::Error; use crate::fmt; +use crate::iter::FusedIterator; /// An iterator that decodes UTF-16 encoded code points from an iterator of `u16`s. /// @@ -105,6 +106,9 @@ impl<I: Iterator<Item = u16>> Iterator for DecodeUtf16<I> { } } +#[stable(feature = "decode_utf16_fused_iterator", since = "CURRENT_RUSTC_VERSION")] +impl<I: Iterator<Item = u16> + FusedIterator> FusedIterator for DecodeUtf16<I> {} + impl DecodeUtf16Error { /// Returns the unpaired surrogate which caused this error. #[must_use] |
