From 6f2aa54120d980e9bb1d2c05f163e1971fc8a30a Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Tue, 15 Dec 2015 11:18:41 -0800 Subject: [PATCH] util: Inline trivial range constructors. These were showing up in the profile. --- components/util/range.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/components/util/range.rs b/components/util/range.rs index 4549a915635..07e66b28a6f 100644 --- a/components/util/range.rs +++ b/components/util/range.rs @@ -22,15 +22,23 @@ pub trait Int: fn from_usize(n: usize) -> Option; } impl Int for isize { + #[inline] fn zero() -> isize { 0 } + #[inline] fn one() -> isize { 1 } + #[inline] fn max_value() -> isize { ::std::isize::MAX } + #[inline] fn from_usize(n: usize) -> Option { num_lib::NumCast::from(n) } } impl Int for usize { + #[inline] fn zero() -> usize { 0 } + #[inline] fn one() -> usize { 1 } + #[inline] fn max_value() -> usize { ::std::usize::MAX } + #[inline] fn from_usize(n: usize) -> Option { Some(n) } } @@ -88,9 +96,13 @@ macro_rules! int_range_index { } impl $crate::range::Int for $Self_ { + #[inline] fn zero() -> $Self_ { $Self_($crate::range::Int::zero()) } + #[inline] fn one() -> $Self_ { $Self_($crate::range::Int::one()) } + #[inline] fn max_value() -> $Self_ { $Self_($crate::range::Int::max_value()) } + #[inline] fn from_usize(n: usize) -> Option<$Self_> { $crate::range::Int::from_usize(n).map($Self_) } }