use std::path::PathBuf; use crate::types::*; use async_trait::async_trait; type Result = std::result::Result; #[async_trait] pub trait AccessManagement { async fn request_new_permissions( &self, name: &str, permissions: &[HydrusPermissions], ) -> Result; async fn get_session_key(&self) -> Result; async fn verify_access_key(&self, key: &str) -> Result; async fn get_service_name(&self, name: &str) -> Result; async fn get_service_key(&self, key: &str) -> Result; async fn get_services(&self) -> Result>; } #[async_trait] pub trait ImportingAndDeletingFiles { async fn add_file_via_path( &self, path: &str, delete: Option, domains: Option, ) -> Result; async fn add_file_via_file(&self, file: PathBuf) -> Result; }