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

Method get_kg_node

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

Source from the content-addressed store, hash-verified

11
12impl<'a> KgTxnT for WriteTxn<'a> {
13 fn get_kg_node(&self, id: &str) -> PristineResult<Option<KgNode>> {
14 let table = match self.txn.open_table(KG_NODES) {
15 Ok(t) => t,
16 Err(redb::TableError::TableDoesNotExist(_)) => return Ok(None),
17 Err(e) => return Err(PristineError::from(e)),
18 };
19 let result = match table.get(id)? {
20 Some(value) => {
21 let bytes: &[u8] = value.value();
22 let node: KgNode =
23 serde_json::from_slice(bytes).map_err(|e| PristineError::Serialization {
24 message: e.to_string(),
25 })?;
26 Some(node)
27 }
28 None => None,
29 };
30 drop(table);
31 Ok(result)
32 }
33
34 fn get_kg_edges_from(&self, node_id: &str) -> PristineResult<Vec<KgEdge>> {
35 let from_table = match self.txn.open_multimap_table(KG_EDGES_FROM) {

Callers 2

kg_fts_searchMethod · 0.45

Calls 1

getMethod · 0.65

Tested by 1