use async_trait::async_trait;
use enum_dispatch::enum_dispatch;
use reqwest::Url;
use crate::{
enums::{content::Content, dispatchers::RequesterDispatcher},
requesters::{chrome::ChromeBrowser, client::HTTPClient},
types::{config::requester::RequesterConfig, core::Result},
};
#[async_trait]
#[enum_dispatch]
pub trait RequesterInterface: Sync + Send {
async fn config(&mut self) -> &mut RequesterConfig;
async fn configure(&mut self, config: RequesterConfig);
async fn get_content(&self, url: Url) -> Result<Content>;
}