useasync_trait::async_trait;usecrate::domain::paper::Paper;usecrate::error::Result;#[async_trait]pubtraitPaperSource: Send + Sync {/// Fetch papers matching a query from an external source.
async fnfetch_papers(&self, query:&str, limit:usize)->Result<Vec<Paper>>;/// Human-readable name of this source.
fnname(&self)->&str;}