pub trait PollableInputStreamExtManual: Sized {
// 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>>;
fn read_nonblocking<C: IsA<Cancellable>>(
&self,
buffer: &mut [u8],
cancellable: Option<&C>
) -> Result<isize, Error>;
// Provided method
fn into_async_read(self) -> Result<InputStreamAsyncRead<Self>, Self>
where Self: IsA<PollableInputStream> { ... }
}