mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 15:01:51 +00:00
Rollup merge of #80444 - glittershark:bound-as-ref, r=dtolnay
Add as_ref and as_mut methods for Bound Add as_ref and as_mut method for std::ops::range::Bound, patterned off of the methods of the same name on Option. I'm not quite sure what the process is for introducing new feature gates (this is my first contribution) so I've left these ungated, but happy to do whatever is necessary to gate them.
This commit is contained in:
commit
3308b43ba1
@ -678,6 +678,29 @@ pub enum Bound<T> {
|
||||
Unbounded,
|
||||
}
|
||||
|
||||
#[unstable(feature = "bound_as_ref", issue = "80996")]
|
||||
impl<T> Bound<T> {
|
||||
/// Converts from `&Bound<T>` to `Bound<&T>`.
|
||||
#[inline]
|
||||
pub fn as_ref(&self) -> Bound<&T> {
|
||||
match *self {
|
||||
Included(ref x) => Included(x),
|
||||
Excluded(ref x) => Excluded(x),
|
||||
Unbounded => Unbounded,
|
||||
}
|
||||
}
|
||||
|
||||
/// Converts from `&mut Bound<T>` to `Bound<&T>`.
|
||||
#[inline]
|
||||
pub fn as_mut(&mut self) -> Bound<&mut T> {
|
||||
match *self {
|
||||
Included(ref mut x) => Included(x),
|
||||
Excluded(ref mut x) => Excluded(x),
|
||||
Unbounded => Unbounded,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Clone> Bound<&T> {
|
||||
/// Map a `Bound<&T>` to a `Bound<T>` by cloning the contents of the bound.
|
||||
///
|
||||
|
Loading…
Reference in New Issue
Block a user