#![allow(dead_code)]
use serde_json::Value;
use tempfile::TempDir;
use velesdb_memory::{HashEmbedder, MemoryService, Metadata};
pub const DIM: usize = 384;
pub fn service() -> (TempDir, MemoryService<HashEmbedder>) {
let dir = TempDir::new().expect("create tempdir");
let svc = MemoryService::open(dir.path(), HashEmbedder::new(DIM)).expect("open memory store");
(dir, svc)
}
pub fn meta(pairs: &[(&str, Value)]) -> Metadata {
pairs
.iter()
.map(|(k, v)| ((*k).to_owned(), v.clone()))
.collect()
}
pub struct SharedTopicExtractor;
impl velesdb_memory::extract::Extractor for SharedTopicExtractor {
fn extract(
&self,
_text: &str,
) -> Result<Vec<velesdb_memory::extract::ExtractedFact>, velesdb_memory::extract::ExtractError>
{
Ok(vec![
velesdb_memory::extract::ExtractedFact {
text: "Alice ships the parser in Rust.".to_string(),
entities: vec!["rust".to_string(), "parser".to_string()],
},
velesdb_memory::extract::ExtractedFact {
text: "Bob maintains the Rust toolchain.".to_string(),
entities: vec!["rust".to_string()],
},
])
}
}