auth.rs

 1use async_trait::async_trait;
 2use gpui2::AppContext;
 3
 4#[derive(Clone, Debug)]
 5pub enum ProviderCredential {
 6    Credentials { api_key: String },
 7    NoCredentials,
 8    NotNeeded,
 9}
10
11#[async_trait]
12pub trait CredentialProvider: Send + Sync {
13    fn has_credentials(&self) -> bool;
14    async fn retrieve_credentials(&self, cx: &mut AppContext) -> ProviderCredential;
15    async fn save_credentials(&self, cx: &mut AppContext, credential: ProviderCredential);
16    async fn delete_credentials(&self, cx: &mut AppContext);
17}