@@ -36,28 +36,26 @@ pub trait SmartLedsWrite {
36
36
I : Into < Self :: Color > ;
37
37
}
38
38
39
- pub mod asynch {
40
- /// An async trait that Smart Led Drivers implement
41
- ///
42
- /// The amount of time each iteration of `iterator` might take is undefined.
43
- /// Drivers, where this might lead to issues, aren't expected to work in all cases.
44
- pub trait SmartLedsWriteAsync {
45
- type Error ;
46
- type Color ;
47
- // The async_fn_in_trait warning doesn't really matter for embedded cases because
48
- // no_std async executors don't require futures to be Send. Also, embedded-hal-async
49
- // does not have Send bounds in its traits, so the HAL functions called in
50
- // implementations of this trait wouldn't return Send futures anyway. It's
51
- // questionable if it would be desirable for embedded HALs to return a Send future
52
- // for the write function for a peripheral because you probably don't want to
53
- // write data to the same peripheral from multiple threads simultaneously and have
54
- // the data get interleaved, nor have the embedded HAL implement a synchronization
55
- // mechanism with a run time cost to avoid that.
56
- // https://github.com/rust-embedded/embedded-hal/pull/515#issuecomment-1763525962
57
- #[ allow( async_fn_in_trait) ]
58
- async fn write < T , I > ( & mut self , iterator : T ) -> Result < ( ) , Self :: Error >
59
- where
60
- T : IntoIterator < Item = I > ,
61
- I : Into < Self :: Color > ;
62
- }
39
+ /// An async trait that Smart Led Drivers implement
40
+ ///
41
+ /// The amount of time each iteration of `iterator` might take is undefined.
42
+ /// Drivers, where this might lead to issues, aren't expected to work in all cases.
43
+ pub trait SmartLedsWriteAsync {
44
+ type Error ;
45
+ type Color ;
46
+ // The async_fn_in_trait warning doesn't really matter for embedded cases because
47
+ // no_std async executors don't require futures to be Send. Also, embedded-hal-async
48
+ // does not have Send bounds in its traits, so the HAL functions called in
49
+ // implementations of this trait wouldn't return Send futures anyway. It's
50
+ // questionable if it would be desirable for embedded HALs to return a Send future
51
+ // for the write function for a peripheral because you probably don't want to
52
+ // write data to the same peripheral from multiple threads simultaneously and have
53
+ // the data get interleaved, nor have the embedded HAL implement a synchronization
54
+ // mechanism with a run time cost to avoid that.
55
+ // https://github.com/rust-embedded/embedded-hal/pull/515#issuecomment-1763525962
56
+ #[ allow( async_fn_in_trait) ]
57
+ async fn write < T , I > ( & mut self , iterator : T ) -> Result < ( ) , Self :: Error >
58
+ where
59
+ T : IntoIterator < Item = I > ,
60
+ I : Into < Self :: Color > ;
63
61
}
0 commit comments