MCPcopy Create free account
hub / github.com/Rustixir/darkbird / remove

Method remove

src/darkbird/storage.rs:179–224  ·  view source on GitHub ↗
(&self, key: K)

Source from the content-addressed store, hash-verified

177 /// remove from storage and persist to disk
178 #[inline]
179 pub async fn remove(&self, key: K) -> Result<(), SessionResult> {
180 match self.collection.get(&key) {
181 Some(doc) => {
182
183 if !self.off_disk || !self.off_reporter {
184 let query = RQuery::<K, Doc>::Remove(key.clone());
185
186 if !self.off_disk {
187 if let Err(e) = self.wal_session.log(bincode::serialize(&query).unwrap()).await {
188 return Err(e);
189 }
190 }
191
192 if !self.off_reporter {
193 let _ = self.reporter_session.dispatch(Event::Query(query)).await;
194 }
195
196 }
197
198 // remove from hash_index
199 self.hash_index.remove(doc.value());
200
201 // remove from view
202 if let Some(view_name) = doc.filter() {
203 self.tag_index.remove_from_view(&view_name, &key)
204 }
205
206 // remove from invertedIndex
207 if let Some(content) = doc.value().get_content() {
208 let _ = self.inverted_index.remove(key.clone(), content).await;
209 }
210
211 // remove from tag_index
212 self.tag_index.remove(&key, doc.value());
213
214 // remove to range
215 self.range_index.remove(&key, doc.value());
216
217 }
218 None => return Ok(()),
219 }
220
221 self.collection.remove(&key);
222
223 Ok(())
224 }
225
226 /// gets documents
227 #[inline]

Callers 7

mainFunction · 0.45
mainFunction · 0.45
setMethod · 0.45
set_nxMethod · 0.45
delMethod · 0.45
purge_expired_keysMethod · 0.45
loaderMethod · 0.45

Calls 6

logMethod · 0.80
dispatchMethod · 0.80
remove_from_viewMethod · 0.80
getMethod · 0.45
filterMethod · 0.45
get_contentMethod · 0.45

Tested by

no test coverage detected