From 67fd47e46f918cbd881a084670a9dd48e061b184 Mon Sep 17 00:00:00 2001 From: Russell Banks <74878137+russellbanks@users.noreply.github.com> Date: Mon, 21 Apr 2025 11:04:29 +0100 Subject: [PATCH 1/2] Replace `OnceLock` with `LazyLock` --- src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 082dd37..063336a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -253,14 +253,14 @@ pub fn default_credential_builder() -> Box { } fn build_default_credential(target: Option<&str>, service: &str, user: &str) -> Result { - static DEFAULT: std::sync::OnceLock> = std::sync::OnceLock::new(); + static DEFAULT: std::sync::LazyLock> = std::sync::LazyLock::new(default_credential_builder); let guard = DEFAULT_BUILDER .read() .expect("Poisoned RwLock in keyring-rs: please report a bug!"); let builder = guard .inner .as_ref() - .unwrap_or_else(|| DEFAULT.get_or_init(|| default_credential_builder())); + .unwrap_or_else(|| &DEFAULT); let credential = builder.build(target, service, user)?; Ok(Entry { inner: credential }) } From 5a4d5b99cc068732bcff63a44a4aaeae5f6d9166 Mon Sep 17 00:00:00 2001 From: Russell Banks <74878137+russellbanks@users.noreply.github.com> Date: Mon, 21 Apr 2025 11:19:29 +0100 Subject: [PATCH 2/2] `cargo fmt` --- src/lib.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 063336a..7d92f1d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -253,14 +253,12 @@ pub fn default_credential_builder() -> Box { } fn build_default_credential(target: Option<&str>, service: &str, user: &str) -> Result { - static DEFAULT: std::sync::LazyLock> = std::sync::LazyLock::new(default_credential_builder); + static DEFAULT: std::sync::LazyLock> = + std::sync::LazyLock::new(default_credential_builder); let guard = DEFAULT_BUILDER .read() .expect("Poisoned RwLock in keyring-rs: please report a bug!"); - let builder = guard - .inner - .as_ref() - .unwrap_or_else(|| &DEFAULT); + let builder = guard.inner.as_ref().unwrap_or_else(|| &DEFAULT); let credential = builder.build(target, service, user)?; Ok(Entry { inner: credential }) }