langchain_rust/schemas/
retrievers.rs

1use std::error::Error;
2
3use async_trait::async_trait;
4
5use super::Document;
6
7#[async_trait]
8pub trait Retriever: Sync + Send {
9    async fn get_relevant_documents(&self, query: &str) -> Result<Vec<Document>, Box<dyn Error>>;
10}
11
12impl<R> From<R> for Box<dyn Retriever>
13where
14    R: Retriever + 'static,
15{
16    fn from(retriever: R) -> Self {
17        Box::new(retriever)
18    }
19}