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

Method get_kg_edges_to

atomic-core/src/pristine/txn/write/triples.rs:207–234  ·  view source on GitHub ↗
(&self, node_id: &str)

Source from the content-addressed store, hash-verified

205 }
206
207 fn get_kg_edges_to(&self, node_id: &str) -> PristineResult<Vec<KgEdge>> {
208 let to_table = match self.txn.open_multimap_table(KG_EDGES_TO) {
209 Ok(t) => t,
210 Err(redb::TableError::TableDoesNotExist(_)) => return Ok(Vec::new()),
211 Err(e) => return Err(PristineError::from(e)),
212 };
213 let edges_table = match self.txn.open_table(KG_EDGES) {
214 Ok(t) => t,
215 Err(redb::TableError::TableDoesNotExist(_)) => return Ok(Vec::new()),
216 Err(e) => return Err(PristineError::from(e)),
217 };
218
219 let mut edges = Vec::new();
220 let iter = to_table.get(node_id)?;
221 for result in iter {
222 let edge_key_guard: redb::AccessGuard<'_, &str> = result?;
223 let edge_key: &str = edge_key_guard.value();
224 if let Some(edge_data) = edges_table.get(edge_key)? {
225 let bytes: &[u8] = edge_data.value();
226 let edge: KgEdge =
227 serde_json::from_slice(bytes).map_err(|e| PristineError::Serialization {
228 message: e.to_string(),
229 })?;
230 edges.push(edge);
231 }
232 }
233 Ok(edges)
234 }
235
236 fn kg_fts_search(&self, query: &str, limit: usize) -> PristineResult<Vec<KgNode>> {
237 let fts_table = match self.txn.open_multimap_table(KG_FTS) {

Callers 2

del_kg_edges_for_nodeMethod · 0.45
test_kg_edge_crudFunction · 0.45

Calls 2

getMethod · 0.65
pushMethod · 0.45

Tested by 1

test_kg_edge_crudFunction · 0.36