pub struct Async<'l, F>where
F: AsFd,{ /* private fields */ }
Expand description
Adapter for async IO manipulations
This type wraps an IO object, providing methods to create futures waiting for its readiness.
If the futures-io
cargo feature is enabled, it also implements AsyncRead
and/or
AsyncWrite
if the underlying type implements Read
and/or Write
.
Note that this adapter and the futures procuded from it and not threadsafe.
§Platform-Specific
- Windows: Usually, on drop, the file descriptor is set back to its previous status. For example, if the file was previously nonblocking it will be set to nonblocking, and if the file was blocking it will be set to blocking. However, on Windows, it is impossible to tell what its status was before. Therefore it will always be set to blocking.
Implementations§
Source§impl<'l, F> Async<'l, F>where
F: AsFd,
impl<'l, F> Async<'l, F>where
F: AsFd,
Sourcepub fn readable<'s>(&'s mut self) -> Readable<'s, 'l, F> ⓘ
pub fn readable<'s>(&'s mut self) -> Readable<'s, 'l, F> ⓘ
A future that resolves once the object becomes ready for reading
Sourcepub fn writable<'s>(&'s mut self) -> Writable<'s, 'l, F> ⓘ
pub fn writable<'s>(&'s mut self) -> Writable<'s, 'l, F> ⓘ
A future that resolves once the object becomes ready for writing
Sourcepub fn into_inner(self) -> F
pub fn into_inner(self) -> F
Remove the async adapter and retrieve the underlying object
Trait Implementations§
impl<'l, F> Unpin for Async<'l, F>where
F: AsFd,
Auto Trait Implementations§
impl<'l, F> Freeze for Async<'l, F>where
F: Freeze,
impl<'l, F> !RefUnwindSafe for Async<'l, F>
impl<'l, F> !Send for Async<'l, F>
impl<'l, F> !Sync for Async<'l, F>
impl<'l, F> !UnwindSafe for Async<'l, F>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more