fn send(&mut self, item: Item) -> Send<'_, Self, Item>
    where
        Self: Unpin,
    {
        assert_future::<Result<(), Self::Error>, _>(Send::new(self, item))
    }
A future that completes after the given item has been fully processed
into the sink, including flushing.

Note that, **because of the flushing requirement, it is usually better
to batch together items to send via `feed` or `send_all`,
rather than flushing between each item.**
futures-util/src/sink/mod.rs