Make sure the methods on RangeArgument can be inlined
This commit is contained in:
@@ -8,9 +8,11 @@ use std::ops::{
|
|||||||
/// **RangeArgument** is implemented by Rust's built-in range types, produced
|
/// **RangeArgument** is implemented by Rust's built-in range types, produced
|
||||||
/// by range syntax like `..`, `a..`, `..b` or `c..d`.
|
/// by range syntax like `..`, `a..`, `..b` or `c..d`.
|
||||||
pub trait RangeArgument {
|
pub trait RangeArgument {
|
||||||
|
#[inline]
|
||||||
#[doc(hidden)]
|
#[doc(hidden)]
|
||||||
/// Start index (inclusive)
|
/// Start index (inclusive)
|
||||||
fn start(&self) -> Option<usize> { None }
|
fn start(&self) -> Option<usize> { None }
|
||||||
|
#[inline]
|
||||||
#[doc(hidden)]
|
#[doc(hidden)]
|
||||||
/// End index (exclusive)
|
/// End index (exclusive)
|
||||||
fn end(&self) -> Option<usize> { None }
|
fn end(&self) -> Option<usize> { None }
|
||||||
@@ -20,15 +22,19 @@ pub trait RangeArgument {
|
|||||||
impl RangeArgument for RangeFull {}
|
impl RangeArgument for RangeFull {}
|
||||||
|
|
||||||
impl RangeArgument for RangeFrom<usize> {
|
impl RangeArgument for RangeFrom<usize> {
|
||||||
|
#[inline]
|
||||||
fn start(&self) -> Option<usize> { Some(self.start) }
|
fn start(&self) -> Option<usize> { Some(self.start) }
|
||||||
}
|
}
|
||||||
|
|
||||||
impl RangeArgument for RangeTo<usize> {
|
impl RangeArgument for RangeTo<usize> {
|
||||||
|
#[inline]
|
||||||
fn end(&self) -> Option<usize> { Some(self.end) }
|
fn end(&self) -> Option<usize> { Some(self.end) }
|
||||||
}
|
}
|
||||||
|
|
||||||
impl RangeArgument for Range<usize> {
|
impl RangeArgument for Range<usize> {
|
||||||
|
#[inline]
|
||||||
fn start(&self) -> Option<usize> { Some(self.start) }
|
fn start(&self) -> Option<usize> { Some(self.start) }
|
||||||
|
#[inline]
|
||||||
fn end(&self) -> Option<usize> { Some(self.end) }
|
fn end(&self) -> Option<usize> { Some(self.end) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user