Merge pull request #177 from gwilymk/strategic-inlines

Strategic inlines
This commit is contained in:
Gwilym Kuiper 2022-03-05 19:06:10 +00:00 committed by GitHub
commit e77a1c26a3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 0 deletions

View file

@ -68,15 +68,19 @@ pub trait FixedWidthSignedInteger: FixedWidthUnsignedInteger + Neg<Output = Self
macro_rules! fixed_width_unsigned_integer_impl {
($T: ty) => {
impl FixedWidthUnsignedInteger for $T {
#[inline(always)]
fn zero() -> Self {
0
}
#[inline(always)]
fn one() -> Self {
1
}
#[inline(always)]
fn ten() -> Self {
10
}
#[inline(always)]
fn from_as_i32(v: i32) -> Self {
v as $T
}
@ -87,6 +91,7 @@ macro_rules! fixed_width_unsigned_integer_impl {
macro_rules! fixed_width_signed_integer_impl {
($T: ty) => {
impl FixedWidthSignedInteger for $T {
#[inline(always)]
fn fixed_abs(self) -> Self {
self.abs()
}

View file

@ -43,6 +43,7 @@ pub struct SoundChannel {
}
impl SoundChannel {
#[inline(always)]
pub fn new(data: &'static [u8]) -> Self {
SoundChannel {
data,
@ -57,6 +58,7 @@ impl SoundChannel {
}
}
#[inline(always)]
pub fn new_high_priority(data: &'static [u8]) -> Self {
SoundChannel {
data,
@ -71,16 +73,19 @@ impl SoundChannel {
}
}
#[inline(always)]
pub fn should_loop(&mut self) -> &mut Self {
self.should_loop = true;
self
}
#[inline(always)]
pub fn playback(&mut self, playback_speed: Num<usize, 8>) -> &mut Self {
self.playback_speed = playback_speed;
self
}
#[inline(always)]
pub fn panning(&mut self, panning: Num<i16, 4>) -> &mut Self {
debug_assert!(panning >= Num::new(-1), "panning value must be >= -1");
debug_assert!(panning <= Num::new(1), "panning value must be <= 1");
@ -89,6 +94,7 @@ impl SoundChannel {
self
}
#[inline(always)]
pub fn volume(&mut self, volume: Num<i16, 4>) -> &mut Self {
assert!(volume <= Num::new(1), "volume must be <= 1");
assert!(volume >= Num::new(0), "volume must be >= 0");
@ -97,12 +103,14 @@ impl SoundChannel {
self
}
#[inline(always)]
pub fn stereo(&mut self) -> &mut Self {
self.is_stereo = true;
self
}
#[inline(always)]
pub fn stop(&mut self) {
self.is_done = true
}