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

Method del_embeddings

atomic-core/src/pristine/txn/write/embeddings.rs:187–225  ·  view source on GitHub ↗
(&mut self, path: &str)

Source from the content-addressed store, hash-verified

185 }
186
187 fn del_embeddings(&mut self, path: &str) -> PristineResult<usize> {
188 // First collect all keys for this path
189 let keys_to_delete: Vec<String> = {
190 let table = match self.txn.open_table(EMBEDDINGS) {
191 Ok(table) => table,
192 Err(redb::TableError::TableDoesNotExist(_)) => return Ok(0),
193 Err(e) => return Err(PristineError::from(e)),
194 };
195
196 let prefix = format!("{}\0", path);
197 let mut keys = Vec::new();
198
199 let iter = table.range::<&str>(prefix.as_str()..)?;
200 for item in iter {
201 let (key_guard, _value_guard) = item?;
202 let key_str = key_guard.value();
203
204 if !key_str.starts_with(&prefix) {
205 break;
206 }
207
208 keys.push(key_str.to_string());
209 }
210
211 keys
212 };
213
214 let count = keys_to_delete.len();
215
216 // Now delete each key
217 if count > 0 {
218 let mut table = self.txn.open_table(EMBEDDINGS)?;
219 for key in &keys_to_delete {
220 table.remove(key.as_str())?;
221 }
222 }
223
224 Ok(count)
225 }
226
227 fn init_embeddings(&mut self) -> PristineResult<()> {
228 // Opening the table with a WriteTransaction creates it if it doesn't exist

Callers 4

test_embedding_deleteFunction · 0.80
vault_embedMethod · 0.80

Calls 4

removeMethod · 0.65
as_strMethod · 0.45
pushMethod · 0.45
lenMethod · 0.45

Tested by 3

test_embedding_deleteFunction · 0.64