diff options
| author | djzin <noreply@github.com> | 2016-12-27 10:22:17 +0000 |
|---|---|---|
| committer | djzin <noreply@github.com> | 2017-01-14 16:51:51 +0000 |
| commit | 58e597e1f7a3d08ea25651f6c6cb35bf18df5820 (patch) | |
| tree | 9695f308fabc0af939b72f9507eb1d79019cd264 /src | |
| parent | 54a3487fc53017661a82aeec8b2d1794ae4fce0f (diff) | |
| download | rust-58e597e1f7a3d08ea25651f6c6cb35bf18df5820.tar.gz rust-58e597e1f7a3d08ea25651f6c6cb35bf18df5820.zip | |
make rangeargument methods non-default; simplify impl
Diffstat (limited to 'src')
| -rw-r--r-- | src/libcollections/range.rs | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/libcollections/range.rs b/src/libcollections/range.rs index 1fa634362cf..1df4ace3777 100644 --- a/src/libcollections/range.rs +++ b/src/libcollections/range.rs @@ -41,9 +41,7 @@ pub trait RangeArgument<T: ?Sized> { /// assert_eq!((3..10).start(), Included(&3)); /// # } /// ``` - fn start(&self) -> Bound<&T> { - Unbounded - } + fn start(&self) -> Bound<&T>; /// End index bound /// @@ -66,22 +64,33 @@ pub trait RangeArgument<T: ?Sized> { /// assert_eq!((3..10).end(), Excluded(&10)); /// # } /// ``` - fn end(&self) -> Bound<&T> { - Unbounded - } + fn end(&self) -> Bound<&T>; } // FIXME add inclusive ranges to RangeArgument -impl<T: ?Sized> RangeArgument<T> for RangeFull {} +impl<T: ?Sized> RangeArgument<T> for RangeFull { + fn start(&self) -> Bound<&T> { + Unbounded + } + fn end(&self) -> Bound<&T> { + Unbounded + } +} impl<T> RangeArgument<T> for RangeFrom<T> { fn start(&self) -> Bound<&T> { Included(&self.start) } + fn end(&self) -> Bound<&T> { + Unbounded + } } impl<T> RangeArgument<T> for RangeTo<T> { + fn start(&self) -> Bound<&T> { + Unbounded + } fn end(&self) -> Bound<&T> { Excluded(&self.end) } @@ -116,18 +125,10 @@ impl<T> RangeArgument<T> for (Bound<T>, Bound<T>) { impl<'a, T: ?Sized + 'a> RangeArgument<T> for (Bound<&'a T>, Bound<&'a T>) { fn start(&self) -> Bound<&T> { - match *self { - (Included(start), _) => Included(start), - (Excluded(start), _) => Excluded(start), - (Unbounded, _) => Unbounded, - } + self.0 } fn end(&self) -> Bound<&T> { - match *self { - (_, Included(end)) => Included(end), - (_, Excluded(end)) => Excluded(end), - (_, Unbounded) => Unbounded, - } + self.1 } } |
