Skip to main content

synaptic_loaders/
text_loader.rs

1use crate::Document;
2use async_trait::async_trait;
3use synaptic_core::SynapticError;
4
5use crate::Loader;
6
7/// Wraps a string of text into a single Document.
8#[derive(Debug, Clone)]
9pub struct TextLoader {
10    id: String,
11    content: String,
12}
13
14impl TextLoader {
15    pub fn new(id: impl Into<String>, content: impl Into<String>) -> Self {
16        Self {
17            id: id.into(),
18            content: content.into(),
19        }
20    }
21}
22
23#[async_trait]
24impl Loader for TextLoader {
25    async fn load(&self) -> Result<Vec<Document>, SynapticError> {
26        Ok(vec![Document::new(self.id.clone(), self.content.clone())])
27    }
28}