pub trait SocketStreamWriting: SocketOperation + BufferPooling {
// Required methods
fn socket_stream_writer<'scheduler>(
&'scheduler self,
socket: &Self::Socket,
) -> Result<impl SocketStreamWriter<Buffer = <Self::Pool as BufferPool>::Buffer> + 'scheduler + use<'scheduler, Self>>
where Self::Socket: 'static;
fn socket_stream_writer_with_buffer<'scheduler, B: IoBuf>(
&'scheduler self,
socket: &Self::Socket,
) -> Result<impl SocketStreamWriter<Buffer = B> + 'scheduler + use<'scheduler, B, Self>>
where Self::Socket: 'static;
}Expand description
Construct sequential stream output bound to this scheduler. Backends select a static writer without requiring protocols to choose registration or output-progress mechanisms. Construction performs no writes and rejects non-stream sockets.
The returned handle may borrow the scheduler, but never the temporary socket reference. It retains backend access independently, so the socket and handle can move together. Retire and drop handles before exclusively closing the socket.
Required Methods§
Sourcefn socket_stream_writer<'scheduler>(
&'scheduler self,
socket: &Self::Socket,
) -> Result<impl SocketStreamWriter<Buffer = <Self::Pool as BufferPool>::Buffer> + 'scheduler + use<'scheduler, Self>>where
Self::Socket: 'static,
fn socket_stream_writer<'scheduler>(
&'scheduler self,
socket: &Self::Socket,
) -> Result<impl SocketStreamWriter<Buffer = <Self::Pool as BufferPool>::Buffer> + 'scheduler + use<'scheduler, Self>>where
Self::Socket: 'static,
Retain the socket and reusable backend state. Owned submissions accept this scheduler’s pooled chunks, so the default reader and writer compose without choosing a buffer representation. Borrowed writes do not allocate a payload pool. Subsequent operations take only payloads and cancellation, never another scheduler.
Sourcefn socket_stream_writer_with_buffer<'scheduler, B: IoBuf>(
&'scheduler self,
socket: &Self::Socket,
) -> Result<impl SocketStreamWriter<Buffer = B> + 'scheduler + use<'scheduler, B, Self>>where
Self::Socket: 'static,
fn socket_stream_writer_with_buffer<'scheduler, B: IoBuf>(
&'scheduler self,
socket: &Self::Socket,
) -> Result<impl SocketStreamWriter<Buffer = B> + 'scheduler + use<'scheduler, B, Self>>where
Self::Socket: 'static,
Select another stable owner type, such as Vec<u8> or an application lease. This changes storage compatibility, not the writer’s ordering or backend execution strategy.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".