pub trait PollableOutputStreamExtManual {
// Required methods
fn create_source<F, C>(
&self,
cancellable: Option<&C>,
name: Option<&str>,
priority: Priority,
func: F
) -> Source
where F: FnMut(&Self) -> Continue + 'static,
C: IsA<Cancellable>;
fn create_source_future<C: IsA<Cancellable>>(
&self,
cancellable: Option<&C>,
priority: Priority
) -> Pin<Box<dyn Future<Output = ()> + 'static>>;
fn create_source_stream<C: IsA<Cancellable>>(
&self,
cancellable: Option<&C>,
priority: Priority
) -> Pin<Box<dyn Stream<Item = ()> + 'static>>;
// Provided method
fn into_async_write(self) -> Result<OutputStreamAsyncWrite<Self>, Self>
where Self: IsA<PollableOutputStream> { ... }
}