diff options
| author | Jorge Aparicio <jorge@japaric.io> | 2017-04-27 18:34:21 -0500 |
|---|---|---|
| committer | Jorge Aparicio <jorge@japaric.io> | 2017-04-27 18:34:21 -0500 |
| commit | ec2df608ca4c35f044c383b7a4c8ba268657aa15 (patch) | |
| tree | ea4b4f4eef9e0b584e051b6f7db1bb6093984253 | |
| parent | a3cc01df672b27d118ce3c0d94ac3ab6f371cf4a (diff) | |
make `as_ceiling` a general method of `P<N>`
| -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, |
