Struct smoldot_light::platform::with_buffers::WithBuffers
source · pub struct WithBuffers<TSocketFut, TSocket, TNow> { /* private fields */ }
Expand description
Holds an implementation of AsyncRead
and AsyncWrite
, alongside with a read buffer and a
write buffer.
Implementations§
source§impl<TSocketFut, TSocket, TNow> WithBuffers<TSocketFut, TSocket, TNow>
impl<TSocketFut, TSocket, TNow> WithBuffers<TSocketFut, TSocket, TNow>
sourcepub fn new(socket: TSocketFut) -> WithBuffers<TSocketFut, TSocket, TNow>
pub fn new(socket: TSocketFut) -> WithBuffers<TSocketFut, TSocket, TNow>
Initializes a new WithBuffers
with the given socket-yielding future.
sourcepub fn read_write_access(
self: Pin<&mut WithBuffers<TSocketFut, TSocket, TNow>>,
now: TNow,
) -> Result<ReadWriteAccess<'_, TNow>, &Error>
pub fn read_write_access( self: Pin<&mut WithBuffers<TSocketFut, TSocket, TNow>>, now: TNow, ) -> Result<ReadWriteAccess<'_, TNow>, &Error>
Returns an object that implements Deref<Target = ReadWrite>
. This object can be used
to push or pull data to/from the socket.
Note: The parameter requires
Self
to be pinned for consistency withWithBuffers::wait_read_write_again
.
source§impl<TSocketFut, TSocket, TNow> WithBuffers<TSocketFut, TSocket, TNow>
impl<TSocketFut, TSocket, TNow> WithBuffers<TSocketFut, TSocket, TNow>
sourcepub async fn wait_read_write_again<F>(
self: Pin<&mut WithBuffers<TSocketFut, TSocket, TNow>>,
timer_builder: impl FnOnce(TNow) -> F,
)
pub async fn wait_read_write_again<F>( self: Pin<&mut WithBuffers<TSocketFut, TSocket, TNow>>, timer_builder: impl FnOnce(TNow) -> F, )
Waits until WithBuffers::read_write_access
should be called again.
Returns immediately if WithBuffers::read_write_access
has never been called.
Returns if an error happens on the socket. If an error happened in the past on the socket, the future never yields.
Trait Implementations§
source§impl<TSocketFut, TSocket, TNow> Debug for WithBuffers<TSocketFut, TSocket, TNow>where
TSocket: Debug,
impl<TSocketFut, TSocket, TNow> Debug for WithBuffers<TSocketFut, TSocket, TNow>where
TSocket: Debug,
impl<'pin, TSocketFut, TSocket, TNow> Unpin for WithBuffers<TSocketFut, TSocket, TNow>where
<PinnedFieldsOfHelperStruct<__WithBuffers<'pin, TSocketFut, TSocket, TNow>> as PinnedFieldsOfHelperTrait>::Actual: Unpin,
Auto Trait Implementations§
impl<TSocketFut, TSocket, TNow> Freeze for WithBuffers<TSocketFut, TSocket, TNow>
impl<TSocketFut, TSocket, TNow> !RefUnwindSafe for WithBuffers<TSocketFut, TSocket, TNow>
impl<TSocketFut, TSocket, TNow> Send for WithBuffers<TSocketFut, TSocket, TNow>
impl<TSocketFut, TSocket, TNow> Sync for WithBuffers<TSocketFut, TSocket, TNow>
impl<TSocketFut, TSocket, TNow> !UnwindSafe for WithBuffers<TSocketFut, TSocket, TNow>
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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
.§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
.§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.§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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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