From e757b1882e976bc761183b9a0b7d880836d80ae3 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Fri, 22 Jul 2022 07:09:26 +0200 Subject: [PATCH] Add inline attribute to embassy-rp async functions This commit adds the inline attribute to the recently added async gpio functions. This is to enable cross-crate inlining and to be consistent with the other functions implemented for Input and Flex. --- embassy-rp/src/gpio.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/embassy-rp/src/gpio.rs b/embassy-rp/src/gpio.rs index f205063c6..53c26de1c 100644 --- a/embassy-rp/src/gpio.rs +++ b/embassy-rp/src/gpio.rs @@ -84,22 +84,27 @@ impl<'d, T: Pin> Input<'d, T> { self.pin.get_level() } + #[inline] pub async fn wait_for_high<'a>(&mut self) { self.pin.wait_for_high().await; } + #[inline] pub async fn wait_for_low<'a>(&mut self) { self.pin.wait_for_low().await; } + #[inline] pub async fn wait_for_rising_edge<'a>(&mut self) { self.pin.wait_for_rising_edge().await; } + #[inline] pub async fn wait_for_falling_edge<'a>(&mut self) { self.pin.wait_for_falling_edge().await; } + #[inline] pub async fn wait_for_any_edge<'a>(&mut self) { self.pin.wait_for_any_edge().await; } @@ -547,24 +552,29 @@ impl<'d, T: Pin> Flex<'d, T> { unsafe { self.pin.sio_out().value_xor().write_value(self.bit()) } } + #[inline] pub async fn wait_for_high<'a>(&mut self) { InputFuture::new(&mut self.pin, InterruptTrigger::LevelHigh).await; } + #[inline] pub async fn wait_for_low<'a>(&mut self) { InputFuture::new(&mut self.pin, InterruptTrigger::LevelLow).await; } + #[inline] pub async fn wait_for_rising_edge<'a>(&mut self) { self.wait_for_low().await; self.wait_for_high().await; } + #[inline] pub async fn wait_for_falling_edge<'a>(&mut self) { self.wait_for_high().await; self.wait_for_low().await; } + #[inline] pub async fn wait_for_any_edge<'a>(&mut self) { if self.is_high() { self.wait_for_low().await;