Struct rotor_stream::Transport [] [src]

pub struct Transport<'a, S: StreamSocket> {
    // some fields omitted
}

Methods

impl<'a, S: StreamSocket> Transport<'a, S>
[src]

Transport is thing that provides buffered I/O for stream sockets

fn socket<'x>(&'x mut self) -> &'x mut S

Get the reference to the underlying stream

It's here so you can inspect socket state or tune it. For example you might want to set TCP_CORK option or find out peer or local address.

Reading from and writing to a socket directly may lead to unexpected behavior. Use input() and output() buffers instead.

fn input<'x>(&'x mut self) -> &'x mut Buf

Get a reference to the input buffer

It's expected that you only read and consume() bytes from buffer but never write.

fn output<'x>(&'x mut self) -> &'x mut Buf

Get a reference to the output buffer

It's expected that you only inspect and write to the output buffer but never consume()

fn buffers<'x>(&'x mut self) -> (&'x mut Buf, &'x mut Buf)

Get a references to both buffers (input, output)

It's useful when you want to pass both things somewhere along the chain of calls. See input() and output() methods for more comments on buffer usage