auth.rs

 1use futures::future::BoxFuture;
 2use gpui::AppContext;
 3
 4#[derive(Clone, Debug)]
 5pub enum ProviderCredential {
 6    Credentials { api_key: String },
 7    NoCredentials,
 8    NotNeeded,
 9}
10
11pub trait CredentialProvider: Send + Sync {
12    fn has_credentials(&self) -> bool;
13    #[must_use]
14    fn retrieve_credentials(&self, cx: &mut AppContext) -> BoxFuture<ProviderCredential>;
15    #[must_use]
16    fn save_credentials(
17        &self,
18        cx: &mut AppContext,
19        credential: ProviderCredential,
20    ) -> BoxFuture<()>;
21    #[must_use]
22    fn delete_credentials(&self, cx: &mut AppContext) -> BoxFuture<()>;
23}