diff options
Diffstat (limited to 'crates/utils')
-rw-r--r-- | crates/utils/Cargo.toml | 1 | ||||
-rw-r--r-- | crates/utils/src/lib.rs | 10 |
2 files changed, 6 insertions, 5 deletions
diff --git a/crates/utils/Cargo.toml b/crates/utils/Cargo.toml index a03aeac..768287c 100644 --- a/crates/utils/Cargo.toml +++ b/crates/utils/Cargo.toml @@ -5,3 +5,4 @@ edition = "2021" publish = false [dependencies] +spin = { version = "0.9.8", default-features = false, features = ["lazy"] } diff --git a/crates/utils/src/lib.rs b/crates/utils/src/lib.rs index c6681d9..1e8ddfb 100644 --- a/crates/utils/src/lib.rs +++ b/crates/utils/src/lib.rs @@ -134,11 +134,11 @@ impl_FromEndianBytes!(i8, i16, i32, i64, isize, u8, u16, u32, u64, usize); /// Runs the body block the first time it is encountered. #[macro_export] macro_rules! first_time { - ($($stmt:stmt);*) => {{ - use core::cell::LazyCell; - static LAZY_CELL = LazyCell::new(|| { - $($stmt);* + ($($stmt:stmt)*) => {{ + use spin::lazy::Lazy; + static LAZY: Lazy<()> = Lazy::new(|| { + $($stmt)* }); - let _: &() = core::cell::LazyCell::force(&LAZY_CELL); + *Lazy::force(&LAZY) }}; } |