pub struct PipeWriter(pub(crate) FileDesc);
Expand description
Write end of an anonymous pipe.
Tuple Fields§
§0: FileDesc
Implementations§
Source§impl PipeWriter
impl PipeWriter
1.87.0 · Sourcepub fn try_clone(&self) -> Result<Self>
pub fn try_clone(&self) -> Result<Self>
Create a new PipeWriter
instance that shares the same underlying file description.
§Examples
use std::process::Command;
use std::io::{pipe, Read};
let (mut reader, writer) = pipe()?;
// Spawn a process that writes to stdout and stderr.
let mut peer = Command::new("bash")
.args([
"-c",
"echo -n foo\n\
echo -n bar >&2"
])
.stdout(writer.try_clone()?)
.stderr(writer)
.spawn()?;
// Read and check the result.
let mut msg = String::new();
reader.read_to_string(&mut msg)?;
assert_eq!(&msg, "foobar");
peer.wait()?;
Trait Implementations§
1.87.0 · Source§impl AsFd for PipeWriter
impl AsFd for PipeWriter
Source§fn as_fd(&self) -> BorrowedFd<'_>
fn as_fd(&self) -> BorrowedFd<'_>
Borrows the file descriptor. Read more
1.87.0 · Source§impl AsHandle for PipeWriter
Available on Windows only.
impl AsHandle for PipeWriter
Available on Windows only.
Source§fn as_handle(&self) -> BorrowedHandle<'_>
fn as_handle(&self) -> BorrowedHandle<'_>
Borrows the handle. Read more
1.87.0 · Source§impl AsRawFd for PipeWriter
impl AsRawFd for PipeWriter
1.87.0 · Source§impl AsRawHandle for PipeWriter
Available on Windows only.
impl AsRawHandle for PipeWriter
Available on Windows only.
Source§fn as_raw_handle(&self) -> RawHandle
fn as_raw_handle(&self) -> RawHandle
Extracts the raw handle. Read more
Source§impl CopyWrite for &PipeWriter
impl CopyWrite for &PipeWriter
Source§fn properties(&self) -> CopyParams
fn properties(&self) -> CopyParams
Extracts the file descriptor and hints/metadata, delegating through wrappers if necessary.
Source§impl CopyWrite for PipeWriter
impl CopyWrite for PipeWriter
Source§fn properties(&self) -> CopyParams
fn properties(&self) -> CopyParams
Extracts the file descriptor and hints/metadata, delegating through wrappers if necessary.
1.87.0 · Source§impl Debug for PipeWriter
impl Debug for PipeWriter
1.87.0 · Source§impl From<OwnedFd> for PipeWriter
impl From<OwnedFd> for PipeWriter
1.87.0 · Source§impl From<OwnedHandle> for PipeWriter
Available on Windows only.
impl From<OwnedHandle> for PipeWriter
Available on Windows only.
Source§fn from(owned_handle: OwnedHandle) -> Self
fn from(owned_handle: OwnedHandle) -> Self
Converts to this type from the input type.
1.87.0 · Source§impl From<PipeWriter> for OwnedFd
impl From<PipeWriter> for OwnedFd
Source§fn from(pipe: PipeWriter) -> Self
fn from(pipe: PipeWriter) -> Self
Converts to this type from the input type.
1.87.0 · Source§impl From<PipeWriter> for OwnedHandle
Available on Windows only.
impl From<PipeWriter> for OwnedHandle
Available on Windows only.
Source§fn from(pipe: PipeWriter) -> Self
fn from(pipe: PipeWriter) -> Self
Converts to this type from the input type.
1.87.0 · Source§impl From<PipeWriter> for Stdio
impl From<PipeWriter> for Stdio
Source§fn from(pipe: PipeWriter) -> Self
fn from(pipe: PipeWriter) -> Self
Converts to this type from the input type.
Source§impl FromInner<FileDesc> for PipeWriter
impl FromInner<FileDesc> for PipeWriter
fn from_inner(inner: FileDesc) -> Self
1.87.0 · Source§impl FromRawFd for PipeWriter
impl FromRawFd for PipeWriter
Source§unsafe fn from_raw_fd(raw_fd: RawFd) -> Self
unsafe fn from_raw_fd(raw_fd: RawFd) -> Self
Constructs a new instance of
Self
from the given raw file
descriptor. Read more1.87.0 · Source§impl FromRawHandle for PipeWriter
Available on Windows only.
impl FromRawHandle for PipeWriter
Available on Windows only.
Source§unsafe fn from_raw_handle(raw_handle: RawHandle) -> Self
unsafe fn from_raw_handle(raw_handle: RawHandle) -> Self
Constructs a new I/O object from the specified raw handle. Read more
Source§impl IntoInner<FileDesc> for PipeWriter
impl IntoInner<FileDesc> for PipeWriter
fn into_inner(self) -> FileDesc ⓘ
1.87.0 · Source§impl IntoRawFd for PipeWriter
impl IntoRawFd for PipeWriter
Source§fn into_raw_fd(self) -> RawFd
fn into_raw_fd(self) -> RawFd
Consumes this object, returning the raw underlying file descriptor. Read more
1.87.0 · Source§impl IntoRawHandle for PipeWriter
Available on Windows only.
impl IntoRawHandle for PipeWriter
Available on Windows only.
Source§fn into_raw_handle(self) -> RawHandle
fn into_raw_handle(self) -> RawHandle
Consumes this object, returning the raw underlying handle. Read more
1.87.0 · Source§impl Write for &PipeWriter
impl Write for &PipeWriter
Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Writes a buffer into this writer, returning how many bytes were written. Read more
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flushes this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
#69941)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<()>
fn write_all(&mut self, buf: &[u8]) -> Result<()>
Attempts to write an entire buffer into this writer. Read more
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
🔬This is a nightly-only experimental API. (
write_all_vectored
#70436)Attempts to write multiple buffers into this writer. Read more
1.87.0 · Source§impl Write for PipeWriter
impl Write for PipeWriter
Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Writes a buffer into this writer, returning how many bytes were written. Read more
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flushes this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
#69941)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<()>
fn write_all(&mut self, buf: &[u8]) -> Result<()>
Attempts to write an entire buffer into this writer. Read more
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
🔬This is a nightly-only experimental API. (
write_all_vectored
#70436)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations§
impl Freeze for PipeWriter
impl RefUnwindSafe for PipeWriter
impl Send for PipeWriter
impl Sync for PipeWriter
impl Unpin for PipeWriter
impl UnwindSafe for PipeWriter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> SizedTypeProperties for T
impl<T> SizedTypeProperties for T
Source§#[doc(hidden)] const IS_ZST: bool = _
#[doc(hidden)] const IS_ZST: bool = _
🔬This is a nightly-only experimental API. (
sized_type_properties
)Source§#[doc(hidden)] const LAYOUT: Layout = _
#[doc(hidden)] const LAYOUT: Layout = _
🔬This is a nightly-only experimental API. (
sized_type_properties
)Source§#[doc(hidden)] const MAX_SLICE_LEN: usize = _
#[doc(hidden)] const MAX_SLICE_LEN: usize = _
🔬This is a nightly-only experimental API. (
sized_type_properties
)The largest safe length for a
[Self]
. Read more