From 81a90bdb03966d8ab4874d854ed6c268e060fe13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Tue, 20 Dec 2022 18:48:26 +0100 Subject: [PATCH] feat: add inline tags to compact binary size --- src/animation.rs | 2 ++ src/filled_seven_segment.rs | 7 +++++++ src/filled_sipo.rs | 2 ++ src/led_matrix.rs | 6 ++++++ src/rng.rs | 1 + src/seven_segment.rs | 4 ++++ src/sipo.rs | 1 + 7 files changed, 23 insertions(+) diff --git a/src/animation.rs b/src/animation.rs index d73695f..7d2db4e 100644 --- a/src/animation.rs +++ b/src/animation.rs @@ -111,6 +111,7 @@ impl Animation for WinAnimation { seven_segment.show_all_digits(); } + #[inline] fn running(&self) -> bool { self.led_step < WIN_ANIMATION_MAX_LED_OUTER_STEP } @@ -166,6 +167,7 @@ impl Animation for HelloAnimation { seven_segment.show_all_digits(); } + #[inline] fn running(&self) -> bool { self.outer_step < HELO_ANIMATION_MAX_OUTER_STEP } diff --git a/src/filled_seven_segment.rs b/src/filled_seven_segment.rs index d168f83..c8f0316 100644 --- a/src/filled_seven_segment.rs +++ b/src/filled_seven_segment.rs @@ -29,18 +29,22 @@ impl FilledSevenSegment { return (digit % 10).try_into().unwrap(); } + #[inline] pub fn hide_digit(&mut self, digit_index: usize) { self.hide |= 1 << digit_index; } + #[inline] pub fn show_digit(&mut self, digit_index: usize) { self.hide &= !(1 << digit_index); } + #[inline] pub fn hide_all_digits(&mut self) { self.hide = 0xFF; } + #[inline] pub fn show_all_digits(&mut self) { self.hide = 0; } @@ -58,6 +62,7 @@ impl FilledSevenSegment { } } + #[inline] pub fn show_number_block(&mut self) { while !self.step() {} } @@ -101,10 +106,12 @@ impl FilledSevenSegment { return false; } + #[inline] pub fn reset(&mut self) { self.update_step = 0; } + #[inline] pub fn clear(&mut self) { self.digits = [None, None, None, None]; } diff --git a/src/filled_sipo.rs b/src/filled_sipo.rs index 3b26260..fd44b89 100644 --- a/src/filled_sipo.rs +++ b/src/filled_sipo.rs @@ -20,6 +20,7 @@ impl FilledSipo { self.reset(); } + #[inline] pub fn push_block(&mut self) { while !self.step() { } @@ -38,6 +39,7 @@ impl FilledSipo { return false; } + #[inline] pub fn reset(&mut self) { self.update_step = 0; } diff --git a/src/led_matrix.rs b/src/led_matrix.rs index cb4cb05..cd1abac 100644 --- a/src/led_matrix.rs +++ b/src/led_matrix.rs @@ -25,14 +25,17 @@ impl LEDMatrix { } } + #[inline] fn get_position(width: u8, x: u8, y: u8) -> u8 { return width*y + x; } + #[inline] pub fn data(&self) -> u8 { self.data } + #[inline] pub fn set_data(&mut self, data: u8) { self.data = data; } @@ -50,11 +53,13 @@ impl LEDMatrix { } } + #[inline] pub fn add_anode(&mut self, anode: Pin) { self.anodes[self.anodes_count] = Some(anode); self.anodes_count += 1; } + #[inline] pub fn add_cathode(&mut self, cathode: Pin) { self.cathodes[self.cathodes_count] = Some(cathode); self.cathodes_count += 1; @@ -96,6 +101,7 @@ impl LEDMatrix { return false; } + #[inline] pub fn clear(&mut self) { self.data = 0; } diff --git a/src/rng.rs b/src/rng.rs index 58b3681..4c96010 100644 --- a/src/rng.rs +++ b/src/rng.rs @@ -31,6 +31,7 @@ impl Rng { self.c } + #[inline] pub fn take_u8(&mut self) -> u8 { self.randomize() } diff --git a/src/seven_segment.rs b/src/seven_segment.rs index 5aa1d14..2bc99e9 100644 --- a/src/seven_segment.rs +++ b/src/seven_segment.rs @@ -56,18 +56,22 @@ impl SevenSegment { } } + #[inline] pub fn digits(&self) -> u8 { return self.digits; } + #[inline] pub fn dp(&self) -> bool { return self.dp; } + #[inline] pub fn common_cathode(&self) -> bool { return self.common_cathode; } + #[inline] fn get_digit_selector(digit_count: u8, digit_index: usize) -> u8 { let digit_count: usize = digit_count.into(); return 1 << (digit_count - 1 - digit_index); diff --git a/src/sipo.rs b/src/sipo.rs index 4f04413..6afe8f6 100644 --- a/src/sipo.rs +++ b/src/sipo.rs @@ -20,6 +20,7 @@ impl Sipo { return sipo; } + #[inline] pub fn setup(&mut self) { self.clear(); self.show(); -- 2.48.1