MCPcopy Create free account
hub / github.com/endbasic/endbasic / enumerate

Method enumerate

web/src/store.rs:256–282  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

254 }
255
256 async fn enumerate(&self) -> io::Result<DriveFiles> {
257 let mut entries = BTreeMap::new();
258
259 let n = match self.storage.length() {
260 Ok(n) => n,
261 Err(e) => return Err(io::Error::other(format!("{:?}", e))),
262 };
263 for i in 0..n {
264 let key = match self.storage.key(i) {
265 Ok(Some(key)) => key,
266 Ok(None) => return Err(io::Error::other("Entry vanished")),
267 Err(e) => {
268 return Err(io::Error::other(format!(
269 "Failed to fetch local storage entry with index {}: {:?}",
270 i, e
271 )));
272 }
273 };
274
275 if let Some(key) = Key::parse(&key) {
276 let entry = self.get_entry(&key)?;
277 entries.insert(key.name().to_owned(), entry.metadata());
278 }
279 }
280
281 Ok(DriveFiles::new(entries, None, None))
282 }
283
284 async fn get(&self, name: &str) -> io::Result<Vec<u8>> {
285 let entry = self.get_entry(&Key::for_name(name))?;

Callers 1

test_webdrive_enumerateFunction · 0.45

Calls 5

parseFunction · 0.85
get_entryMethod · 0.80
insertMethod · 0.45
nameMethod · 0.45
metadataMethod · 0.45

Tested by 1

test_webdrive_enumerateFunction · 0.36