diff --git a/crates/wasi-common/src/sys/stdio.rs b/crates/wasi-common/src/sys/stdio.rs index 97005767d4..9ac6d6c9ca 100644 --- a/crates/wasi-common/src/sys/stdio.rs +++ b/crates/wasi-common/src/sys/stdio.rs @@ -17,7 +17,7 @@ // TODO it might worth re-investigating the suitability of this type on Windows. use super::{fd, AsFile}; -use crate::handle::{Fdflags, Filetype, Handle, HandleRights, Rights, RightsExt, Size}; +use crate::handle::{Fdflags, Filestat, Filetype, Handle, HandleRights, Rights, RightsExt, Size}; use crate::sandboxed_tty_writer::SandboxedTTYWriter; use crate::{Error, Result}; use std::any::Any; @@ -65,6 +65,9 @@ impl Handle for Stdin { } Ok(()) } + fn filestat_get(&self) -> Result { + fd::filestat_get(&*self.as_file()?) + } fn read_vectored(&self, iovs: &mut [io::IoSliceMut]) -> Result { let nread = io::stdin().read_vectored(iovs)?; Ok(nread) @@ -111,6 +114,9 @@ impl Handle for Stdout { } Ok(()) } + fn filestat_get(&self) -> Result { + fd::filestat_get(&*self.as_file()?) + } fn write_vectored(&self, iovs: &[io::IoSlice]) -> Result { // lock for the duration of the scope let stdout = io::stdout(); @@ -165,6 +171,9 @@ impl Handle for Stderr { } Ok(()) } + fn filestat_get(&self) -> Result { + fd::filestat_get(&*self.as_file()?) + } fn write_vectored(&self, iovs: &[io::IoSlice]) -> Result { // Always sanitize stderr, even if it's not directly connected to a tty, // because stderr is meant for diagnostics rather than binary output,