aboutsummaryrefslogtreecommitdiff
path: root/rtic-sync/src/channel.rs
diff options
context:
space:
mode:
authorEmil Fresk <emil.fresk@gmail.com>2024-12-06 13:38:15 +0100
committerEmil Fresk <emil.fresk@gmail.com>2024-12-06 14:09:26 +0100
commitb41a10e794261e1539cd571aab00fca40568ba87 (patch)
tree50f184af566d990ae3ca3c99e585ac4ae9c57632 /rtic-sync/src/channel.rs
parentf17915842ff18be48b6c8ed5faac378bc26ff3b3 (diff)
Fix documentation (docs.rs) and release 2.1.2
Diffstat (limited to 'rtic-sync/src/channel.rs')
-rw-r--r--rtic-sync/src/channel.rs27
1 files changed, 15 insertions, 12 deletions
diff --git a/rtic-sync/src/channel.rs b/rtic-sync/src/channel.rs
index 0857f72..65a83d9 100644
--- a/rtic-sync/src/channel.rs
+++ b/rtic-sync/src/channel.rs
@@ -127,7 +127,10 @@ macro_rules! make_channel {
// SAFETY: This is safe as we hide the static mut from others to access it.
// Only this point is where the mutable access happens.
- unsafe { CHANNEL.split() }
+ #[allow(static_mut_refs)]
+ unsafe {
+ CHANNEL.split()
+ }
}};
}
@@ -184,7 +187,7 @@ where
/// A `Sender` can send to the channel and can be cloned.
pub struct Sender<'a, T, const N: usize>(&'a Channel<T, N>);
-unsafe impl<'a, T, const N: usize> Send for Sender<'a, T, N> {}
+unsafe impl<T, const N: usize> Send for Sender<'_, T, N> {}
/// This is needed to make the async closure in `send` accept that we "share"
/// the link possible between threads.
@@ -202,20 +205,20 @@ unsafe impl Send for LinkPtr {}
unsafe impl Sync for LinkPtr {}
-impl<'a, T, const N: usize> core::fmt::Debug for Sender<'a, T, N> {
+impl<T, const N: usize> core::fmt::Debug for Sender<'_, T, N> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "Sender")
}
}
#[cfg(feature = "defmt-03")]
-impl<'a, T, const N: usize> defmt::Format for Sender<'a, T, N> {
+impl<T, const N: usize> defmt::Format for Sender<'_, T, N> {
fn format(&self, f: defmt::Formatter) {
defmt::write!(f, "Sender",)
}
}
-impl<'a, T, const N: usize> Sender<'a, T, N> {
+impl<T, const N: usize> Sender<'_, T, N> {
#[inline(always)]
fn send_footer(&mut self, idx: u8, val: T) {
// Write the value to the slots, note; this memcpy is not under a critical section.
@@ -360,7 +363,7 @@ impl<'a, T, const N: usize> Sender<'a, T, N> {
}
}
-impl<'a, T, const N: usize> Drop for Sender<'a, T, N> {
+impl<T, const N: usize> Drop for Sender<'_, T, N> {
fn drop(&mut self) {
// Count down the reference counter
let num_senders = critical_section::with(|cs| {
@@ -376,7 +379,7 @@ impl<'a, T, const N: usize> Drop for Sender<'a, T, N> {
}
}
-impl<'a, T, const N: usize> Clone for Sender<'a, T, N> {
+impl<T, const N: usize> Clone for Sender<'_, T, N> {
fn clone(&self) -> Self {
// Count up the reference counter
critical_section::with(|cs| *self.0.access(cs).num_senders += 1);
@@ -390,16 +393,16 @@ impl<'a, T, const N: usize> Clone for Sender<'a, T, N> {
/// A receiver of the channel. There can only be one receiver at any time.
pub struct Receiver<'a, T, const N: usize>(&'a Channel<T, N>);
-unsafe impl<'a, T, const N: usize> Send for Receiver<'a, T, N> {}
+unsafe impl<T, const N: usize> Send for Receiver<'_, T, N> {}
-impl<'a, T, const N: usize> core::fmt::Debug for Receiver<'a, T, N> {
+impl<T, const N: usize> core::fmt::Debug for Receiver<'_, T, N> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "Receiver")
}
}
#[cfg(feature = "defmt-03")]
-impl<'a, T, const N: usize> defmt::Format for Receiver<'a, T, N> {
+impl<T, const N: usize> defmt::Format for Receiver<'_, T, N> {
fn format(&self, f: defmt::Formatter) {
defmt::write!(f, "Receiver",)
}
@@ -415,7 +418,7 @@ pub enum ReceiveError {
Empty,
}
-impl<'a, T, const N: usize> Receiver<'a, T, N> {
+impl<T, const N: usize> Receiver<'_, T, N> {
/// Receives a value if there is one in the channel, non-blocking.
pub fn try_recv(&mut self) -> Result<T, ReceiveError> {
// Try to get a ready slot.
@@ -487,7 +490,7 @@ impl<'a, T, const N: usize> Receiver<'a, T, N> {
}
}
-impl<'a, T, const N: usize> Drop for Receiver<'a, T, N> {
+impl<T, const N: usize> Drop for Receiver<'_, T, N> {
fn drop(&mut self) {
// Mark the receiver as dropped and wake all waiters
critical_section::with(|cs| *self.0.access(cs).receiver_dropped = true);