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

Method get_kg_node

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

Source from the content-addressed store, hash-verified

155
156impl<'a> KgTxnT for WriteTxn<'a> {
157 fn get_kg_node(&self, id: &str) -> PristineResult<Option<KgNode>> {
158 let table = match self.txn.open_table(KG_NODES) {
159 Ok(t) => t,
160 Err(redb::TableError::TableDoesNotExist(_)) => return Ok(None),
161 Err(e) => return Err(PristineError::from(e)),
162 };
163 let result = match table.get(id)? {
164 Some(value) => {
165 let bytes: &[u8] = value.value();
166 let node: KgNode =
167 serde_json::from_slice(bytes).map_err(|e| PristineError::Serialization {
168 message: e.to_string(),
169 })?;
170 Some(node)
171 }
172 None => None,
173 };
174 drop(table);
175 Ok(result)
176 }
177
178 fn get_kg_edges_from(&self, node_id: &str) -> PristineResult<Vec<KgEdge>> {
179 let from_table = match self.txn.open_multimap_table(KG_EDGES_FROM) {

Callers 4

clear_session_turn_kgMethod · 0.45
kg_fts_searchMethod · 0.45

Calls 1

getMethod · 0.65

Tested by 1