pub trait SocketPacketReading: SocketOperation + BufferPooling {
// Required methods
fn socket_packet_reader<'scheduler>(
&'scheduler self,
socket: &Self::Socket,
) -> Result<impl SocketPacketReader<Message: SocketRecvMessageMut<Payload = <Self::Pool as BufferPool>::Buffer>> + 'scheduler>
where Self: Sized,
Self::Socket: 'static;
fn socket_packet_reader_with_pool<'scheduler>(
&'scheduler self,
socket: &Self::Socket,
pool: Self::Pool,
) -> Result<impl SocketPacketReader<Message: SocketRecvMessageMut<Payload = <Self::Pool as BufferPool>::Buffer>> + 'scheduler>
where Self: Sized,
Self::Socket: 'static;
}Expand description
Construct sequential packet input bound to this scheduler. Backends choose the static reader and completed message representation without exposing their receive mechanism.
Required Methods§
Sourcefn socket_packet_reader<'scheduler>(
&'scheduler self,
socket: &Self::Socket,
) -> Result<impl SocketPacketReader<Message: SocketRecvMessageMut<Payload = <Self::Pool as BufferPool>::Buffer>> + 'scheduler>
fn socket_packet_reader<'scheduler>( &'scheduler self, socket: &Self::Socket, ) -> Result<impl SocketPacketReader<Message: SocketRecvMessageMut<Payload = <Self::Pool as BufferPool>::Buffer>> + 'scheduler>
Retain the socket and reusable backend state without submitting a receive or allocating a payload pool. Owned reads initialize default storage lazily.
Sourcefn socket_packet_reader_with_pool<'scheduler>(
&'scheduler self,
socket: &Self::Socket,
pool: Self::Pool,
) -> Result<impl SocketPacketReader<Message: SocketRecvMessageMut<Payload = <Self::Pool as BufferPool>::Buffer>> + 'scheduler>
fn socket_packet_reader_with_pool<'scheduler>( &'scheduler self, socket: &Self::Socket, pool: Self::Pool, ) -> Result<impl SocketPacketReader<Message: SocketRecvMessageMut<Payload = <Self::Pool as BufferPool>::Buffer>> + 'scheduler>
Construct a reader using the supplied pool for owned messages. Borrowed reads do not acquire pool storage; completed messages retain their pool independently.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".