use crate::prelude::*;
#[async_trait]
pub trait GazelleClientTrait: Send + Sync {
async fn browse(&self, request: &BrowseRequest) -> Result<BrowseResponse, GazelleError>;
async fn get_torrent(&self, id: u32) -> Result<TorrentResponse, GazelleError>;
async fn get_torrent_group(&self, id: u32) -> Result<GroupResponse, GazelleError>;
async fn get_user(&self, id: u32) -> Result<User, GazelleError>;
async fn download_torrent(&self, id: u32) -> Result<Vec<u8>, GazelleError>;
async fn upload_torrent(&self, upload: UploadForm) -> Result<UploadResponse, GazelleError>;
}