diff options
-rw-r--r-- | macros/src/codegen/resources.rs | 3 | ||||
-rw-r--r-- | macros/src/codegen/resources_struct.rs | 1 | ||||
-rw-r--r-- | src/export.rs | 5 |
3 files changed, 7 insertions, 2 deletions
diff --git a/macros/src/codegen/resources.rs b/macros/src/codegen/resources.rs index 38ea5245..8d7a3a86 100644 --- a/macros/src/codegen/resources.rs +++ b/macros/src/codegen/resources.rs @@ -56,7 +56,8 @@ pub fn codegen( #[allow(non_camel_case_types)] #(#cfgs)* pub struct #name<'a> { - priority: &'a Priority, + // PER: this is unsound + pub priority: &'a Priority, } #(#cfgs)* diff --git a/macros/src/codegen/resources_struct.rs b/macros/src/codegen/resources_struct.rs index 92d5b666..69069449 100644 --- a/macros/src/codegen/resources_struct.rs +++ b/macros/src/codegen/resources_struct.rs @@ -165,6 +165,7 @@ pub fn codegen( let constructor = quote!( impl<#lt> #ident<#lt> { #[inline(always)] + // pub const unsafe fn new(#arg) -> Self { pub unsafe fn new(#arg) -> Self { #ident { #(#values,)* diff --git a/src/export.rs b/src/export.rs index 72d954ab..29635d15 100644 --- a/src/export.rs +++ b/src/export.rs @@ -78,7 +78,7 @@ impl Priority { /// /// Will overwrite the current Priority #[inline(always)] - pub unsafe fn new(value: u8) -> Self { + pub const unsafe fn new(value: u8) -> Self { Priority { inner: Cell::new(value), } @@ -98,6 +98,9 @@ impl Priority { } } +// PER: not sure if this is a problem +unsafe impl Sync for Priority {} + #[inline(always)] pub fn assert_send<T>() where |