From baa9680a3449a585481bd4b124f3e1f108262877 Mon Sep 17 00:00:00 2001 From: Andrea Canciani Date: Wed, 30 Dec 2015 16:42:52 +0100 Subject: [PATCH] Implement `count` for `EscapeDefault` and `EscapeUnicode` Trivial implementation, as both are `ExactSizeIterator`s. Part of #24214. --- src/libcore/char.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/libcore/char.rs b/src/libcore/char.rs index 25d90cc6f3a4..f803b36cede9 100644 --- a/src/libcore/char.rs +++ b/src/libcore/char.rs @@ -470,6 +470,11 @@ impl Iterator for EscapeUnicode { (n, Some(n)) } + #[inline] + fn count(self) -> usize { + self.len() + } + fn last(self) -> Option { match self.state { EscapeUnicodeState::Done => None, @@ -535,13 +540,9 @@ impl Iterator for EscapeDefault { } } + #[inline] fn count(self) -> usize { - match self.state { - EscapeDefaultState::Char(_) => 1, - EscapeDefaultState::Unicode(iter) => iter.count(), - EscapeDefaultState::Done => 0, - EscapeDefaultState::Backslash(_) => 2, - } + self.len() } fn nth(&mut self, n: usize) -> Option {