summaryrefslogtreecommitdiff
path: root/src/traits.rs
diff options
context:
space:
mode:
authorjakka <jakka@jakka.su>2025-09-17 21:41:59 +0300
committerjakka <jakka@jakka.su>2025-09-17 21:41:59 +0300
commit5187775550dee2a2719339564c778df64a8538eb (patch)
treeac6f73974ad19ebe9734223c9edd868d1d7b03f1 /src/traits.rs
parenta5f74e05d49ad938c3f0854dc9b1d203a570a8d9 (diff)
separated client functions into different traits - trait per section in api documentation
Diffstat (limited to 'src/traits.rs')
-rw-r--r--src/traits.rs37
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>;
+}