diff --git a/Cargo.lock b/Cargo.lock index 29cdac3..8d3a257 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -493,7 +493,7 @@ checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hstr" -version = "0.2.12" +version = "0.2.13" dependencies = [ "compact_str", "criterion", diff --git a/crates/hstr/Cargo.toml b/crates/hstr/Cargo.toml index 6812686..b8a103e 100644 --- a/crates/hstr/Cargo.toml +++ b/crates/hstr/Cargo.toml @@ -5,7 +5,7 @@ edition = { workspace = true } license = { workspace = true } name = "hstr" repository = { workspace = true } -version = "0.2.12" +version = "0.2.13" [lib] bench = false diff --git a/crates/hstr/src/lib.rs b/crates/hstr/src/lib.rs index 2be978b..b9b5e45 100644 --- a/crates/hstr/src/lib.rs +++ b/crates/hstr/src/lib.rs @@ -100,10 +100,15 @@ pub type CachedAtom = Lazy; #[macro_export] macro_rules! atom { ($s:tt) => {{ - thread_local! { - static CACHE: $crate::Atom = $crate::Atom::from($s); + #[inline(never)] + fn get_atom() -> $crate::Atom { + thread_local! { + static CACHE: $crate::Atom = $crate::Atom::from($s); + } + CACHE.with(|cache| $crate::Atom::clone(cache)) } - CACHE.with(|cache| $crate::Atom::clone(cache)) + + get_atom() }}; }