aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandros Liarokapis <[email protected]>2024-10-02 13:10:07 +0300
committerAlexandros Liarokapis <[email protected]>2024-10-15 12:29:12 +0300
commit2ec05da5ddadad9b34c72e8ef1a57a7662a6f0e0 (patch)
treedebee1403e864e35a39b2d7ae6fb50c7527c4a3a
parentf0d2ebdc7ead41307155b083790b8450ca2b7eac (diff)
simplify if/else handling on ringbuffer
-rw-r--r--embassy-stm32/src/dma/ringbuffer/mod.rs11
1 files changed, 4 insertions, 7 deletions
diff --git a/embassy-stm32/src/dma/ringbuffer/mod.rs b/embassy-stm32/src/dma/ringbuffer/mod.rs
index a257faa5b..ac4be3e18 100644
--- a/embassy-stm32/src/dma/ringbuffer/mod.rs
+++ b/embassy-stm32/src/dma/ringbuffer/mod.rs
@@ -111,10 +111,8 @@ impl<'a, W: Word> ReadableDmaRingBuffer<'a, W> {
111 let diff = self.write_index.diff(self.cap(), &self.read_index); 111 let diff = self.write_index.diff(self.cap(), &self.read_index);
112 112
113 if diff < 0 { 113 if diff < 0 {
114 return Err(Error::DmaUnsynced); 114 Err(Error::DmaUnsynced)
115 } 115 } else if diff > self.cap() as isize {
116
117 if diff > self.cap() as isize {
118 Err(Error::Overrun) 116 Err(Error::Overrun)
119 } else { 117 } else {
120 Ok(diff as usize) 118 Ok(diff as usize)
@@ -223,11 +221,10 @@ impl<'a, W: Word> WritableDmaRingBuffer<'a, W> {
223 221
224 let diff = self.write_index.diff(self.cap(), &self.read_index); 222 let diff = self.write_index.diff(self.cap(), &self.read_index);
225 223
226 if diff > self.cap() as isize {
227 return Err(Error::DmaUnsynced);
228 }
229 if diff < 0 { 224 if diff < 0 {
230 Err(Error::Overrun) 225 Err(Error::Overrun)
226 } else if diff > self.cap() as isize {
227 Err(Error::DmaUnsynced)
231 } else { 228 } else {
232 Ok(self.cap().saturating_sub(diff as usize)) 229 Ok(self.cap().saturating_sub(diff as usize))
233 } 230 }