aboutsummaryrefslogtreecommitdiff
path: root/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'build.rs')
-rw-r--r--build.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/build.rs b/build.rs
index aae9f89..3fcb695 100644
--- a/build.rs
+++ b/build.rs
@@ -56,6 +56,7 @@ fn main() {
// Priorities
for i in 1..(1 << bits) + 1 {
+ let c = Ident::new(format!("C{}", i));
let p = Ident::new(format!("P{}", i));
let u = Ident::new(format!("U{}", i));
@@ -64,6 +65,15 @@ fn main() {
/// Priority
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)
+ }
+ }
+ }
+
unsafe impl Priority for #p {}
unsafe impl Level for ::typenum::#u {