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:63–90  ·  view source on GitHub ↗
(&self, node_id: &str)

Source from the content-addressed store, hash-verified

61 }
62
63 fn get_kg_edges_to(&self, node_id: &str) -> PristineResult<Vec<KgEdge>> {
64 let to_table = match self.txn.open_multimap_table(KG_EDGES_TO) {
65 Ok(t) => t,
66 Err(redb::TableError::TableDoesNotExist(_)) => return Ok(Vec::new()),
67 Err(e) => return Err(PristineError::from(e)),
68 };
69 let edges_table = match self.txn.open_table(KG_EDGES) {
70 Ok(t) => t,
71 Err(redb::TableError::TableDoesNotExist(_)) => return Ok(Vec::new()),
72 Err(e) => return Err(PristineError::from(e)),
73 };
74
75 let mut edges = Vec::new();
76 let iter = to_table.get(node_id)?;
77 for result in iter {
78 let edge_key_guard: redb::AccessGuard<'_, &str> = result?;
79 let edge_key: &str = edge_key_guard.value();
80 if let Some(edge_data) = edges_table.get(edge_key)? {
81 let bytes: &[u8] = edge_data.value();
82 let edge: KgEdge =
83 serde_json::from_slice(bytes).map_err(|e| PristineError::Serialization {
84 message: e.to_string(),
85 })?;
86 edges.push(edge);
87 }
88 }
89 Ok(edges)
90 }
91
92 fn kg_fts_search(&self, query: &str, limit: usize) -> PristineResult<Vec<KgNode>> {
93 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