mod html;
mod office;
mod pdf;
mod source;
mod text;
use std::io::{Read, Seek};
use super::*;
pub trait Loader: Send + Sync {
fn load(self) -> LoaderResult<Vec<Document>>;
fn load_and_split<TS: TextSplitter + 'static>(self, splitter: TS) -> LoaderResult<Vec<Document>>
where
Self: Sized,
{
let docs = self.load()?;
Ok(splitter.split_documents(&docs)?)
}
}
pub use html::HtmlLoader;
pub use office::OfficeLoader;
pub use pdf::PdfExtractLoader;
pub use source::{LanguageParserOptions, SourceCodeLoader, get_language_by_filename};
pub use text::TextLoader;
pub use url::Url;