pub struct SecretString(/* private fields */);Expand description
A secure string that is automatically zeroed when dropped.
Use this for API keys, secrets, passwords, and other sensitive data. The underlying memory is securely cleared when the value is dropped, preventing credential leakage through memory inspection.
§Security Features
- Memory is zeroed on drop using the
zeroizecrate - Debug and Display implementations are redacted to prevent accidental logging
- Clone creates a new zeroed copy (original remains secure)
§Example
use ccxt_core::credentials::SecretString;
let secret = SecretString::new("my-secret-key");
// Use expose_secret() to access the value
assert_eq!(secret.expose_secret(), "my-secret-key");
// Debug output is safe
println!("{:?}", secret); // Prints: [REDACTED]Implementations§
Source§impl SecretString
impl SecretString
Sourcepub fn expose_secret(&self) -> &str
pub fn expose_secret(&self) -> &str
Returns the secret value.
§Security
Avoid storing the returned reference longer than necessary. The reference should be used immediately and not persisted.
§Example
use ccxt_core::credentials::SecretString;
let secret = SecretString::new("my-key");
let value = secret.expose_secret();
// Use value immediately, don't store itSourcepub fn expose_secret_bytes(&self) -> &[u8] ⓘ
pub fn expose_secret_bytes(&self) -> &[u8] ⓘ
Trait Implementations§
Source§impl Clone for SecretString
impl Clone for SecretString
Source§fn clone(&self) -> SecretString
fn clone(&self) -> SecretString
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SecretString
impl Debug for SecretString
Source§impl Display for SecretString
impl Display for SecretString
Source§impl Drop for SecretString
impl Drop for SecretString
Source§impl From<&str> for SecretString
impl From<&str> for SecretString
Source§impl From<String> for SecretString
impl From<String> for SecretString
Source§impl PartialEq for SecretString
impl PartialEq for SecretString
Source§impl Zeroize for SecretString
impl Zeroize for SecretString
impl Eq for SecretString
impl StructuralPartialEq for SecretString
Auto Trait Implementations§
impl Freeze for SecretString
impl RefUnwindSafe for SecretString
impl Send for SecretString
impl Sync for SecretString
impl Unpin for SecretString
impl UnwindSafe for SecretString
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.