Skip to main content

Credential

Struct Credential 

Source
pub struct Credential { /* private fields */ }
Expand description

A single stored login credential.

Holds a human-readable name for the credential (e.g. the service it belongs to), a username, a password, and an optional url for the associated login page.

§Security

Credential derives Debug, which will print password in plaintext. Avoid logging Credential values directly (e.g. via {:?}) in contexts where logs may be persisted or exposed.

§Examples

use armoire::Credential;

let credential = Credential::builder()
    .name("Example Site".to_string())
    .username("alice".to_string())
    .password("hunter2".to_string())
    .url("https://example.com".to_string())
    .build()
    .expect("all required fields are set");

assert_eq!(credential.name(), "Example Site");
assert_eq!(credential.url(), Some("https://example.com"));

Implementations§

Source§

impl Credential

Source

pub fn new<N: Into<String>, U: Into<String>, P: Into<String>>( name: N, username: U, password: P, url: Option<String>, ) -> Self

Creates a new Credential with the given name, username, password, and optional url.

Prefer Credential::builder when constructing credentials at call sites where named fields read better than positional arguments.

§Examples
use armoire::Credential;

let credential = Credential::new(
    "Example Site",
    "alice",
    "hunter2",
    None,
);
Source

pub fn builder() -> CredentialBuilder

Creates a CredentialBuilder for constructing a Credential with named fields.

§Examples
use armoire::Credential;

let credential = Credential::builder()
    .name("Example Site".to_string())
    .username("alice".to_string())
    .password("hunter2".to_string())
    .build()
    .expect("all required fields are set");

assert_eq!(credential.name(), "Example Site");
assert_eq!(credential.url(), None);
Source

pub fn name(&self) -> &str

Returns the credential’s name.

Source

pub fn set_name<T: Into<String>>(&mut self, name: T) -> &mut Self

Sets the credential’s name.

Returns &mut Self to allow chaining multiple setters:

use armoire::Credential;

let mut credential = Credential::new(
    "Old Name".to_string(),
    "alice".to_string(),
    "hunter2".to_string(),
    None,
);

credential.set_name("New Name".to_string()).set_username("bob".to_string());

assert_eq!(credential.name(), "New Name");
assert_eq!(credential.username(), "bob");
Source

pub fn username(&self) -> &str

Returns the credential’s username.

Source

pub fn set_username<T: Into<String>>(&mut self, username: T) -> &mut Self

Sets the credential’s username.

Returns &mut Self to allow chaining multiple setters (see Credential::set_name for an example).

Source

pub fn password(&self) -> &str

Returns the credential’s password.

§Security

The returned string is the plaintext password. Callers should avoid printing, logging, or otherwise persisting the returned value outside of its intended use.

Source

pub fn set_password<T: Into<String>>(&mut self, password: T) -> &mut Self

Sets the credential’s password.

Returns &mut Self to allow chaining multiple setters (see Credential::set_name for an example).

Source

pub fn url(&self) -> Option<&str>

Returns the credential’s associated URL, if one is set.

Source

pub fn set_url<T: Into<String>>(&mut self, url: Option<T>) -> &mut Self

Sets (or clears, via None) the credential’s associated URL.

Returns &mut Self to allow chaining multiple setters (see Credential::set_name for an example).

Trait Implementations§

Source§

impl Clone for Credential

Source§

fn clone(&self) -> Credential

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Credential

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Credential

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for Credential

Source§

impl PartialEq for Credential

Source§

fn eq(&self, other: &Credential) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for Credential

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Credential

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.