webclaw/crates/noxa-rag/src/store/qdrant.rs
Jacob Magar 62554b8f12 feat(noxa-68r.1): crate scaffold, traits, and core types
- Bootstrap crates/noxa-rag with lib+binary layout
- EmbedProvider trait (1 method: embed)
- VectorStore trait (4 methods: upsert, delete_by_url, search, name)
- RagError enum (#[non_exhaustive], thiserror, From impls)
- Types: Chunk, Point, PointPayload, SearchResult
- Config: RagConfig with serde tagged enums for all providers
- load_config() with embed_concurrency > 0 validation
- Tokenizer Sync compile-time assertion in lib.rs
- Stub implementations for all modules (noxa-68r.2-.8)
2026-04-12 07:13:19 -04:00

30 lines
929 B
Rust

// QdrantStore — implemented in noxa-68r.4
use async_trait::async_trait;
use crate::error::RagError;
use crate::store::VectorStore;
use crate::types::{Point, SearchResult};
pub struct QdrantStore {
pub(crate) client: qdrant_client::Qdrant,
pub(crate) collection: String,
}
#[async_trait]
impl VectorStore for QdrantStore {
async fn upsert(&self, _points: Vec<Point>) -> Result<(), RagError> {
// Full implementation in noxa-68r.4
Err(RagError::Store("QdrantStore not yet implemented".to_string()))
}
async fn delete_by_url(&self, _url: &str) -> Result<(), RagError> {
Err(RagError::Store("QdrantStore not yet implemented".to_string()))
}
async fn search(&self, _vector: &[f32], _limit: usize) -> Result<Vec<SearchResult>, RagError> {
Err(RagError::Store("QdrantStore not yet implemented".to_string()))
}
fn name(&self) -> &str {
"qdrant"
}
}