pub struct PipeWriter(/* private fields */);
Expand description
Write end of an anonymous pipe.
Implementations§
Source§impl PipeWriter
impl PipeWriter
1.87.0 · Sourcepub fn try_clone(&self) -> Result<PipeWriter, Error>
pub fn try_clone(&self) -> Result<PipeWriter, Error>
Creates 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 AsHandle for PipeWriter
impl AsHandle for PipeWriter
Source§fn as_handle(&self) -> BorrowedHandle<'_>
fn as_handle(&self) -> BorrowedHandle<'_>
Borrows the handle. Read more
1.87.0 · Source§impl AsRawHandle for PipeWriter
impl AsRawHandle for PipeWriter
1.87.0 · Source§impl Debug for PipeWriter
impl Debug for PipeWriter
1.87.0 · Source§impl From<OwnedHandle> for PipeWriter
impl From<OwnedHandle> for PipeWriter
Source§fn from(owned_handle: OwnedHandle) -> PipeWriter ⓘ
fn from(owned_handle: OwnedHandle) -> PipeWriter ⓘ
Converts to this type from the input type.
1.87.0 · Source§impl From<PipeWriter> for OwnedHandle
impl From<PipeWriter> for OwnedHandle
Source§fn from(pipe: PipeWriter) -> OwnedHandle
fn from(pipe: PipeWriter) -> OwnedHandle
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) -> Stdio
fn from(pipe: PipeWriter) -> Stdio
Converts to this type from the input type.
1.87.0 · Source§impl FromRawHandle for PipeWriter
impl FromRawHandle for PipeWriter
Source§unsafe fn from_raw_handle(raw_handle: *mut c_void) -> PipeWriter ⓘ
unsafe fn from_raw_handle(raw_handle: *mut c_void) -> PipeWriter ⓘ
Constructs a new I/O object from the specified raw handle. Read more
1.87.0 · Source§impl IntoRawHandle for PipeWriter
impl IntoRawHandle for PipeWriter
1.87.0 · Source§impl Write for &PipeWriter
impl Write for &PipeWriter
Source§fn write(&mut self, buf: &[u8]) -> Result<usize, Error>
fn write(&mut self, buf: &[u8]) -> Result<usize, Error>
Writes a buffer into this writer, returning how many bytes were written. Read more
Source§fn flush(&mut self) -> Result<(), Error>
fn flush(&mut self) -> Result<(), Error>
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
)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored
)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, Error>
fn write(&mut self, buf: &[u8]) -> Result<usize, Error>
Writes a buffer into this writer, returning how many bytes were written. Read more
Source§fn flush(&mut self) -> Result<(), Error>
fn flush(&mut self) -> Result<(), Error>
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
)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored
)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