Skip to content

Commit b8966bf

Browse files
committed
Simplify Interrupt::nr
Make the Interrupt enum descriminant match the interrupt nr directly. This allows simplifying Interrupt::nr from being a complicated match to a simple cast to an u8. According to #370, this should lead to a code reduction of as much as 304 bytes. Fixes #211 Fixes #370
1 parent 358f9ec commit b8966bf

File tree

1 file changed

+2
-9
lines changed

1 file changed

+2
-9
lines changed

src/generate/interrupt.rs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ pub fn render(
2525
interrupts.sort_by_key(|i| i.value);
2626

2727
let mut root = TokenStream::new();
28-
let mut arms = vec![];
2928
let mut from_arms = vec![];
3029
let mut elements = vec![];
3130
let mut names = vec![];
@@ -58,11 +57,7 @@ pub fn render(
5857

5958
variants.push(quote! {
6059
#[doc = #description]
61-
#name_uc,
62-
});
63-
64-
arms.push(quote! {
65-
Interrupt::#name_uc => #value,
60+
#name_uc = #value,
6661
});
6762

6863
from_arms.push(quote! {
@@ -161,9 +156,7 @@ pub fn render(
161156
unsafe impl bare_metal::Nr for Interrupt {
162157
#[inline]
163158
fn nr(&self) -> u8 {
164-
match *self {
165-
#(#arms)*
166-
}
159+
*self as u8
167160
}
168161
}
169162
};

0 commit comments

Comments
 (0)