1use std::fmt;
4
5#[derive(Clone)]
10pub struct Credentials {
11 api_key: String,
12 secret_key: String,
13 passphrase: String,
14}
15
16impl Credentials {
17 pub fn new(
19 api_key: impl Into<String>,
20 secret_key: impl Into<String>,
21 passphrase: impl Into<String>,
22 ) -> Self {
23 Self {
24 api_key: api_key.into(),
25 secret_key: secret_key.into(),
26 passphrase: passphrase.into(),
27 }
28 }
29
30 pub(crate) fn api_key(&self) -> &str {
31 &self.api_key
32 }
33
34 pub(crate) fn secret_key(&self) -> &str {
35 &self.secret_key
36 }
37
38 pub(crate) fn passphrase(&self) -> &str {
39 &self.passphrase
40 }
41}
42
43impl fmt::Debug for Credentials {
44 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
45 f.debug_struct("Credentials")
46 .field("api_key", &self.api_key)
47 .field("secret_key", &"<redacted>")
48 .field("passphrase", &"<redacted>")
49 .finish()
50 }
51}