Struct BinaryMessage

Source
pub struct BinaryMessage {
    pub version: u8,
    pub payload_type: u8,
    pub meta: Vec<u8>,
    pub method_id: u64,
    pub iv: Vec<u8>,
    pub signature: Vec<u8>,
    pub token: Vec<u8>,
    pub payload: Vec<u8>,
    pub public_key: Vec<u8>,
    pub nonce: Vec<u8>,
    pub public_key_signature: Vec<u8>,
}
Expand description

Sends a binary message to the Volt websocket server. The websocket protocol is binary, and the message is a binary buffer that contains the following:

  • 1 byte for the protocol version
  • 2 bytes for the length of the JSON metadata (might be 0 if there is no metadata)
  • N bytes for the JSON metadata
  • 8 bytes for the method id
  • 1 byte for the length of the iv
  • N bytes for the iv
  • 1 byte for the length of the token signature (might be 0 if there is no token)
  • N bytes for the token signature
  • 2 bytes for the length of the token payload (omit if there is no token)
  • N bytes for the token payload
  • 2 bytes for the length of the public key (might be 0 if there is no public key)
  • N bytes for the public key
  • N bytes for the binary payload

All multi-byte values are in big-endian byte order.

Fields§

§version: u8§payload_type: u8§meta: Vec<u8>§method_id: u64§iv: Vec<u8>§signature: Vec<u8>§token: Vec<u8>§payload: Vec<u8>§public_key: Vec<u8>§nonce: Vec<u8>§public_key_signature: Vec<u8>

Implementations§

Source§

impl BinaryMessage

Source

pub fn new_key_exchange( method_id: u64, meta: Vec<u8>, signature: Vec<u8>, token: Vec<u8>, ) -> Self

Source

pub fn new_payload( payload_type: &u8, method_id: u64, meta: Vec<u8>, iv: Vec<u8>, payload: Vec<u8>, ) -> Self

Source

pub fn from_bytes(bytes: &[u8]) -> Self

Source

pub fn to_bytes(&self) -> Vec<u8>

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> 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.