mirror of
https://github.com/rtic-rs/rtic.git
synced 2025-12-16 12:55:23 +01:00
implement the Resource trait for owned resources
this unbreaks the "generics" example
This commit is contained in:
parent
219e172680
commit
a6dd004113
11 changed files with 283 additions and 225 deletions
|
|
@ -45,22 +45,24 @@ fn idle() -> ! {
|
|||
}
|
||||
|
||||
fn exti0(mut t: &mut Threshold, mut r: EXTI0::Resources) {
|
||||
// ERROR need to lock to access the resource because priority < ceiling
|
||||
if *r.ON {
|
||||
//~^ error type `EXTI0::ON` cannot be dereferenced
|
||||
}
|
||||
|
||||
// OK need to lock to access the resource
|
||||
if r.ON.claim(&mut t, |on, _| **on) {}
|
||||
if r.ON.claim(&mut t, |on, _| *on) {}
|
||||
|
||||
// OK can claim a resource with maximum ceiling
|
||||
r.MAX.claim_mut(&mut t, |max, _| **max += 1);
|
||||
r.MAX.claim_mut(&mut t, |max, _| *max += 1);
|
||||
}
|
||||
|
||||
fn exti1(mut t: &mut Threshold, r: EXTI1::Resources) {
|
||||
// ERROR no need to lock. Has direct access because priority == ceiling
|
||||
if (**r.ON).claim(&mut t, |on, _| **on) {
|
||||
//~^ error no method named `claim` found for type
|
||||
}
|
||||
// OK to directly access the resource because priority == ceiling
|
||||
if *r.ON {}
|
||||
|
||||
if **r.ON {
|
||||
// OK
|
||||
}
|
||||
// though the resource can still be claimed -- the claim is a no-op
|
||||
if r.ON.claim(&mut t, |on, _| *on) {}
|
||||
}
|
||||
|
||||
fn exti2(_t: &mut Threshold, _r: EXTI2::Resources) {}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ extern crate stm32f103xx;
|
|||
|
||||
use rtfm::{app, Threshold};
|
||||
|
||||
app! { //~ error bound `rtfm::Threshold: core::marker::Send` is not satisfied
|
||||
app! { //~ error bound `*const (): core::marker::Send` is not satisfied
|
||||
device: stm32f103xx,
|
||||
|
||||
resources: {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue