Struct Chunk

Source
pub struct Chunk {
    pub length: usize,
    pub contents: Vec<u8>,
}
Expand description

Chunk is used to respect the 65535 limit for noise protocol messages.

Payloads may be larger than this limit so we chunk them into individually encrypted payloads which then need to be re-combined after each chunk has been decrypted.

Fields§

§length: usize

Length of the payload data.

§contents: Vec<u8>

Encrypted payload.

Implementations§

Source§

impl Chunk

Source

pub fn split( payload: &[u8], transport: &mut TransportState, ) -> Result<Vec<Chunk>>

Split a payload into encrypted chunks.

Source

pub fn join( chunks: Vec<Chunk>, transport: &mut TransportState, ) -> Result<Vec<u8>>

Decrypt chunks and join into a single payload.

Trait Implementations§

Source§

impl Debug for Chunk

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Decodable for Chunk

Source§

fn decode<'life0, 'life1, 'async_trait, R>( &'life0 mut self, reader: &'life1 mut BinaryReader<R>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where R: 'async_trait + AsyncRead + AsyncSeek + Unpin + Send, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Decode from the binary reader into self.
Source§

impl Default for Chunk

Source§

fn default() -> Chunk

Returns the “default value” for a type. Read more
Source§

impl Encodable for Chunk

Source§

fn encode<'life0, 'life1, 'async_trait, W>( &'life0 self, writer: &'life1 mut BinaryWriter<W>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where W: 'async_trait + AsyncWrite + AsyncSeek + Unpin + Send, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Encode self into the binary writer.

Auto Trait Implementations§

§

impl Freeze for Chunk

§

impl RefUnwindSafe for Chunk

§

impl Send for Chunk

§

impl Sync for Chunk

§

impl Unpin for Chunk

§

impl UnwindSafe for Chunk

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.