Skip to main content

CredentialStore

Trait CredentialStore 

Source
pub trait CredentialStore: Send + Sync {
    // Required methods
    fn check_available(
        &self,
        target: &CredentialTarget,
    ) -> Result<(), CredentialError>;
    fn exists(&self, target: &CredentialTarget) -> Result<bool, CredentialError>;
    fn load(
        &self,
        target: &CredentialTarget,
    ) -> Result<Option<CredentialRecord>, CredentialError>;
    fn create(
        &self,
        target: &CredentialTarget,
        record: &CredentialRecord,
    ) -> Result<CredentialCreateOutcome, CredentialError>;
    fn delete(&self, target: &CredentialTarget) -> Result<bool, CredentialError>;
    fn delete_if_matches(
        &self,
        target: &CredentialTarget,
        expected: &CredentialRecord,
    ) -> Result<CredentialDeleteOutcome, CredentialError>;

    // Provided method
    fn lock_mutation(
        &self,
        target: &CredentialTarget,
    ) -> Result<Box<dyn CredentialMutation + Send + '_>, CredentialError> { ... }
}

Required Methods§

Source

fn check_available( &self, target: &CredentialTarget, ) -> Result<(), CredentialError>

Source

fn exists(&self, target: &CredentialTarget) -> Result<bool, CredentialError>

Checks whether any native-vault entry exists without decoding it.

Source

fn load( &self, target: &CredentialTarget, ) -> Result<Option<CredentialRecord>, CredentialError>

Source

fn create( &self, target: &CredentialTarget, record: &CredentialRecord, ) -> Result<CredentialCreateOutcome, CredentialError>

Source

fn delete(&self, target: &CredentialTarget) -> Result<bool, CredentialError>

Source

fn delete_if_matches( &self, target: &CredentialTarget, expected: &CredentialRecord, ) -> Result<CredentialDeleteOutcome, CredentialError>

Deletes only the expected record. Implementations must serialize this comparison and deletion with credential saves for the same account.

Provided Methods§

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§