useasync_trait::async_trait;usestd::error::Error;#[cfg(feature ="aws")]pubmodaws;#[cfg(feature ="azure")]pubmodazure;#[cfg(feature ="gcp")]pubmodgoogle;#[cfg(feature ="hsm")]pubmodhsm;#[cfg(feature ="vault")]pubmodvault;/// A trait for a generic secret store.
////// This trait defines a common interface for interacting with different secret
/// management systems, such as HashiCorp Vault, AWS Secrets Manager, etc.
#[async_trait]pubtraitSecretStore{/// Retrieves a secret from the store.
////// # Arguments
////// * `key` - The identifier for the secret to retrieve.
async fnget_secret(&self, key:&str)->Result<String, Box<dyn Error +Send+Sync>>;/// Stores a secret in the store.
////// # Arguments
////// * `key` - The identifier for the secret to store.
/// * `value` - The secret value to store.
async fnset_secret(&self, key:&str, value:&str)->Result<(), Box<dyn Error +Send+Sync>>;}