subcog/embedding/fallback.rs
1//! Fallback embedder (BM25-only mode).
2
3use super::Embedder;
4use crate::Result;
5
6/// Fallback embedder that returns empty vectors.
7///
8/// Used when embedding is not available, falling back to BM25-only search.
9pub struct FallbackEmbedder;
10
11impl FallbackEmbedder {
12 /// Creates a new fallback embedder.
13 #[must_use]
14 pub const fn new() -> Self {
15 Self
16 }
17}
18
19impl Default for FallbackEmbedder {
20 fn default() -> Self {
21 Self::new()
22 }
23}
24
25impl Embedder for FallbackEmbedder {
26 fn dimensions(&self) -> usize {
27 0
28 }
29
30 fn embed(&self, _text: &str) -> Result<Vec<f32>> {
31 Ok(Vec::new())
32 }
33}