diff options
| author | jakka <jakka@jakka.su> | 2025-09-17 21:41:59 +0300 |
|---|---|---|
| committer | jakka <jakka@jakka.su> | 2025-09-17 21:41:59 +0300 |
| commit | 5187775550dee2a2719339564c778df64a8538eb (patch) | |
| tree | ac6f73974ad19ebe9734223c9edd868d1d7b03f1 /src/traits.rs | |
| parent | a5f74e05d49ad938c3f0854dc9b1d203a570a8d9 (diff) | |
separated client functions into different traits - trait per section in api documentation
Diffstat (limited to 'src/traits.rs')
| -rw-r--r-- | src/traits.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/traits.rs b/src/traits.rs new file mode 100644 index 0000000..3855c50 --- /dev/null +++ b/src/traits.rs @@ -0,0 +1,37 @@ +use std::path::PathBuf; + +use crate::types::*; +use async_trait::async_trait; + +type Result<T> = std::result::Result<T, HydrusError>; + +#[async_trait] +pub trait AccessManagement { + async fn request_new_permissions( + &self, + name: &str, + permissions: &[HydrusPermissions], + ) -> Result<String>; + + async fn get_session_key(&self) -> Result<String>; + + async fn verify_access_key(&self, key: &str) -> Result<KeyInfo>; + + async fn get_service_name(&self, name: &str) -> Result<Service>; + + async fn get_service_key(&self, key: &str) -> Result<Service>; + + async fn get_services(&self) -> Result<Vec<Service>>; +} + +#[async_trait] +pub trait ImportingAndDeletingFiles { + async fn add_file_via_path( + &self, + path: &str, + delete: Option<bool>, + domains: Option<FileDomain>, + ) -> Result<FileAddResponse>; + + async fn add_file_via_file(&self, file: PathBuf) -> Result<FileAddResponse>; +} |
