[][src]Struct asynchronous_codec::FramedWrite

pub struct FramedWrite<T, E> { /* fields omitted */ }

A Sink of frames encoded to an AsyncWrite.

Example

use bytes::Bytes;
use asynchronous_codec::{FramedWrite, BytesCodec};
use futures::SinkExt;

let mut buf = Vec::new();
let mut framed = FramedWrite::new(&mut buf, BytesCodec {});

let bytes = Bytes::from("Hello World!");
framed.send(bytes.clone()).await?;

assert_eq!(&buf[..], &bytes[..]);

Implementations

impl<T, E> FramedWrite<T, E> where
    T: AsyncWrite,
    E: Encoder
[src]

pub fn new(inner: T, encoder: E) -> Self[src]

Creates a new FramedWrite transport with the given Encoder.

pub fn send_high_water_mark(&self) -> usize[src]

High-water mark for writes, in bytes

The send high-water mark prevents the FramedWrite from accepting additional messages to send when its buffer exceeds this length, in bytes. Attempts to enqueue additional messages will be deferred until progress is made on the underlying AsyncWrite. This applies back-pressure on fast senders and prevents unbounded buffer growth.

See set_send_high_water_mark().

pub fn set_send_high_water_mark(&mut self, hwm: usize)[src]

Sets high-water mark for writes, in bytes

The send high-water mark prevents the FramedWrite from accepting additional messages to send when its buffer exceeds this length, in bytes. Attempts to enqueue additional messages will be deferred until progress is made on the underlying AsyncWrite. This applies back-pressure on fast senders and prevents unbounded buffer growth.

The default high-water mark is 2^17 bytes. Applications which desire low latency may wish to reduce this value. There is little point to increasing this value beyond your socket's SO_SNDBUF size. On linux, this defaults to 212992 bytes but is user-adjustable.

pub fn release(self) -> (T, E)[src]

Release the I/O and Encoder

pub fn into_inner(self) -> T[src]

Consumes the FramedWrite, returning its underlying I/O stream.

Note that care should be taken to not tamper with the underlying stream of data coming in as it may corrupt the stream of frames otherwise being worked with.

pub fn encoder(&self) -> &E[src]

Returns a reference to the underlying encoder.

Note that care should be taken to not tamper with the underlying encoder as it may corrupt the stream of frames otherwise being worked with.

pub fn encoder_mut(&mut self) -> &mut E[src]

Returns a mutable reference to the underlying encoder.

Note that care should be taken to not tamper with the underlying encoder as it may corrupt the stream of frames otherwise being worked with.

Trait Implementations

impl<T: Debug, E: Debug> Debug for FramedWrite<T, E>[src]

impl<T, E> Deref for FramedWrite<T, E>[src]

type Target = T

The resulting type after dereferencing.

impl<T, E> DerefMut for FramedWrite<T, E>[src]

impl<T, E> Sink<<E as Encoder>::Item> for FramedWrite<T, E> where
    T: AsyncWrite + Unpin,
    E: Encoder
[src]

type Error = E::Error

The type of value produced by the sink when an error occurs.

impl<'__pin, T, E> Unpin for FramedWrite<T, E> where
    __Origin<'__pin, T, E>: Unpin
[src]

Auto Trait Implementations

impl<T, E> RefUnwindSafe for FramedWrite<T, E> where
    E: RefUnwindSafe,
    T: RefUnwindSafe
[src]

impl<T, E> Send for FramedWrite<T, E> where
    E: Send,
    T: Send
[src]

impl<T, E> Sync for FramedWrite<T, E> where
    E: Sync,
    T: Sync
[src]

impl<T, E> UnwindSafe for FramedWrite<T, E> where
    E: UnwindSafe,
    T: UnwindSafe
[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[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, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, Item> SinkExt<Item> for T where
    T: Sink<Item> + ?Sized
[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.