baseid_wallet_core/
holder.rs

1//! Credential holder (storage) operations.
2
3use crate::AnyCredential;
4use baseid_core::types::CredentialId;
5
6/// Trait for wallet credential storage.
7#[allow(async_fn_in_trait)]
8pub trait WalletStore: Send + Sync {
9    /// Store a credential.
10    async fn store_credential(&self, cred: AnyCredential) -> baseid_core::Result<CredentialId>;
11
12    /// Retrieve a credential by ID.
13    async fn get_credential(&self, id: &CredentialId) -> baseid_core::Result<AnyCredential>;
14
15    /// List credentials matching a filter.
16    async fn list_credentials(
17        &self,
18        filter: crate::CredentialFilter,
19    ) -> baseid_core::Result<Vec<baseid_core::credential::CredentialSummary>>;
20
21    /// Delete a credential.
22    async fn delete_credential(&self, id: &CredentialId) -> baseid_core::Result<()>;
23}