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§
fn check_available( &self, target: &CredentialTarget, ) -> Result<(), CredentialError>
Sourcefn exists(&self, target: &CredentialTarget) -> Result<bool, CredentialError>
fn exists(&self, target: &CredentialTarget) -> Result<bool, CredentialError>
Checks whether any native-vault entry exists without decoding it.
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>
Sourcefn delete_if_matches(
&self,
target: &CredentialTarget,
expected: &CredentialRecord,
) -> Result<CredentialDeleteOutcome, CredentialError>
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§
fn lock_mutation( &self, target: &CredentialTarget, ) -> Result<Box<dyn CredentialMutation + Send + '_>, CredentialError>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".