vectrust_storage/
backend.rs1use std::path::Path;
2use vectrust_core::*;
3
4pub struct Storage;
5
6impl Storage {
7 pub fn auto_detect(path: &Path, index_name: &str) -> Result<Box<dyn StorageBackend>> {
9 let index_path = path.join(index_name);
10 let manifest_path = path.join("manifest.json");
11
12 if manifest_path.exists() {
13 Ok(Box::new(crate::OptimizedStorage::new(path)?))
15 } else if index_path.exists() {
16 Ok(Box::new(crate::LegacyStorage::new(path, index_name)?))
18 } else {
19 Ok(Box::new(crate::OptimizedStorage::new(path)?))
21 }
22 }
23}