diff --git a/src/data.rs b/src/data.rs index d71f9eb..ee382c0 100644 --- a/src/data.rs +++ b/src/data.rs @@ -15,6 +15,7 @@ pub unsafe fn slicify_mut(value: &mut T) -> &mut [u8] { } /// converts a non mutable reference into a mutable one +#[allow(invalid_reference_casting)] pub unsafe fn mutify(nr: &T) -> &mut T { &mut *(nr as *const T as *mut T) } diff --git a/src/lib.rs b/src/lib.rs index 56cdc7e..f427b2f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -37,7 +37,7 @@ pub use win32::{ image_base, image_header, find_kernel32 }; pub use xgen::signature; mod time; -pub use time::*; +pub use time::dur; mod hash; pub use hash::*; \ No newline at end of file diff --git a/src/time.rs b/src/time.rs index 1ca717c..9bad8a6 100644 --- a/src/time.rs +++ b/src/time.rs @@ -34,19 +34,13 @@ pub mod __time_units { } } - -#[macro_export] -macro_rules! time_unit2 { - (1, $unit:ident) => { $crate::__time_units::singular::$unit }; - ($number:literal, $unit:ident) => { $number * $crate::__time_units::plural::$unit } +#[allow(unused)] +pub macro dur($($amount:tt $unit:ident $(,)?)+) { + core::time::Duration::from_millis(0u64 $( + ($crate::time::time_unit!( $amount, $unit)) )+ ) } #[allow(unused)] -macro time_unit( $number:tt, $unit:ident ) { - crate::time_unit2!($number, $unit) +macro time_unit { + (1, $unit:ident) => { $crate::time::__time_units::singular::$unit }, + ($number:literal, $unit:ident) => { $number * $crate::time::__time_units::plural::$unit } } - -#[allow(unused)] -macro dur($($amount:tt $unit:ident $(,)?)+) { - core::time::Duration::from_millis(0u64 $( + (time_unit!( $amount, $unit)) )+ ) -} \ No newline at end of file diff --git a/tests/test_data.rs b/tests/test_data.rs index c0afdd8..448bb62 100644 --- a/tests/test_data.rs +++ b/tests/test_data.rs @@ -1,10 +1,8 @@ - - - #[test] pub fn test_distance() { + let a = x::dur![ 5 days 4 hours 7 minutes 2 seconds 2 minutes ]; let a = [0u8,2,3]; let p1 = &a[0]; diff --git a/tests/test_image_base.rs b/tests/test_image_base.rs index e2dc0e5..2eb61a1 100644 --- a/tests/test_image_base.rs +++ b/tests/test_image_base.rs @@ -12,7 +12,6 @@ pub fn test_image_base() { let b = x::win32::image_base() as *const _ as usize; assert_eq!(a, b, "image_base didn't match"); - } #[test]