Skip to content

Commit 58e597e

Browse files
committed
make rangeargument methods non-default; simplify impl
1 parent 54a3487 commit 58e597e

File tree

1 file changed

+18
-17
lines changed

1 file changed

+18
-17
lines changed

src/libcollections/range.rs

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,7 @@ pub trait RangeArgument<T: ?Sized> {
4141
/// assert_eq!((3..10).start(), Included(&3));
4242
/// # }
4343
/// ```
44-
fn start(&self) -> Bound<&T> {
45-
Unbounded
46-
}
44+
fn start(&self) -> Bound<&T>;
4745

4846
/// End index bound
4947
///
@@ -66,22 +64,33 @@ pub trait RangeArgument<T: ?Sized> {
6664
/// assert_eq!((3..10).end(), Excluded(&10));
6765
/// # }
6866
/// ```
69-
fn end(&self) -> Bound<&T> {
70-
Unbounded
71-
}
67+
fn end(&self) -> Bound<&T>;
7268
}
7369

7470
// FIXME add inclusive ranges to RangeArgument
7571

76-
impl<T: ?Sized> RangeArgument<T> for RangeFull {}
72+
impl<T: ?Sized> RangeArgument<T> for RangeFull {
73+
fn start(&self) -> Bound<&T> {
74+
Unbounded
75+
}
76+
fn end(&self) -> Bound<&T> {
77+
Unbounded
78+
}
79+
}
7780

7881
impl<T> RangeArgument<T> for RangeFrom<T> {
7982
fn start(&self) -> Bound<&T> {
8083
Included(&self.start)
8184
}
85+
fn end(&self) -> Bound<&T> {
86+
Unbounded
87+
}
8288
}
8389

8490
impl<T> RangeArgument<T> for RangeTo<T> {
91+
fn start(&self) -> Bound<&T> {
92+
Unbounded
93+
}
8594
fn end(&self) -> Bound<&T> {
8695
Excluded(&self.end)
8796
}
@@ -116,18 +125,10 @@ impl<T> RangeArgument<T> for (Bound<T>, Bound<T>) {
116125

117126
impl<'a, T: ?Sized + 'a> RangeArgument<T> for (Bound<&'a T>, Bound<&'a T>) {
118127
fn start(&self) -> Bound<&T> {
119-
match *self {
120-
(Included(start), _) => Included(start),
121-
(Excluded(start), _) => Excluded(start),
122-
(Unbounded, _) => Unbounded,
123-
}
128+
self.0
124129
}
125130

126131
fn end(&self) -> Bound<&T> {
127-
match *self {
128-
(_, Included(end)) => Included(end),
129-
(_, Excluded(end)) => Excluded(end),
130-
(_, Unbounded) => Unbounded,
131-
}
132+
self.1
132133
}
133134
}

0 commit comments

Comments
 (0)