langchain_rs 0.0.2

Rust version of Langchain
Documentation
use crate::utils::split_by_token;
use crate::utils::TokenizerModel;

#[derive(Debug, Clone, Eq, PartialEq)]
pub struct Document {
    pub path: String,
    pub content: String,
}

impl Document {
    pub fn new(path: &str, content: &str) -> Self {
        Document {
            path: path.to_string(),
            content: content.to_string(),
        }
    }

    pub fn content_md5(&self) -> String {
        format!("{:x}", md5::compute(self.content.clone()))
    }

    pub fn tokens(&self, model: Option<TokenizerModel>) -> usize {
        split_by_token(&self.content, model).unwrap().len()
    }

    pub fn size(&self) -> usize {
        self.content.len()
    }
}