Skip to content

Commit efb972a

Browse files
committed
refactor some uses of Secret to avoid generating a token first before wrapping in Secret
1 parent a32cef9 commit efb972a

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

src/cargo/ops/registry.rs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -834,19 +834,23 @@ pub fn registry_login(
834834
if generate_keypair {
835835
assert!(!secret_key_required);
836836
let kp = AsymmetricKeyPair::<pasetors::version3::V3>::generate().unwrap();
837-
let mut key = String::new();
838-
FormatAsPaserk::fmt(&kp.secret, &mut key).unwrap();
839-
secret_key = Secret::from(key);
837+
secret_key = Secret::default().map(|mut key| {
838+
FormatAsPaserk::fmt(&kp.secret, &mut key).unwrap();
839+
key
840+
});
840841
} else if secret_key_required {
841842
assert!(!generate_keypair);
842843
drop_println!(config, "please paste the API secret key below");
843-
let mut line = String::new();
844-
let input = io::stdin();
845-
input
846-
.lock()
847-
.read_line(&mut line)
848-
.with_context(|| "failed to read stdin")?;
849-
secret_key = Secret::from(line.trim().to_string());
844+
secret_key = Secret::default()
845+
.map(|mut line| {
846+
let input = io::stdin();
847+
input
848+
.lock()
849+
.read_line(&mut line)
850+
.with_context(|| "failed to read stdin")
851+
.map(|_| line.trim().to_string())
852+
})
853+
.transpose()?;
850854
} else {
851855
secret_key = old_secret_key
852856
.cloned()

src/cargo/util/auth.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ use super::config::CredentialCacheValue;
3434
/// ```
3535
///
3636
/// Currently, we write a borrowed `Secret<T>` as `Secret<&T>`.
37-
/// The [`as_deref`](Secret::as_deref) and [`owned`](Secret::owned) methods can
37+
/// The [`as_deref`](Secret::as_deref) and [`owned`](Secret::owned) methods can
3838
/// be used to convert back and forth between `Secret<String>` and `Secret<&str>`.
39-
#[derive(Clone, PartialEq, Eq)]
39+
#[derive(Default, Clone, PartialEq, Eq)]
4040
pub struct Secret<T> {
4141
inner: T,
4242
}

0 commit comments

Comments
 (0)