mirror of
https://github.com/rtic-rs/rtic.git
synced 2024-12-11 12:47:16 +01:00
Fix documentation (docs.rs) and release 2.1.2
This commit is contained in:
parent
f17915842f
commit
b41a10e794
8 changed files with 34 additions and 28 deletions
|
@ -7,10 +7,11 @@ For each category, *Added*, *Changed*, *Fixed* add new entries at the top!
|
|||
|
||||
## [Unreleased]
|
||||
|
||||
- Replace `proc-macro-error` with `proc-macro-error2`
|
||||
## [v2.1.1] - 2024-12-06
|
||||
|
||||
### Changed
|
||||
|
||||
- Replace `proc-macro-error` with `proc-macro-error2`
|
||||
- Fix codegen emitting unqualified `Result`
|
||||
- Improve error output for prios > dispatchers
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ name = "rtic-macros"
|
|||
readme = "../README.md"
|
||||
repository = "https://github.com/rtic-rs/rtic"
|
||||
|
||||
version = "2.1.0"
|
||||
version = "2.1.1"
|
||||
|
||||
[lib]
|
||||
proc-macro = true
|
||||
|
|
|
@ -161,7 +161,7 @@ pub struct ExclusiveAccess<'a, T> {
|
|||
inner: &'a mut T,
|
||||
}
|
||||
|
||||
impl<'a, T> Drop for ExclusiveAccess<'a, T> {
|
||||
impl<T> Drop for ExclusiveAccess<'_, T> {
|
||||
fn drop(&mut self) {
|
||||
critical_section::with(|_| {
|
||||
fence(Ordering::SeqCst);
|
||||
|
@ -177,7 +177,7 @@ impl<'a, T> Drop for ExclusiveAccess<'a, T> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a, T> Deref for ExclusiveAccess<'a, T> {
|
||||
impl<T> Deref for ExclusiveAccess<'_, T> {
|
||||
type Target = T;
|
||||
|
||||
fn deref(&self) -> &Self::Target {
|
||||
|
@ -185,7 +185,7 @@ impl<'a, T> Deref for ExclusiveAccess<'a, T> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a, T> DerefMut for ExclusiveAccess<'a, T> {
|
||||
impl<T> DerefMut for ExclusiveAccess<'_, T> {
|
||||
fn deref_mut(&mut self) -> &mut Self::Target {
|
||||
self.inner
|
||||
}
|
||||
|
@ -215,7 +215,7 @@ pub mod spi {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a, BUS, CS, D> ErrorType for ArbiterDevice<'a, BUS, CS, D>
|
||||
impl<BUS, CS, D> ErrorType for ArbiterDevice<'_, BUS, CS, D>
|
||||
where
|
||||
BUS: ErrorType,
|
||||
CS: OutputPin,
|
||||
|
@ -223,7 +223,7 @@ pub mod spi {
|
|||
type Error = DeviceError<BUS::Error, CS::Error>;
|
||||
}
|
||||
|
||||
impl<'a, Word, BUS, CS, D> SpiDevice<Word> for ArbiterDevice<'a, BUS, CS, D>
|
||||
impl<Word, BUS, CS, D> SpiDevice<Word> for ArbiterDevice<'_, BUS, CS, D>
|
||||
where
|
||||
Word: Copy + 'static,
|
||||
BUS: SpiBus<Word>,
|
||||
|
@ -338,14 +338,14 @@ pub mod i2c {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a, BUS> ErrorType for ArbiterDevice<'a, BUS>
|
||||
impl<BUS> ErrorType for ArbiterDevice<'_, BUS>
|
||||
where
|
||||
BUS: ErrorType,
|
||||
{
|
||||
type Error = BUS::Error;
|
||||
}
|
||||
|
||||
impl<'a, BUS, A> I2c<A> for ArbiterDevice<'a, BUS>
|
||||
impl<BUS, A> I2c<A> for ArbiterDevice<'_, BUS>
|
||||
where
|
||||
BUS: I2c<A>,
|
||||
A: AddressMode,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -71,7 +71,7 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a, T: Copy> SignalWriter<'a, T> {
|
||||
impl<T: Copy> SignalWriter<'_, T> {
|
||||
/// Write a raw Store value to the Signal.
|
||||
fn write_inner(&mut self, value: Store<T>) {
|
||||
critical_section::with(|_| {
|
||||
|
|
|
@ -211,7 +211,7 @@ pub struct Delay<'q, Backend: TimerQueueBackend> {
|
|||
marker: AtomicUsize,
|
||||
}
|
||||
|
||||
impl<'q, Backend: TimerQueueBackend> Future for Delay<'q, Backend> {
|
||||
impl<Backend: TimerQueueBackend> Future for Delay<'_, Backend> {
|
||||
type Output = ();
|
||||
|
||||
fn poll(self: Pin<&mut Self>, cx: &mut core::task::Context<'_>) -> Poll<Self::Output> {
|
||||
|
@ -249,7 +249,7 @@ impl<'q, Backend: TimerQueueBackend> Future for Delay<'q, Backend> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'q, Backend: TimerQueueBackend> Drop for Delay<'q, Backend> {
|
||||
impl<Backend: TimerQueueBackend> Drop for Delay<'_, Backend> {
|
||||
fn drop(&mut self) {
|
||||
// SAFETY: Drop cannot be run at the same time as poll, so we can't end up
|
||||
// derefencing this concurrently to the one in `poll`.
|
||||
|
@ -269,7 +269,7 @@ pub struct Timeout<'q, Backend: TimerQueueBackend, F> {
|
|||
future: F,
|
||||
}
|
||||
|
||||
impl<'q, Backend: TimerQueueBackend, F: Future> Future for Timeout<'q, Backend, F> {
|
||||
impl<Backend: TimerQueueBackend, F: Future> Future for Timeout<'_, Backend, F> {
|
||||
type Output = Result<F::Output, TimeoutError>;
|
||||
|
||||
fn poll(self: Pin<&mut Self>, cx: &mut core::task::Context<'_>) -> Poll<Self::Output> {
|
||||
|
|
|
@ -20,6 +20,8 @@ Example:
|
|||
|
||||
## [Unreleased]
|
||||
|
||||
## [v2.1.2] - 2024-12-06
|
||||
|
||||
### Changed
|
||||
|
||||
- Updated esp32c3 dependency to v0.26.0
|
||||
|
|
|
@ -16,10 +16,10 @@ name = "rtic"
|
|||
readme = "../README.md"
|
||||
repository = "https://github.com/rtic-rs/rtic"
|
||||
|
||||
version = "2.1.1"
|
||||
version = "2.1.2"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
features = ["rtic-macros/test-template"]
|
||||
features = ["thumbv7-backend"]
|
||||
|
||||
[lib]
|
||||
name = "rtic"
|
||||
|
@ -31,7 +31,7 @@ riscv = { version = "0.12.1", optional = true }
|
|||
cortex-m = { version = "0.7.0", optional = true }
|
||||
bare-metal = "1.0.0"
|
||||
portable-atomic = { version = "1", default-features = false }
|
||||
rtic-macros = { path = "../rtic-macros", version = "=2.1.0" }
|
||||
rtic-macros = { path = "../rtic-macros", version = "=2.1.1" }
|
||||
rtic-core = "1"
|
||||
critical-section = "1"
|
||||
|
||||
|
|
Loading…
Reference in a new issue