Add AsFd implementations for stdio lock types on WASI.
This mirrors the implementations on Unix platforms, and also mirrors the existing `AsRawFd` impls. This is similar to #100892, but is for the `*Lock` types.
This commit is contained in:
parent
e7119a0300
commit
ed812c7add
1 changed files with 21 additions and 0 deletions
|
|
@ -30,6 +30,13 @@ impl AsFd for Stdin {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a> AsFd for StdinLock<'a> {
|
||||
#[inline]
|
||||
fn as_fd(&self) -> BorrowedFd<'_> {
|
||||
unsafe { BorrowedFd::borrow_raw(0) }
|
||||
}
|
||||
}
|
||||
|
||||
impl io::Read for Stdin {
|
||||
fn read(&mut self, data: &mut [u8]) -> io::Result<usize> {
|
||||
self.read_vectored(&mut [IoSliceMut::new(data)])
|
||||
|
|
@ -65,6 +72,13 @@ impl AsFd for Stdout {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a> AsFd for StdoutLock<'a> {
|
||||
#[inline]
|
||||
fn as_fd(&self) -> BorrowedFd<'_> {
|
||||
unsafe { BorrowedFd::borrow_raw(1) }
|
||||
}
|
||||
}
|
||||
|
||||
impl io::Write for Stdout {
|
||||
fn write(&mut self, data: &[u8]) -> io::Result<usize> {
|
||||
self.write_vectored(&[IoSlice::new(data)])
|
||||
|
|
@ -103,6 +117,13 @@ impl AsFd for Stderr {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a> AsFd for StderrLock<'a> {
|
||||
#[inline]
|
||||
fn as_fd(&self) -> BorrowedFd<'_> {
|
||||
unsafe { BorrowedFd::borrow_raw(2) }
|
||||
}
|
||||
}
|
||||
|
||||
impl io::Write for Stderr {
|
||||
fn write(&mut self, data: &[u8]) -> io::Result<usize> {
|
||||
self.write_vectored(&[IoSlice::new(data)])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue