[−][src]Struct futures_core::stream::LocalStreamObj
A custom trait object for polling streams, roughly akin to
Box<dyn Stream<Item = T> + '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 arbitrary self types for more information #44874)
Methods
impl<'a, T> LocalStreamObj<'a, T>
[src]
[−]
impl<'a, T> LocalStreamObj<'a, T>
pub fn new<F: UnsafeStreamObj<'a, T> + 'a>(f: F) -> LocalStreamObj<'a, T>
[src]
[−]
pub fn new<F: UnsafeStreamObj<'a, T> + 'a>(f: F) -> LocalStreamObj<'a, T>
Create a LocalStreamObj
from a custom trait object representation.
pub unsafe fn into_stream_obj(self) -> StreamObj<'a, T>
[src]
[−]
pub unsafe fn into_stream_obj(self) -> StreamObj<'a, T>
Converts the LocalStreamObj
into a StreamObj
To make this operation safe one has to ensure that the UnsafeStreamObj
instance from which this LocalStreamObj
was created actually
implements Send
.
Trait Implementations
impl<'a, T> Unpin for LocalStreamObj<'a, T>
[src]
impl<'a, T> Unpin for LocalStreamObj<'a, T>
impl<'a, T> Debug for LocalStreamObj<'a, T>
[src]
[+]
impl<'a, T> Debug for LocalStreamObj<'a, T>
impl<'a, T> From<StreamObj<'a, T>> for LocalStreamObj<'a, T>
[src]
[+]
impl<'a, T> From<StreamObj<'a, T>> for LocalStreamObj<'a, T>
impl<'a, T> Stream for LocalStreamObj<'a, T>
[src]
[+]
impl<'a, T> Stream for LocalStreamObj<'a, T>
impl<'a, T> Drop for LocalStreamObj<'a, T>
[src]
[+]
impl<'a, T> Drop for LocalStreamObj<'a, T>
impl<'a, F: Stream<Item = ()> + 'a> From<PinBox<F>> for LocalStreamObj<'a, ()>
[src]
[+]
impl<'a, F: Stream<Item = ()> + 'a> From<PinBox<F>> for LocalStreamObj<'a, ()>
impl<'a, F: Stream<Item = ()> + 'a> From<Box<F>> for LocalStreamObj<'a, ()>
[src]
[+]
impl<'a, F: Stream<Item = ()> + 'a> From<Box<F>> for LocalStreamObj<'a, ()>
Auto Trait Implementations
impl<'a, T> !Send for LocalStreamObj<'a, T>
impl<'a, T> !Send for LocalStreamObj<'a, T>
impl<'a, T> !Sync for LocalStreamObj<'a, T>
impl<'a, T> !Sync for LocalStreamObj<'a, T>
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>>,
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>,
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
[+]
impl<T, U> TryInto for T where
U: TryFrom<T>,
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,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
[+]
impl<T> BorrowMut for T where
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
[+]
impl<T> Any for T where
T: 'static + ?Sized,