Skip to main content

oxirs_vec/embeddings/
sentencetransformergenerator_traits.rs

1//! # SentenceTransformerGenerator - Trait Implementations
2//!
3//! This module contains trait implementations for `SentenceTransformerGenerator`.
4//!
5//! ## Implemented Traits
6//!
7//! - `EmbeddingGenerator`
8//! - `AsAny`
9//!
10//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)
11
12use crate::Vector;
13use anyhow::Result;
14
15use super::functions::{AsAny, EmbeddingGenerator};
16use super::sentencetransformergenerator_type::SentenceTransformerGenerator;
17use super::types::{EmbeddableContent, EmbeddingConfig};
18
19impl EmbeddingGenerator for SentenceTransformerGenerator {
20    fn generate(&self, content: &EmbeddableContent) -> Result<Vector> {
21        let text = content.to_text();
22        self.generate_with_model(&text)
23    }
24    fn dimensions(&self) -> usize {
25        self.config.dimensions
26    }
27    fn config(&self) -> &EmbeddingConfig {
28        &self.config
29    }
30}
31
32impl AsAny for SentenceTransformerGenerator {
33    fn as_any(&self) -> &dyn std::any::Any {
34        self
35    }
36    fn as_any_mut(&mut self) -> &mut dyn std::any::Any {
37        self
38    }
39}