This commit is contained in:
Dinu Blanovschi 2024-10-22 16:23:17 +02:00
parent 82a438a037
commit 5c23c789ee

View File

@ -188,13 +188,30 @@ macro_rules! bind_interrupts {
)* )*
} }
$( $crate::bind_interrupts!(@__generate_impls $name $(#[cfg($cond_irq)])? $irq => $(
$(#[cfg($cond_irq)])?
$(#[cfg($cond_handler)])? $(#[cfg($cond_handler)])?
unsafe impl $crate::interrupt::typelevel::Binding<$crate::interrupt::typelevel::$irq, $handler> for $name {} $handler;
)* )*);
)* )*
}; };
(@__generate_single_impl $name:ident $(#[cfg($cond_irq:meta)])? $irq:ident => $(#[cfg($cond_handler:meta)])? $handler:ty;) => {
#[cfg(all(
$($cond_irq,)?
$($cond_handler,)?
))]
unsafe impl $crate::interrupt::typelevel::Binding<$crate::interrupt::typelevel::$irq, $handler> for $name {}
};
(@__generate_impls $name:ident $(#[cfg($cond_irq:meta)])? $irq:ident => $(#[cfg($cond_handler:meta)])? $handler:ty;) => {
$crate::bind_interrupts!(@__generate_single_impl $name $(#[cfg($cond_irq)])? $irq => $(#[cfg($cond_handler)])? $handler;);
};
(@__generate_impls $name:ident $(#[cfg($cond_irq:meta)])? $irq:ident => $(#[cfg($cond_handler:meta)])? $handler:ty; $(tail:tt)*) => {
$crate::bind_interrupts!(@__generate_single_impl $name $(#[cfg($cond_irq)])? $irq => $(#[cfg($cond_handler)])? $handler;);
$crate::bind_interrupts!(@__generate_impls $name $(#[cfg($cond_irq)])? $irq => $(tail)*);
};
} }
// Reexports // Reexports