Skip to main content

CuStreamRx

Trait CuStreamRx 

Source
pub trait CuStreamRx:
    Debug
    + Send
    + Sync {
    // Required method
    fn try_recv(
        &mut self,
        packet: &mut [u8],
    ) -> Result<Option<usize>, CuStreamRxError>;
}
Expand description

Nonblocking reception of complete logstream packets.

Ok(None) means no complete packet is available. Ok(Some(len)) places one complete packet in packet[..len]. This is the receive half of the one-way data plane; it does not acknowledge traffic or imply a reverse channel.

Only deliver complete packets that passed the carrier’s integrity check. Drop corrupt, truncated, or malformed frames before exposing them to FEC; corruption must become packet loss, which FEC can recover. Never deliver a partial packet. Byte-stream adapters must verify and strip their framing checksum and resynchronize after damaged frames. In-memory carriers must preserve bytes. Record digests bind reconstructed content and recovery references separately; they do not replace this carrier integrity contract.

Required Methods§

Source

fn try_recv( &mut self, packet: &mut [u8], ) -> Result<Option<usize>, CuStreamRxError>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<T: CuStreamRx + ?Sized> CuStreamRx for Box<T>

Source§

fn try_recv( &mut self, packet: &mut [u8], ) -> Result<Option<usize>, CuStreamRxError>

Implementors§