1+ #[ macro_export]
2+ macro_rules! wrap_ok {
3+ ( $e: expr) => {
4+ :: core:: iter:: empty( ) . try_fold( $e, |_, __x: :: core:: convert:: Infallible | match __x { } )
5+ } ;
6+ }
7+
18macro_rules! ffi_body {
29 ( nopanic $body: block) => {
310 {
4- let result: Result <( ) , $crate:: error:: LibrashaderError > = try {
11+ let result: Result <( ) , $crate:: error:: LibrashaderError > = ( || $crate :: ffi :: wrap_ok! ( {
512 $body
6- } ;
13+ } ) ) ( ) ;
714
815 let Err ( e) = result else {
916 return $crate:: error:: LibrashaderError :: ok( )
@@ -22,13 +29,13 @@ macro_rules! ffi_body {
2229 } ;
2330 ( nopanic |$( $ref_capture: ident) ,* |; mut |$( $mut_capture: ident) ,* | $body: block) => {
2431 {
25- $( $crate:: error:: assert_non_null!( $ref_capture) ; ) *
32+ $( $crate:: error:: assert_non_null!( @ EXPORT $ref_capture) ; ) *
2633 $( let $ref_capture = unsafe { & * $ref_capture } ; ) *
27- $( $crate:: error:: assert_non_null!( $mut_capture) ; ) *
34+ $( $crate:: error:: assert_non_null!( @ EXPORT $mut_capture) ; ) *
2835 $( let $mut_capture = unsafe { & mut * $mut_capture } ; ) *
29- let result: Result <( ) , $crate:: error:: LibrashaderError > = try {
36+ let result: Result <( ) , $crate:: error:: LibrashaderError > = ( || $crate :: ffi :: wrap_ok! ( {
3037 $body
31- } ;
38+ } ) ) ( ) ;
3239
3340 let Err ( e) = result else {
3441 return $crate:: error:: LibrashaderError :: ok( )
@@ -47,11 +54,11 @@ macro_rules! ffi_body {
4754 } ;
4855 ( nopanic mut |$( $mut_capture: ident) ,* | $body: block) => {
4956 {
50- $( $crate:: error:: assert_non_null!( $mut_capture) ; ) *
57+ $( $crate:: error:: assert_non_null!( @ EXPORT $mut_capture) ; ) *
5158 $( let $mut_capture = unsafe { & mut * $mut_capture } ; ) *
52- let result: Result <( ) , $crate:: error:: LibrashaderError > = try {
59+ let result: Result <( ) , $crate:: error:: LibrashaderError > = ( || $crate :: ffi :: wrap_ok! ( {
5360 $body
54- } ;
61+ } ) ) ( ) ;
5562
5663 let Err ( e) = result else {
5764 return $crate:: error:: LibrashaderError :: ok( )
@@ -70,11 +77,11 @@ macro_rules! ffi_body {
7077 } ;
7178 ( nopanic |$( $ref_capture: ident) ,* | $body: block) => {
7279 {
73- $( $crate:: error:: assert_non_null!( $ref_capture) ; ) *
80+ $( $crate:: error:: assert_non_null!( @ EXPORT $ref_capture) ; ) *
7481 $( let $ref_capture = unsafe { & * $ref_capture } ; ) *
75- let result: Result <( ) , $crate:: error:: LibrashaderError > = try {
82+ let result: Result <( ) , $crate:: error:: LibrashaderError > = ( || $crate :: ffi :: wrap_ok! ( {
7683 $body
77- } ;
84+ } ) ) ( ) ;
7885
7986 let Err ( e) = result else {
8087 return $crate:: error:: LibrashaderError :: ok( )
@@ -231,16 +238,16 @@ pub unsafe fn boxed_slice_from_raw_parts<T>(ptr: *mut T, len: usize) -> Box<[T]>
231238 unsafe { Box :: from_raw ( std:: slice:: from_raw_parts_mut ( ptr, len) ) }
232239}
233240
234- #[ allow( unstable_name_collisions) ]
235241pub fn ptr_is_aligned < T : Sized > ( ptr : * const T ) -> bool {
236- use sptr:: Strict ;
237242 let align = std:: mem:: align_of :: < T > ( ) ;
238243 if !align. is_power_of_two ( ) {
239244 panic ! ( "is_aligned_to: align is not a power-of-two" ) ;
240245 }
241- ptr . addr ( ) & ( align - 1 ) == 0
246+ sptr :: Strict :: addr ( ptr ) & ( align - 1 ) == 0
242247}
243248
244249pub ( crate ) use extern_fn;
245250pub ( crate ) use ffi_body;
251+ pub ( crate ) use wrap_ok;
252+
246253use std:: mem:: ManuallyDrop ;
0 commit comments