use async_trait::async_trait;
use crate::error::CoreError;
use crate::models::CandidatePaper;
#[async_trait]
pub trait SourceAdapter: Send + Sync {
fn name(&self) -> &str;
async fn search(
&self,
query: &str,
max_results: usize,
) -> Result<Vec<CandidatePaper>, CoreError>;
}