summaryrefslogtreecommitdiffstats
path: root/tokio-futures/src/sink/mod.rs
blob: 90382951e46e494ac86884baa26e18989cf0212d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//! Use sinks with `async` / `await`.

mod send;

pub use self::send::Send;

use futures::Sink;

/// An extension trait which adds utility methods to `Sink` types.
pub trait SinkExt: Sink {
    /// Send an item into the sink.
    ///
    /// Note that, **because of the flushing requirement, it is usually better
    /// to batch together items to send via `send_all`, rather than flushing
    /// between each item.**
    fn send_async(&mut self, item: Self::SinkItem) -> Send<'_, Self>
    where
        Self: Sized + Unpin,
    {
        Send::new(self, item)
    }
}

impl<T: Sink> SinkExt for T {}