MCPcopy Create free account
hub / github.com/GraphLite-AI/GraphLite / open_tree

Method open_tree

graphlite/src/storage/persistent/memory.rs:122–139  ·  view source on GitHub ↗
(&self, name: &str)

Source from the content-addressed store, hash-verified

120 }
121
122 fn open_tree(&self, name: &str) -> StorageResult<Self::Tree> {
123 let mut trees = self.trees.write();
124
125 if let Some(tree) = trees.get(name) {
126 Ok(Box::new(MemoryTree {
127 data: tree.data.clone(),
128 }) as Box<dyn StorageTree>)
129 } else {
130 let tree = Arc::new(MemoryTree {
131 data: Arc::new(RwLock::new(HashMap::new())),
132 });
133 trees.insert(name.to_string(), tree.clone());
134
135 Ok(Box::new(MemoryTree {
136 data: tree.data.clone(),
137 }) as Box<dyn StorageTree>)
138 }
139 }
140
141 fn list_trees(&self) -> StorageResult<Vec<String>> {
142 Ok(self.trees.read().keys().cloned().collect())

Callers 1

open_index_treeMethod · 0.45

Calls 3

cloneMethod · 0.80
getMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected