about summary refs log tree commit diff
path: root/tvix/nix-compat/benches/narinfo_parse.rs
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2024-10-13T10·19+0300
committerclbot <clbot@tvl.fyi>2024-10-13T14·31+0000
commit5faf7c9d7b5fcf8fb2795b5879aece45d7c62b21 (patch)
tree4ccc1959a7ee0047f4724ccd0ff7e60a7b166c9c /tvix/nix-compat/benches/narinfo_parse.rs
parentcb032b250e7b46ebc28038c8efb48f6a9c0ac75b (diff)
refactor(tvix/nix-compat): remove use of lazy_static r/8802
This is now supported in the standard library via std::sync::LazyLock, but
requires some manual shuffling around of code.

I found at least one dead variable along the way, which I deleted.

Change-Id: I8600c87c49078fb5ff72671994c77b919259e67b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12608
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Diffstat (limited to 'tvix/nix-compat/benches/narinfo_parse.rs')
-rw-r--r--tvix/nix-compat/benches/narinfo_parse.rs27
1 files changed, 13 insertions, 14 deletions
diff --git a/tvix/nix-compat/benches/narinfo_parse.rs b/tvix/nix-compat/benches/narinfo_parse.rs
index f35ba8468a88..ee2665a310d3 100644
--- a/tvix/nix-compat/benches/narinfo_parse.rs
+++ b/tvix/nix-compat/benches/narinfo_parse.rs
@@ -1,8 +1,9 @@
+use std::sync::LazyLock;
+use std::{io, str};
+
 use criterion::{black_box, criterion_group, criterion_main, Criterion, Throughput};
-use lazy_static::lazy_static;
 use mimalloc::MiMalloc;
 use nix_compat::narinfo::NarInfo;
-use std::{io, str};
 
 #[global_allocator]
 static GLOBAL: MiMalloc = MiMalloc;
@@ -19,18 +20,16 @@ Deriver: 2ch8jx910qk6721mp4yqsmvdfgj5c8ir-banking-0.3.0.drv
 Sig: cache.nixos.org-1:xcL67rBZPcdVZudDLpLeddkBa0KaFTw5A0udnaa0axysjrQ6Nvd9p3BLZ4rhKgl52/cKiU3c6aq60L8+IcE5Dw==
 "#;
 
-lazy_static! {
-    static ref CASES: &'static [&'static str] = {
-        let data =
-            zstd::decode_all(io::Cursor::new(include_bytes!("../testdata/narinfo.zst"))).unwrap();
-        let data = str::from_utf8(Vec::leak(data)).unwrap();
-        Vec::leak(
-            data.split_inclusive("\n\n")
-                .map(|s| s.strip_suffix('\n').unwrap())
-                .collect::<Vec<_>>(),
-        )
-    };
-}
+static CASES: LazyLock<&'static [&'static str]> = LazyLock::new(|| {
+    let data =
+        zstd::decode_all(io::Cursor::new(include_bytes!("../testdata/narinfo.zst"))).unwrap();
+    let data = str::from_utf8(Vec::leak(data)).unwrap();
+    Vec::leak(
+        data.split_inclusive("\n\n")
+            .map(|s| s.strip_suffix('\n').unwrap())
+            .collect::<Vec<_>>(),
+    )
+});
 
 pub fn parse(c: &mut Criterion) {
     let mut g = c.benchmark_group("parse");