diff options
| -rw-r--r-- | build.rs | 10 | ||||
| -rw-r--r-- | src/lib.rs | 11 |
2 files changed, 10 insertions, 11 deletions
@@ -55,7 +55,6 @@ fn main() { // Priorities for i in 0..(1 << bits) + 1 { - let c = Ident::new(format!("C{}", i)); let p = Ident::new(format!("P{}", i)); let u = Ident::new(format!("U{}", i)); @@ -76,15 +75,6 @@ fn main() { quote! { #[doc = #doc] pub type #p = P<::typenum::#u>; - - impl #p { - /// Turns this priority into a ceiling - pub fn as_ceiling(&self) -> &#c { - unsafe { - ::core::mem::transmute(self) - } - } - } }, ); } @@ -436,7 +436,7 @@ extern crate typenum; use core::cell::UnsafeCell; use core::marker::PhantomData; -use core::ptr; +use core::{mem, ptr}; use cortex_m::ctxt::Context; use cortex_m::interrupt::Nr; @@ -719,6 +719,15 @@ pub struct P<T> { _marker: PhantomData<T>, } +impl<N> P<N> { + /// Turns this priority into a ceiling + pub fn as_ceiling(&self) -> &C<N> { + unsafe { + mem::transmute(self) + } + } +} + impl<T> P<T> where T: Unsigned, |
