[−][src]Struct futures_core::stream::StreamObj
pub struct StreamObj<'a, T>(_);
A custom trait object for polling streams, roughly akin to
Box<dyn Stream<Item = T> + Send + 'a>
.
This custom trait object was introduced for two reasons:
- Currently it is not possible to take
dyn Trait
by value andBox<dyn Trait>
is not available in no_std contexts. - The
Stream
trait is currently not object safe: TheStream::poll_next
method makes uses the arbitrary self types feature and traits in which this feature is used are currently not object safe due to current compiler limitations. (See tracking issue for arbitray self types for more information #44874)
Methods
impl<'a, T> StreamObj<'a, T>
[src]
impl<'a, T> StreamObj<'a, T>
pub fn new<F: UnsafeStreamObj<'a, T> + Send>(f: F) -> StreamObj<'a, T>
[src]
pub fn new<F: UnsafeStreamObj<'a, T> + Send>(f: F) -> StreamObj<'a, T>
Create a StreamObj
from a custom trait object representation.
Trait Implementations
impl<'a, T> From<StreamObj<'a, T>> for LocalStreamObj<'a, T>
[src]
impl<'a, T> From<StreamObj<'a, T>> for LocalStreamObj<'a, T>
fn from(f: StreamObj<'a, T>) -> LocalStreamObj<'a, T>
[src]
fn from(f: StreamObj<'a, T>) -> LocalStreamObj<'a, T>
Performs the conversion.
impl<'a, T> Unpin for StreamObj<'a, T>
[src]
impl<'a, T> Unpin for StreamObj<'a, T>
impl<'a, T> Send for StreamObj<'a, T>
[src]
impl<'a, T> Send for StreamObj<'a, T>
impl<'a, T> Debug for StreamObj<'a, T>
[src]
impl<'a, T> Debug for StreamObj<'a, T>
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl<'a, T> Stream for StreamObj<'a, T>
[src]
impl<'a, T> Stream for StreamObj<'a, T>
type Item = T
Values yielded by the stream.
fn poll_next(self: PinMut<Self>, cx: &mut Context) -> Poll<Option<T>>
[src]
fn poll_next(self: PinMut<Self>, cx: &mut Context) -> Poll<Option<T>>
Attempt to pull out the next value of this stream, registering the current task for wakeup if the value is not yet available, and returning None
if the stream is exhausted. Read more
impl<'a, F: Stream<Item = ()> + Send + 'a> From<PinBox<F>> for StreamObj<'a, ()>
[src]
impl<'a, F: Stream<Item = ()> + Send + 'a> From<PinBox<F>> for StreamObj<'a, ()>
impl<'a, F: Stream<Item = ()> + Send + 'a> From<Box<F>> for StreamObj<'a, ()>
[src]
impl<'a, F: Stream<Item = ()> + Send + 'a> From<Box<F>> for StreamObj<'a, ()>
Auto Trait Implementations
Blanket Implementations
impl<S, T, E> TryStream for S where
S: Stream<Item = Result<T, E>>,
[src]
impl<S, T, E> TryStream for S where
S: Stream<Item = Result<T, E>>,
type Ok = T
The type of successful values yielded by this future
type Error = E
The type of failures yielded by this future
fn try_poll_next(
PinMut<S>,
&mut Context
) -> Poll<Option<Result<<S as TryStream>::Ok, <S as TryStream>::Error>>>
[src]
fn try_poll_next(
PinMut<S>,
&mut Context
) -> Poll<Option<Result<<S as TryStream>::Ok, <S as TryStream>::Error>>>
Poll this TryStream
as if it were a Stream
. Read more
impl<T> From for T
[src]
impl<T> From for T
impl<T, U> TryFrom for T where
T: From<U>,
[src]
impl<T, U> TryFrom for T where
T: From<U>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
try_from
)Performs the conversion.
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
try_from
)Performs the conversion.
impl<T, U> Into for T where
U: From<T>,
[src]
impl<T, U> Into for T where
U: From<T>,
impl<T> Borrow for T where
T: ?Sized,
[src]
impl<T> Borrow for T where
T: ?Sized,
ⓘImportant traits for &'a mut Ifn borrow(&self) -> &T
[src]
fn borrow(&self) -> &T
Immutably borrows from an owned value. Read more
impl<T> BorrowMut for T where
T: ?Sized,
[src]
impl<T> BorrowMut for T where
T: ?Sized,
ⓘImportant traits for &'a mut Ifn borrow_mut(&mut self) -> &mut T
[src]
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Any for T where
T: 'static + ?Sized,
[src]
impl<T> Any for T where
T: 'static + ?Sized,
fn get_type_id(&self) -> TypeId
[src]
fn get_type_id(&self) -> TypeId
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static
Gets the TypeId
of self
. Read more