embassy: Clippy fixes.

This commit is contained in:
Dario Nieuwenhuis 2022-06-26 00:14:28 +02:00
parent 935def4a0b
commit 17cab1a2d4
4 changed files with 19 additions and 7 deletions

View file

@ -104,7 +104,7 @@ impl<M: RawMutex, T: Clone, const CAP: usize, const SUBS: usize, const PUBS: usi
/// Create a new subscriber. It will only receive messages that are published after its creation. /// Create a new subscriber. It will only receive messages that are published after its creation.
/// ///
/// If there are no subscriber slots left, an error will be returned. /// If there are no subscriber slots left, an error will be returned.
pub fn dyn_subscriber<'a>(&'a self) -> Result<DynSubscriber<'a, T>, Error> { pub fn dyn_subscriber(&self) -> Result<DynSubscriber<'_, T>, Error> {
self.inner.lock(|inner| { self.inner.lock(|inner| {
let mut s = inner.borrow_mut(); let mut s = inner.borrow_mut();
@ -136,7 +136,7 @@ impl<M: RawMutex, T: Clone, const CAP: usize, const SUBS: usize, const PUBS: usi
/// Create a new publisher /// Create a new publisher
/// ///
/// If there are no publisher slots left, an error will be returned. /// If there are no publisher slots left, an error will be returned.
pub fn dyn_publisher<'a>(&'a self) -> Result<DynPublisher<'a, T>, Error> { pub fn dyn_publisher(&self) -> Result<DynPublisher<'_, T>, Error> {
self.inner.lock(|inner| { self.inner.lock(|inner| {
let mut s = inner.borrow_mut(); let mut s = inner.borrow_mut();
@ -369,7 +369,7 @@ impl<T: Clone, const CAP: usize, const SUBS: usize, const PUBS: usize> PubSubSta
} }
/// Error type for the [PubSubChannel] /// Error type for the [PubSubChannel]
#[derive(Debug, PartialEq, Clone)] #[derive(Debug, PartialEq, Eq, Clone)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))] #[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum Error { pub enum Error {
/// All subscriber slots are used. To add another subscriber, first another subscriber must be dropped or /// All subscriber slots are used. To add another subscriber, first another subscriber must be dropped or
@ -404,7 +404,7 @@ pub trait PubSubBehavior<T> {
} }
/// The result of the subscriber wait procedure /// The result of the subscriber wait procedure
#[derive(Debug, Clone, PartialEq)] #[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))] #[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum WaitResult<T> { pub enum WaitResult<T> {
/// The subscriber did not receive all messages and lagged by the given amount of messages. /// The subscriber did not receive all messages and lagged by the given amount of messages.

View file

@ -445,6 +445,10 @@ impl Executor {
/// Wake a task by raw pointer. /// Wake a task by raw pointer.
/// ///
/// You can obtain task pointers from `Waker`s using [`task_from_waker`]. /// You can obtain task pointers from `Waker`s using [`task_from_waker`].
///
/// # Safety
///
/// `task` must be a valid task pointer obtained from [`task_from_waker`].
pub unsafe fn wake_task(task: NonNull<TaskHeader>) { pub unsafe fn wake_task(task: NonNull<TaskHeader>) {
task.as_ref().enqueue(); task.as_ref().enqueue();
} }

View file

@ -93,7 +93,7 @@ impl Spawner {
pub async fn for_current_executor() -> Self { pub async fn for_current_executor() -> Self {
poll_fn(|cx| unsafe { poll_fn(|cx| unsafe {
let task = raw::task_from_waker(cx.waker()); let task = raw::task_from_waker(cx.waker());
let executor = (&*task.as_ptr()).executor.get(); let executor = (*task.as_ptr()).executor.get();
Poll::Ready(Self::new(&*executor)) Poll::Ready(Self::new(&*executor))
}) })
.await .await
@ -169,7 +169,7 @@ impl SendSpawner {
pub async fn for_current_executor() -> Self { pub async fn for_current_executor() -> Self {
poll_fn(|cx| unsafe { poll_fn(|cx| unsafe {
let task = raw::task_from_waker(cx.waker()); let task = raw::task_from_waker(cx.waker());
let executor = (&*task.as_ptr()).executor.get(); let executor = (*task.as_ptr()).executor.get();
Poll::Ready(Self::new(&*executor)) Poll::Ready(Self::new(&*executor))
}) })
.await .await

View file

@ -82,9 +82,17 @@ impl<T> Forever<T> {
} }
} }
/// Unsafely get a mutable reference to the contents of this Forever.
///
/// # Safety
///
/// This is undefined behavior if:
///
/// - The `Forever` has not been initialized yet (with `put' or `put_with`), or
/// - A reference to the contents (mutable or not) already exists.
#[inline(always)] #[inline(always)]
#[allow(clippy::mut_from_ref)] #[allow(clippy::mut_from_ref)]
pub unsafe fn steal(&'static self) -> &'static mut T { pub unsafe fn steal(&self) -> &mut T {
let p = self.t.get(); let p = self.t.get();
let p = (&mut *p).as_mut_ptr(); let p = (&mut *p).as_mut_ptr();
&mut *p &mut *p