[][src]Struct body_image_futio::UniBodySink

pub struct UniBodySink { /* fields omitted */ }

Adaptor for BodySink implementing the futures::Sink trait. This allows a Stream<Item=UniBodyBuf> to be forwarded (e.g. via futures::Stream::forward) to a BodySink, in a fully asynchronous fashion and with zero-copy MemMap support (mmap feature only).

Tunables are used during the streaming to decide when to write back a BodySink in Ram to FsWrite. This implementation uses tokio_threadpool::blocking to request becoming a backup thread for blocking operations including BodySink::write_back and BodySink::write_all (state FsWrite). It may thus only be used on the tokio threadpool. If the max_blocking number of backup threads is reached, and a blocking operation is required, then this implementation will appear full, with start_send returning Ok(AsyncSink::NotReady(chunk), until a backup thread becomes available or any timeout occurs.

Methods

impl UniBodySink[src]

pub fn new(body: BodySink, tune: Tunables) -> UniBodySink[src]

Wrap by consuming a BodySink and Tunables instances.

Note: Both BodyImage and Tunables are Clone (inexpensive), so that can be done beforehand to preserve owned copies.

pub fn body(&self) -> &BodySink[src]

The inner BodySink as constructed.

pub fn body_mut(&mut self) -> &mut BodySink[src]

A mutable reference to the inner BodySink.

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

Unwrap and return the BodySink.

Trait Implementations

impl Debug for UniBodySink[src]

impl Sink for UniBodySink[src]

type SinkItem = UniBodyBuf

The type of value that the sink accepts.

type SinkError = FutioError

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

fn wait(self) -> Wait<Self>[src]

Creates a new object which will produce a synchronous sink. Read more

fn with<U, F, Fut>(self, f: F) -> With<Self, U, F, Fut> where
    F: FnMut(U) -> Fut,
    Fut: IntoFuture<Item = Self::SinkItem>,
    <Fut as IntoFuture>::Error: From<Self::SinkError>, 
[src]

Composes a function in front of the sink. Read more

fn with_flat_map<U, F, St>(self, f: F) -> WithFlatMap<Self, U, F, St> where
    F: FnMut(U) -> St,
    St: Stream<Item = Self::SinkItem, Error = Self::SinkError>, 
[src]

Composes a function in front of the sink. Read more

fn sink_map_err<F, E>(self, f: F) -> SinkMapErr<Self, F> where
    F: FnOnce(Self::SinkError) -> E, 
[src]

Transforms the error returned by the sink.

fn sink_from_err<E>(self) -> SinkFromErr<Self, E> where
    E: From<Self::SinkError>, 
[src]

Map this sink's error to any error implementing From for this sink's Error, returning a new sink. Read more

fn buffer(self, amt: usize) -> Buffer<Self>[src]

Adds a fixed-size buffer to the current sink. Read more

fn fanout<S>(self, other: S) -> Fanout<Self, S> where
    S: Sink<SinkItem = Self::SinkItem, SinkError = Self::SinkError>,
    Self::SinkItem: Clone
[src]

Fanout items to multiple sinks. Read more

fn flush(self) -> Flush<Self>[src]

A future that completes when the sink has finished processing all pending requests. Read more

fn send(self, item: Self::SinkItem) -> Send<Self>[src]

A future that completes after the given item has been fully processed into the sink, including flushing. Read more

fn send_all<S>(self, stream: S) -> SendAll<Self, S> where
    S: Stream<Item = Self::SinkItem>,
    Self::SinkError: From<<S as Stream>::Error>, 
[src]

A future that completes after the given stream has been fully processed into the sink, including flushing. Read more

Auto Trait Implementations

impl Send for UniBodySink

impl Sync for UniBodySink

Blanket Implementations

impl<T> From<T> for T[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.

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

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

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

impl<T> Erased for T