diff options
author | Florian Klink <flokli@flokli.de> | 2024-10-13T16·09+0300 |
---|---|---|
committer | flokli <flokli@flokli.de> | 2024-10-17T22·15+0000 |
commit | 1c80bc4b5b2736e9421fc8a6f833f1e592e08642 (patch) | |
tree | a4d58eec75f230bbf559933a85d19c25ed35e8b7 /tvix/store/src/composition.rs | |
parent | f0d594789ee01df43de50198adef91a11e2a355a (diff) |
refactor(tvix/store): remove use of lazy_static r/8825
This is now supported in the standard library via std::sync::LazyLock, but requires some manual shuffling around of code. Change-Id: Ifca792f4d2dbc36b703de4a4dfa406015ab86da7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12614 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: flokli <flokli@flokli.de> Reviewed-by: edef <edef@edef.eu> Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/store/src/composition.rs')
-rw-r--r-- | tvix/store/src/composition.rs | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/tvix/store/src/composition.rs b/tvix/store/src/composition.rs index a32f22cf7796..063236136fd1 100644 --- a/tvix/store/src/composition.rs +++ b/tvix/store/src/composition.rs @@ -1,17 +1,16 @@ -use lazy_static::lazy_static; +use std::sync::LazyLock; pub use tvix_castore::composition::*; -lazy_static! { - /// The provided registry of tvix_store, which has all the builtin - /// tvix_castore (BlobStore/DirectoryStore) and tvix_store - /// (PathInfoService) implementations. - pub static ref REG: Registry = { - let mut reg = Default::default(); - add_default_services(&mut reg); - reg - }; -} +/// The provided registry of tvix_store, which has all the builtin +/// tvix_castore (BlobStore/DirectoryStore) and tvix_store +/// (PathInfoService) implementations. +pub static REG: LazyLock<&'static Registry> = LazyLock::new(|| { + let mut reg = Default::default(); + add_default_services(&mut reg); + // explicitly leak to get an &'static, so that we gain `&Registry: Send` from `Registry: Sync` + Box::leak(Box::new(reg)) +}); /// Register the builtin services of tvix_castore and tvix_store with the given /// registry. This is useful for creating your own registry with the builtin |