From 9937846569812dc6c722ee32b752e0881eba3b89 Mon Sep 17 00:00:00 2001 From: Russell Banks <74878137+russellbanks@users.noreply.github.com> Date: Mon, 1 Jan 2024 19:36:49 +0000 Subject: [PATCH 1/3] Replace lazy_static with OnceLock --- Cargo.toml | 4 ---- src/lib.rs | 12 +++++------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 13abad5..0754065 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,10 +28,6 @@ linux-secret-service-rt-tokio-crypto-openssl = ["secret-service/rt-tokio-crypto- linux-no-secret-service = ["linux-default-keyutils"] linux-default-keyutils = ["linux-keyutils"] - -[dependencies] -lazy_static = "1" - [target.'cfg(target_os = "macos")'.dependencies] security-framework = { version = "2.6", optional = true } diff --git a/src/lib.rs b/src/lib.rs index 4646d83..d2c401f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -216,16 +216,14 @@ pub fn set_default_credential_builder(new: Box) { } fn build_default_credential(target: Option<&str>, service: &str, user: &str) -> Result { - lazy_static::lazy_static! { - static ref DEFAULT: Box = default::default_credential_builder(); - } + static DEFAULT: std::sync::OnceLock> = std::sync::OnceLock::new(); let guard = DEFAULT_BUILDER .read() .expect("Poisoned RwLock in keyring-rs: please report a bug!"); - let builder = match guard.inner.as_ref() { - Some(builder) => builder, - None => &DEFAULT, - }; + let builder = guard + .inner + .as_ref() + .unwrap_or_else(|| DEFAULT.get_or_init(|| default::default_credential_builder())); let credential = builder.build(target, service, user)?; Ok(Entry { inner: credential }) } From 955a6fee93d059efca0d8b56a6111456106ca5d6 Mon Sep 17 00:00:00 2001 From: Russell Banks <74878137+russellbanks@users.noreply.github.com> Date: Tue, 2 Jan 2024 13:40:27 +0000 Subject: [PATCH 2/3] Use once_cell to maintain current MSRV --- Cargo.toml | 3 +++ src/lib.rs | 8 +++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 0754065..e77396e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,6 +28,9 @@ linux-secret-service-rt-tokio-crypto-openssl = ["secret-service/rt-tokio-crypto- linux-no-secret-service = ["linux-default-keyutils"] linux-default-keyutils = ["linux-keyutils"] +[dependencies] +once_cell = "1" + [target.'cfg(target_os = "macos")'.dependencies] security-framework = { version = "2.6", optional = true } diff --git a/src/lib.rs b/src/lib.rs index d2c401f..2aec0bd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -216,14 +216,12 @@ pub fn set_default_credential_builder(new: Box) { } fn build_default_credential(target: Option<&str>, service: &str, user: &str) -> Result { - static DEFAULT: std::sync::OnceLock> = std::sync::OnceLock::new(); + static DEFAULT: once_cell::sync::Lazy> = + once_cell::sync::Lazy::new(|| default::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::default_credential_builder())); + let builder = guard.inner.as_ref().unwrap_or_else(|| &DEFAULT); let credential = builder.build(target, service, user)?; Ok(Entry { inner: credential }) } From 0f82388eae3bedf3b3f212e4586637ac0dabaf32 Mon Sep 17 00:00:00 2001 From: Russell Banks <74878137+russellbanks@users.noreply.github.com> Date: Tue, 2 Jan 2024 20:44:04 +0000 Subject: [PATCH 3/3] Revert "Use once_cell to maintain current MSRV" This reverts commit 955a6fee93d059efca0d8b56a6111456106ca5d6. --- Cargo.toml | 3 --- src/lib.rs | 8 +++++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index e77396e..0754065 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,9 +28,6 @@ linux-secret-service-rt-tokio-crypto-openssl = ["secret-service/rt-tokio-crypto- linux-no-secret-service = ["linux-default-keyutils"] linux-default-keyutils = ["linux-keyutils"] -[dependencies] -once_cell = "1" - [target.'cfg(target_os = "macos")'.dependencies] security-framework = { version = "2.6", optional = true } diff --git a/src/lib.rs b/src/lib.rs index 2aec0bd..d2c401f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -216,12 +216,14 @@ pub fn set_default_credential_builder(new: Box) { } fn build_default_credential(target: Option<&str>, service: &str, user: &str) -> Result { - static DEFAULT: once_cell::sync::Lazy> = - once_cell::sync::Lazy::new(|| default::default_credential_builder()); + static DEFAULT: std::sync::OnceLock> = std::sync::OnceLock::new(); 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.get_or_init(|| default::default_credential_builder())); let credential = builder.build(target, service, user)?; Ok(Entry { inner: credential }) }