Struct io_streams::StreamDuplexer[][src]

pub struct StreamDuplexer { /* fields omitted */ }

An unbuffered and unlocked interactive combination input and output stream.

This may hold two file descriptors, one for reading and one for writing, such as stdin and stdout, or it may hold one file handle for both reading and writing, such as for a TCP socket.

There is no file constructor, even though File implements both Read and Write, because normal files are not interactive. However, there is a char_device constructor for character device files.

Implementations

impl StreamDuplexer[src]

pub fn stdin_stdout() -> Result<Self>[src]

Duplex with stdin and stdout, taking ownership of them.

Unlike std::io::stdin and std::io::stdout, this stdin_stdout returns a stream which is unbuffered and unlocked.

This acquires a std::io::StdinLock and a std::io::StdoutLock to prevent accesses to std::io::Stdin and std::io::Stdout while this is live, and fails if a StreamReader for standard input, a StreamWriter for standard output, or a StreamDuplexer for standard input and standard output already exist.

#[must_use]pub fn tcp_stream<Socketlike: IntoUnsafeSocket>(socketlike: Socketlike) -> Self[src]

Duplex with an open TCP stream, taking ownership of it.

This method can be passed a std::net::TcpStream or similar TcpStream types.

#[must_use]pub fn unix_stream(unix_stream: UnixStream) -> Self[src]

Duplex with an open Unix-domain stream, taking ownership of it.

#[must_use]pub fn pipe_reader_writer(
    pipe_reader: PipeReader,
    pipe_writer: PipeWriter
) -> Self
[src]

Duplex with a pair of pipe streams, taking ownership of them.

pub fn duplex_with_command(mut command: Command) -> Result<Self>[src]

Spawn the given command and duplex with its standard input and output.

#[must_use]pub fn child_stdout_stdin(
    child_stdout: ChildStdout,
    child_stdin: ChildStdin
) -> Self
[src]

Duplex with a child process' stdout and stdin, taking ownership of them.

Trait Implementations

impl AsRawReadWriteFd for StreamDuplexer[src]

impl Debug for StreamDuplexer[src]

impl Duplex for StreamDuplexer[src]

impl Peek for StreamDuplexer[src]

impl Read for StreamDuplexer[src]

impl ReadReady for StreamDuplexer[src]

impl Write for StreamDuplexer[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> AsUnsafeReadWriteHandle for T where
    T: AsRawReadWriteFd
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> HalfDuplex for T where
    T: Duplex + Read + Write
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.