iroh_blobs::util

Trait RecvStream

Source
pub trait RecvStream: Send {
    // Required methods
    fn recv_bytes(
        &mut self,
        len: usize,
    ) -> impl Future<Output = Result<Bytes>> + Send;
    fn recv_bytes_exact(
        &mut self,
        len: usize,
    ) -> impl Future<Output = Result<Bytes>> + Send;
    fn recv<const L: usize>(
        &mut self,
    ) -> impl Future<Output = Result<[u8; L]>> + Send;
    fn stop(&mut self, code: VarInt) -> Result<()>;
    fn id(&self) -> u64;
}
Expand description

An abstract iroh::endpoint::RecvStream.

Required Methods§

Source

fn recv_bytes( &mut self, len: usize, ) -> impl Future<Output = Result<Bytes>> + Send

Receive up to len bytes from the stream, directly into a Bytes.

Source

fn recv_bytes_exact( &mut self, len: usize, ) -> impl Future<Output = Result<Bytes>> + Send

Receive exactly len bytes from the stream, directly into a Bytes.

This will return an error if the stream ends before len bytes are read.

Note that this is different from recv_bytes, which will return fewer bytes if the stream ends.

Source

fn recv<const L: usize>( &mut self, ) -> impl Future<Output = Result<[u8; L]>> + Send

Receive exactly L bytes from the stream, directly into a [u8; L].

Source

fn stop(&mut self, code: VarInt) -> Result<()>

Stop the stream with the given error code.

Source

fn id(&self) -> u64

Get the stream id.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl RecvStream for Bytes

Source§

async fn recv_bytes(&mut self, len: usize) -> Result<Bytes>

Source§

async fn recv_bytes_exact(&mut self, len: usize) -> Result<Bytes>

Source§

async fn recv<const L: usize>(&mut self) -> Result<[u8; L]>

Source§

fn stop(&mut self, _code: VarInt) -> Result<()>

Source§

fn id(&self) -> u64

Source§

impl RecvStream for RecvStream

Source§

async fn recv_bytes(&mut self, len: usize) -> Result<Bytes>

Source§

async fn recv_bytes_exact(&mut self, len: usize) -> Result<Bytes>

Source§

async fn recv<const L: usize>(&mut self) -> Result<[u8; L]>

Source§

fn stop(&mut self, code: VarInt) -> Result<()>

Source§

fn id(&self) -> u64

Source§

impl<R: RecvStream> RecvStream for &mut R

Source§

async fn recv_bytes(&mut self, len: usize) -> Result<Bytes>

Source§

async fn recv_bytes_exact(&mut self, len: usize) -> Result<Bytes>

Source§

async fn recv<const L: usize>(&mut self) -> Result<[u8; L]>

Source§

fn stop(&mut self, code: VarInt) -> Result<()>

Source§

fn id(&self) -> u64

Implementors§