2023-11-02 17:55:02 +00:00
|
|
|
use gpui::AppContext;
|
2023-10-30 18:40:31 +00:00
|
|
|
|
|
|
|
#[derive(Clone, Debug)]
|
|
|
|
pub enum ProviderCredential {
|
|
|
|
Credentials { api_key: String },
|
|
|
|
NoCredentials,
|
|
|
|
NotNeeded,
|
|
|
|
}
|
|
|
|
|
2023-12-05 14:38:36 +00:00
|
|
|
pub trait CredentialProvider: Send + Sync {
|
2023-10-30 18:40:31 +00:00
|
|
|
fn has_credentials(&self) -> bool;
|
2023-11-01 18:59:49 +00:00
|
|
|
fn retrieve_credentials(&self, cx: &mut AppContext) -> ProviderCredential;
|
|
|
|
fn save_credentials(&self, cx: &mut AppContext, credential: ProviderCredential);
|
|
|
|
fn delete_credentials(&self, cx: &mut AppContext);
|
2023-10-30 18:40:31 +00:00
|
|
|
}
|