pub struct LocalScopedSink<'env, T, E> { /* private fields */ }Expand description
Local sink with a scoped future.
Unlike ScopedSink it is not Send, so it can work in no-std environment.
Implementations§
Source§impl<'env, T: 'env, E: 'env> LocalScopedSink<'env, T, E>
impl<'env, T: 'env, E: 'env> LocalScopedSink<'env, T, E>
Sourcepub fn new_dyn(f: DynLocalSinkFn<'env, T, E>) -> Self
pub fn new_dyn(f: DynLocalSinkFn<'env, T, E>) -> Self
Create new LocalScopedSink from a DynLocalSinkFn.
You should probably use new instead.
§Examples
let mut sink: LocalScopedSink<usize, Error> = LocalScopedSink::new_dyn(Box::new(|_| {
Box::pin(async { Ok(()) })
}));Sourcepub fn new<F>(f: F) -> Selfwhere
for<'scope> F: 'env + FnMut(Pin<&'scope mut LocalSinkInner<'scope, 'env, T>>) -> DynLocalSinkFuture<'scope, E>,
pub fn new<F>(f: F) -> Selfwhere
for<'scope> F: 'env + FnMut(Pin<&'scope mut LocalSinkInner<'scope, 'env, T>>) -> DynLocalSinkFuture<'scope, E>,
Create new LocalScopedSink.
Future should be consuming all items of the stream. If not, the function will be called again to restart itself. It is guaranteed if the sink is closed, the future will never restarts.
§Examples
let mut sink = <LocalScopedSink<_, Error>>::new(|mut stream| Box::pin(async move {
// Reads a value. If future returns before sink is closed, it will be restarted.
if let Some(v) = stream.next().await {
println!("Value: {v}");
}
Ok(())
}));
// Send a value
sink.send(1).await?;
// Close the sink
sink.close().await?;Trait Implementations§
Source§impl<'env, T: 'env, E: 'env> Sink<T> for LocalScopedSink<'env, T, E>
impl<'env, T: 'env, E: 'env> Sink<T> for LocalScopedSink<'env, T, E>
Source§fn poll_ready(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<(), E>>
fn poll_ready(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<(), E>>
Attempts to prepare the
Sink to receive a value. Read moreSource§fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<(), E>>
fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<(), E>>
Flush any remaining output from this sink. Read more
impl<'__pin, 'env, T, E> Unpin for LocalScopedSink<'env, T, E>where
PinnedFieldsOf<__Origin<'__pin, 'env, T, E>>: Unpin,
Auto Trait Implementations§
impl<'env, T, E> Freeze for LocalScopedSink<'env, T, E>
impl<'env, T, E> !RefUnwindSafe for LocalScopedSink<'env, T, E>
impl<'env, T, E> !Send for LocalScopedSink<'env, T, E>
impl<'env, T, E> !Sync for LocalScopedSink<'env, T, E>
impl<'env, T, E> !UnwindSafe for LocalScopedSink<'env, T, E>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T, Item> SinkExt<Item> for T
impl<T, Item> SinkExt<Item> for T
Source§fn with<U, Fut, F, E>(self, f: F) -> With<Self, Item, U, Fut, F>
fn with<U, Fut, F, E>(self, f: F) -> With<Self, Item, U, Fut, F>
Composes a function in front of the sink. Read more
Source§fn with_flat_map<U, St, F>(self, f: F) -> WithFlatMap<Self, Item, U, St, F>
fn with_flat_map<U, St, F>(self, f: F) -> WithFlatMap<Self, Item, U, St, F>
Composes a function in front of the sink. Read more
Source§fn sink_map_err<E, F>(self, f: F) -> SinkMapErr<Self, F>
fn sink_map_err<E, F>(self, f: F) -> SinkMapErr<Self, F>
Transforms the error returned by the sink.
Source§fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E>
fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E>
Map this sink’s error to a different error type using the
Into trait. Read moreSource§fn buffer(self, capacity: usize) -> Buffer<Self, Item>where
Self: Sized,
fn buffer(self, capacity: usize) -> Buffer<Self, Item>where
Self: Sized,
Adds a fixed-size buffer to the current sink. Read more
Source§fn flush(&mut self) -> Flush<'_, Self, Item>where
Self: Unpin,
fn flush(&mut self) -> Flush<'_, Self, Item>where
Self: Unpin,
Flush the sink, processing all pending items. Read more
Source§fn send(&mut self, item: Item) -> Send<'_, Self, Item>where
Self: Unpin,
fn send(&mut self, item: Item) -> Send<'_, Self, Item>where
Self: Unpin,
A future that completes after the given item has been fully processed
into the sink, including flushing. Read more
Source§fn feed(&mut self, item: Item) -> Feed<'_, Self, Item>where
Self: Unpin,
fn feed(&mut self, item: Item) -> Feed<'_, Self, Item>where
Self: Unpin,
A future that completes after the given item has been received
by the sink. Read more
Source§fn send_all<'a, St>(&'a mut self, stream: &'a mut St) -> SendAll<'a, Self, St>
fn send_all<'a, St>(&'a mut self, stream: &'a mut St) -> SendAll<'a, Self, St>
A future that completes after the given stream has been fully processed
into the sink, including flushing. Read more
Source§fn right_sink<Si1>(self) -> Either<Si1, Self>
fn right_sink<Si1>(self) -> Either<Si1, Self>
Source§fn poll_ready_unpin(
&mut self,
cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>>where
Self: Unpin,
fn poll_ready_unpin(
&mut self,
cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>>where
Self: Unpin,
A convenience method for calling
Sink::poll_ready on Unpin
sink types.Source§fn start_send_unpin(&mut self, item: Item) -> Result<(), Self::Error>where
Self: Unpin,
fn start_send_unpin(&mut self, item: Item) -> Result<(), Self::Error>where
Self: Unpin,
A convenience method for calling
Sink::start_send on Unpin
sink types.