[−][src]Struct body_image_futio::UniBodySink
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 start_send(&mut self, buf: UniBodyBuf) -> StartSend<UniBodyBuf, FutioError>
[src]
fn poll_complete(&mut self) -> Poll<(), FutioError>
[src]
fn close(&mut self) -> Poll<(), FutioError>
[src]
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]
F: FnMut(U) -> Fut,
Fut: IntoFuture<Item = Self::SinkItem>,
<Fut as IntoFuture>::Error: From<Self::SinkError>,
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]
F: FnMut(U) -> St,
St: Stream<Item = Self::SinkItem, Error = Self::SinkError>,
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]
F: FnOnce(Self::SinkError) -> E,
Transforms the error returned by the sink.
fn sink_from_err<E>(self) -> SinkFromErr<Self, E> where
E: From<Self::SinkError>,
[src]
E: From<Self::SinkError>,
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]
S: Sink<SinkItem = Self::SinkItem, SinkError = Self::SinkError>,
Self::SinkItem: Clone,
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]
S: Stream<Item = Self::SinkItem>,
Self::SinkError: From<<S as Stream>::Error>,
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]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,