use futures_core::stream::Stream;
use crate::{FusedMultipartWrite, MultipartWrite};
mod complete_with;
pub use complete_with::CompleteWith;
mod try_complete_when;
pub use try_complete_when::TryCompleteWhen;
impl<St: Stream> MultipartStreamExt for St {}
pub trait MultipartStreamExt: Stream {
fn complete_with<Wr>(self, writer: Wr) -> CompleteWith<Self, Wr>
where
Wr: MultipartWrite<Self::Item>,
Self: Sized,
{
CompleteWith::new(self, writer)
}
fn try_complete_when<Wr, F>(
self,
writer: Wr,
f: F,
) -> TryCompleteWhen<Self, Wr, F>
where
Wr: FusedMultipartWrite<Self::Item>,
F: FnMut(Wr::Recv) -> bool,
Self: Sized,
{
TryCompleteWhen::new(self, writer, f)
}
}