MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / list_embeddings

Method list_embeddings

atomic-core/src/pristine/txn/read.rs:1186–1223  ·  view source on GitHub ↗
(&self, path: &str)

Source from the content-addressed store, hash-verified

1184 }
1185
1186 fn list_embeddings(&self, path: &str) -> PristineResult<Vec<(u32, EmbeddingRecord)>> {
1187 let table = match self.txn.open_table(EMBEDDINGS) {
1188 Ok(table) => table,
1189 Err(redb::TableError::TableDoesNotExist(_)) => return Ok(Vec::new()),
1190 Err(e) => return Err(PristineError::from(e)),
1191 };
1192
1193 let mut results = Vec::new();
1194 let prefix = format!("{}\0", path);
1195
1196 let iter = table.range::<&str>(prefix.as_str()..)?;
1197
1198 for item in iter {
1199 let (key_guard, value_guard) = item?;
1200 let key_str = key_guard.value();
1201
1202 if !key_str.starts_with(&prefix) {
1203 break;
1204 }
1205
1206 let (_, chunk_idx) = match decode_embedding_key(key_str) {
1207 Some(decoded) => decoded,
1208 None => continue,
1209 };
1210
1211 let bytes = value_guard.value();
1212 let record: EmbeddingRecord =
1213 postcard::from_bytes(bytes).map_err(|e| PristineError::Serialization {
1214 message: format!(
1215 "failed to deserialize EmbeddingRecord at '{}': {}",
1216 key_str, e
1217 ),
1218 })?;
1219 results.push((chunk_idx, record));
1220 }
1221
1222 Ok(results)
1223 }
1224
1225 fn count_embeddings(&self) -> PristineResult<usize> {
1226 let table = match self.txn.open_table(EMBEDDINGS) {

Callers

nothing calls this directly

Calls 3

decode_embedding_keyFunction · 0.85
as_strMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected