mod magnetease;
pub mod providers;
use async_trait::async_trait;
pub use magnetease::Magnetease;
use reqwest::Client;
use thiserror::Error;
#[derive(Clone, Debug)]
pub struct Magnet {
pub title: String,
pub url: String,
pub seeders: u32,
pub bytes: u64,
}
#[derive(Error, Debug)]
pub enum MagneteaseError {
#[error(transparent)]
ConnectionError(#[from] reqwest::Error),
}
#[async_trait]
pub trait Provider {
async fn search(&self, client: &Client, query: &str) -> Result<Vec<Magnet>, MagneteaseError>;
}