diff --git a/crates/wasi-common/cap-std-sync/src/dir.rs b/crates/wasi-common/cap-std-sync/src/dir.rs index bac4c04e25..9c895505d5 100644 --- a/crates/wasi-common/cap-std-sync/src/dir.rs +++ b/crates/wasi-common/cap-std-sync/src/dir.rs @@ -259,6 +259,9 @@ fn convert_systimespec(t: Option) -> Option HashMap { + let mut out = HashMap::new(); + for readdir_result in dir + .readdir(ReaddirCursor::from(0)) + .expect("readdir succeeds") + { + let (entity, name) = readdir_result.expect("readdir entry is valid"); + out.insert(name, entity); + } + out + } } diff --git a/crates/wasi-common/src/dir.rs b/crates/wasi-common/src/dir.rs index 9c9ff80d95..b2ec7c27d5 100644 --- a/crates/wasi-common/src/dir.rs +++ b/crates/wasi-common/src/dir.rs @@ -162,6 +162,7 @@ impl TableDirExt for crate::table::Table { } } +#[derive(Debug, Clone)] pub struct ReaddirEntity { pub next: ReaddirCursor, pub inode: u64, diff --git a/crates/wasi-common/src/file.rs b/crates/wasi-common/src/file.rs index 4f5ada3654..65fba7cd4a 100644 --- a/crates/wasi-common/src/file.rs +++ b/crates/wasi-common/src/file.rs @@ -30,7 +30,7 @@ pub trait WasiFile { fn num_ready_bytes(&self) -> Result; // read op } -#[derive(Debug, Copy, Clone)] +#[derive(Debug, Copy, Clone, PartialEq, Eq)] pub enum FileType { Unknown, BlockDevice, @@ -62,7 +62,7 @@ bitflags! { } } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct Filestat { pub device_id: u64, pub inode: u64,