diff options
| author | Kyle Huey <khuey@kylehuey.com> | 2019-04-19 21:13:37 -0700 |
|---|---|---|
| committer | Kyle Huey <khuey@kylehuey.com> | 2019-04-19 21:52:43 -0700 |
| commit | 3e86cf36b5114f201868bf459934fe346a76a2d4 (patch) | |
| tree | 60a7de7db6b5733586c144a3dfe113c1fc70dfcd /src/libstd | |
| parent | 8aaae4294b16b8070a52b858364f440873bfc95c (diff) | |
| download | rust-3e86cf36b5114f201868bf459934fe346a76a2d4.tar.gz rust-3e86cf36b5114f201868bf459934fe346a76a2d4.zip | |
Add implementations of last in terms of next_back on a bunch of DoubleEndedIterators.
r?Manishearth
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/env.rs | 6 | ||||
| -rw-r--r-- | src/libstd/path.rs | 10 | ||||
| -rw-r--r-- | src/libstd/sys/unix/args.rs | 2 | ||||
| -rw-r--r-- | src/libstd/sys/wasm/args.rs | 4 | ||||
| -rw-r--r-- | src/libstd/sys/windows/args.rs | 2 |
5 files changed, 24 insertions, 0 deletions
diff --git a/src/libstd/env.rs b/src/libstd/env.rs index 01b301cb43d..6cb160067f7 100644 --- a/src/libstd/env.rs +++ b/src/libstd/env.rs @@ -740,6 +740,10 @@ impl Iterator for Args { self.inner.next().map(|s| s.into_string().unwrap()) } fn size_hint(&self) -> (usize, Option<usize>) { self.inner.size_hint() } + #[inline] + fn last(mut self) -> Option<String> { + self.next_back() + } } #[stable(feature = "env", since = "1.0.0")] @@ -775,6 +779,8 @@ impl Iterator for ArgsOs { type Item = OsString; fn next(&mut self) -> Option<OsString> { self.inner.next() } fn size_hint(&self) -> (usize, Option<usize>) { self.inner.size_hint() } + #[inline] + fn last(mut self) -> Option<OsString> { self.next_back() } } #[stable(feature = "env", since = "1.0.0")] diff --git a/src/libstd/path.rs b/src/libstd/path.rs index 1bbda9b5bcb..79ba37b2eb5 100644 --- a/src/libstd/path.rs +++ b/src/libstd/path.rs @@ -886,6 +886,11 @@ impl<'a> Iterator for Iter<'a> { fn next(&mut self) -> Option<&'a OsStr> { self.inner.next().map(Component::as_os_str) } + + #[inline] + fn last(mut self) -> Option<&'a OsStr> { + self.next_back() + } } #[stable(feature = "rust1", since = "1.0.0")] @@ -949,6 +954,11 @@ impl<'a> Iterator for Components<'a> { } None } + + #[inline] + fn last(mut self) -> Option<Self::Item> { + self.next_back() + } } #[stable(feature = "rust1", since = "1.0.0")] diff --git a/src/libstd/sys/unix/args.rs b/src/libstd/sys/unix/args.rs index 18de1096df2..f0594bb21bd 100644 --- a/src/libstd/sys/unix/args.rs +++ b/src/libstd/sys/unix/args.rs @@ -35,6 +35,8 @@ impl Iterator for Args { type Item = OsString; fn next(&mut self) -> Option<OsString> { self.iter.next() } fn size_hint(&self) -> (usize, Option<usize>) { self.iter.size_hint() } + #[inline] + fn last(mut self) -> Option<OsString> { self.next_back() } } impl ExactSizeIterator for Args { diff --git a/src/libstd/sys/wasm/args.rs b/src/libstd/sys/wasm/args.rs index b3c77b86995..6766099c1ec 100644 --- a/src/libstd/sys/wasm/args.rs +++ b/src/libstd/sys/wasm/args.rs @@ -37,6 +37,10 @@ impl Iterator for Args { fn size_hint(&self) -> (usize, Option<usize>) { self.iter.size_hint() } + #[inline] + fn last(mut self) -> Option<OsString> { + self.next_back() + } } impl ExactSizeIterator for Args { diff --git a/src/libstd/sys/windows/args.rs b/src/libstd/sys/windows/args.rs index b04bb484eed..744d7ec59d3 100644 --- a/src/libstd/sys/windows/args.rs +++ b/src/libstd/sys/windows/args.rs @@ -181,6 +181,8 @@ impl Iterator for Args { type Item = OsString; fn next(&mut self) -> Option<OsString> { self.parsed_args_list.next() } fn size_hint(&self) -> (usize, Option<usize>) { self.parsed_args_list.size_hint() } + #[inline] + fn last(mut self) -> Option<OsString> { self.next_back() } } impl DoubleEndedIterator for Args { |
