diff options
| author | Dario Nieuwenhuis <[email protected]> | 2024-11-08 13:20:13 +0100 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2024-11-08 13:20:13 +0100 |
| commit | 0de204ccd7fea064f1b2ad5f0830a9b8ff0a09a9 (patch) | |
| tree | 8581bf7a96d524d0b1c972d41bcc20aa4c02c4af /embassy-nrf | |
| parent | 05d36233fc2336b17112dda52aaa0f53251c0dc0 (diff) | |
Fix "non-local impl definition" warning from recent nightlies.
Diffstat (limited to 'embassy-nrf')
| -rw-r--r-- | embassy-nrf/src/lib.rs | 63 |
1 files changed, 36 insertions, 27 deletions
diff --git a/embassy-nrf/src/lib.rs b/embassy-nrf/src/lib.rs index 03d3ca5f7..430b6fae7 100644 --- a/embassy-nrf/src/lib.rs +++ b/embassy-nrf/src/lib.rs | |||
| @@ -177,34 +177,43 @@ mod chip; | |||
| 177 | // developer note: this macro can't be in `embassy-hal-internal` due to the use of `$crate`. | 177 | // developer note: this macro can't be in `embassy-hal-internal` due to the use of `$crate`. |
| 178 | #[macro_export] | 178 | #[macro_export] |
| 179 | macro_rules! bind_interrupts { | 179 | macro_rules! bind_interrupts { |
| 180 | ($vis:vis struct $name:ident { | 180 | ($vis:vis struct $name:ident { |
| 181 | $( | 181 | $( |
| 182 | $(#[cfg($cond_irq:meta)])? | 182 | $(#[cfg($cond_irq:meta)])? |
| 183 | $irq:ident => $( | 183 | $irq:ident => $( |
| 184 | $(#[cfg($cond_handler:meta)])? | 184 | $(#[cfg($cond_handler:meta)])? |
| 185 | $handler:ty | 185 | $handler:ty |
| 186 | ),*; | 186 | ),*; |
| 187 | )* | 187 | )* |
| 188 | }) => { | 188 | }) => { |
| 189 | #[derive(Copy, Clone)] | 189 | #[derive(Copy, Clone)] |
| 190 | $vis struct $name; | 190 | $vis struct $name; |
| 191 | 191 | ||
| 192 | $( | 192 | $( |
| 193 | #[allow(non_snake_case)] | 193 | #[allow(non_snake_case)] |
| 194 | #[no_mangle] | 194 | #[no_mangle] |
| 195 | $(#[cfg($cond_irq)])? | 195 | $(#[cfg($cond_irq)])? |
| 196 | unsafe extern "C" fn $irq() { | 196 | unsafe extern "C" fn $irq() { |
| 197 | $( | 197 | $( |
| 198 | $(#[cfg($cond_handler)])? | 198 | $(#[cfg($cond_handler)])? |
| 199 | <$handler as $crate::interrupt::typelevel::Handler<$crate::interrupt::typelevel::$irq>>::on_interrupt(); | 199 | <$handler as $crate::interrupt::typelevel::Handler<$crate::interrupt::typelevel::$irq>>::on_interrupt(); |
| 200 | 200 | ||
| 201 | $(#[cfg($cond_handler)])? | 201 | )* |
| 202 | unsafe impl $crate::interrupt::typelevel::Binding<$crate::interrupt::typelevel::$irq, $handler> for $name {} | 202 | } |
| 203 | )* | 203 | |
| 204 | } | 204 | $(#[cfg($cond_irq)])? |
| 205 | )* | 205 | $crate::bind_interrupts!(@inner |
| 206 | }; | 206 | $( |
| 207 | $(#[cfg($cond_handler)])? | ||
| 208 | unsafe impl $crate::interrupt::typelevel::Binding<$crate::interrupt::typelevel::$irq, $handler> for $name {} | ||
| 209 | )* | ||
| 210 | ); | ||
| 211 | )* | ||
| 212 | }; | ||
| 213 | (@inner $($t:tt)*) => { | ||
| 214 | $($t)* | ||
| 207 | } | 215 | } |
| 216 | } | ||
| 208 | 217 | ||
| 209 | // Reexports | 218 | // Reexports |
| 210 | 219 | ||
