Struct ConnectDatagram

Source
pub struct ConnectDatagram { /* private fields */ }
Expand description

A simple size-prefixed packet format containing a version tag, recipient tag, and message body.

The version tag is decided by the library version and used to maintain backwards compatibility with previous datagram formats.

Implementations§

Source§

impl ConnectDatagram

Source

pub fn new(recipient: u16, data: Vec<u8>) -> Result<Self, DatagramError>

Creates a new ConnectDatagram based on an intended recipient and message body.

The version tag is decided by the library version and used to maintain backwards compatibility with previous datagram formats.

This will return a EmptyMessage error if the data parameter contains no bytes, or in other words, when there is no message body.

This will return a TooLargeMessage error if the data parameter contains a buffer size greater than 100,000,000 (bytes), or 100MB.

Source

pub fn version(&self) -> u16

Gets the version number of the datagram.

Source

pub fn recipient(&self) -> u16

Gets the recipient of the datagram.

Source

pub fn data(&self) -> Option<&Vec<u8>>

Gets the message body of the datagram.

Source

pub fn take_data(&mut self) -> Option<Vec<u8>>

Takes ownership of the message body of the datagram.

Source

pub fn size(&self) -> usize

Calculates the size-prefixed serialized byte-size of the datagram.

This will include the byte-size of the size-prefix.

Source

pub fn encode(self) -> Vec<u8>

Serializes the datagram.

Source

pub fn decode(buffer: Vec<u8>) -> Result<Self, DatagramError>

Deserializes the datagram from a buffer.

The buffer should not contain the size-prefix, and only contain the byte contents of the struct (version, recipient, and message body).

Trait Implementations§

Source§

impl Clone for ConnectDatagram

Source§

fn clone(&self) -> ConnectDatagram

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Sink<ConnectDatagram> for ConnectionWriter

Source§

type Error = ConnectionWriteError

The type of value produced by the sink when an error occurs.
Source§

fn poll_ready( self: Pin<&mut Self>, _cx: &mut Context<'_>, ) -> Poll<Result<(), Self::Error>>

Attempts to prepare the Sink to receive a value. Read more
Source§

fn start_send( self: Pin<&mut Self>, item: ConnectDatagram, ) -> Result<(), Self::Error>

Begin the process of sending a value to the sink. Each call to this function must be preceded by a successful call to poll_ready which returned Poll::Ready(Ok(())). Read more
Source§

fn poll_flush( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<(), Self::Error>>

Flush any remaining output from this sink. Read more
Source§

fn poll_close( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<(), Self::Error>>

Flush any remaining output and close this sink, if necessary. Read more

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more