Add some more #[inline] annotations for trivial functions (#2817)

Looking at some profiles these or their related functions were all
showing up, so this commit adds `#[inline]` to allow cross-crate
inlining by default.
This commit is contained in:
Alex Crichton
2021-04-08 12:23:54 -05:00
committed by GitHub
parent 5c4c03d278
commit c77ea0c5c7
5 changed files with 23 additions and 0 deletions

View File

@@ -70,21 +70,25 @@ macro_rules! entity_impl {
// Basic traits.
($entity:ident) => {
impl $crate::EntityRef for $entity {
#[inline]
fn new(index: usize) -> Self {
debug_assert!(index < ($crate::__core::u32::MAX as usize));
$entity(index as u32)
}
#[inline]
fn index(self) -> usize {
self.0 as usize
}
}
impl $crate::packed_option::ReservedValue for $entity {
#[inline]
fn reserved_value() -> $entity {
$entity($crate::__core::u32::MAX)
}
#[inline]
fn is_reserved_value(&self) -> bool {
self.0 == $crate::__core::u32::MAX
}
@@ -93,6 +97,7 @@ macro_rules! entity_impl {
impl $entity {
/// Create a new instance from a `u32`.
#[allow(dead_code)]
#[inline]
pub fn from_u32(x: u32) -> Self {
debug_assert!(x < $crate::__core::u32::MAX);
$entity(x)
@@ -100,6 +105,7 @@ macro_rules! entity_impl {
/// Return the underlying index value as a `u32`.
#[allow(dead_code)]
#[inline]
pub fn as_u32(self) -> u32 {
self.0
}