use async_trait::async_trait;
use reqwest::{Client, Url};
use crate::tool::ToolError;
use super::types::{WebFetchResult, WebSearchResult};
#[async_trait]
pub trait WebSearchBackend: Send + Sync {
async fn search(
&self,
client: &Client,
query: &str,
limit: usize,
) -> Result<Vec<WebSearchResult>, ToolError>;
}
#[async_trait]
pub trait WebFetchBackend: Send + Sync {
async fn fetch(&self, client: &Client, url: &Url) -> Result<WebFetchResult, ToolError>;
}