Bufferable

Trait Bufferable 

Source
pub trait Bufferable
where Self: Sized,
{ // Required methods fn into_buffer(self, vec: &mut Buffer); fn copy_into_buffer(&self, vec: &mut Buffer); fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>; }
Expand description

Object can be read and written to a Buffer

Required Methods§

Source

fn into_buffer(self, vec: &mut Buffer)

Consume yourself and add to the end of the buffer

Source

fn copy_into_buffer(&self, vec: &mut Buffer)

Copy yourself and add to the end of the buffer.

Source

fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>

Read object from buffer

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 Bufferable for f32

Implements Bufferable for f32.

§Example

use bin_buffer::*;
let x = 1.001f32;
let mut buffer = Vec::new();
x.into_buffer(&mut buffer);
let mut buffer = ReadBuffer::from_raw(buffer);
let y = f32::from_buffer(&mut buffer);
Source§

fn into_buffer(self, vec: &mut Buffer)

Source§

fn copy_into_buffer(&self, vec: &mut Buffer)

Source§

fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>

Source§

impl Bufferable for f64

Implements Bufferable for f64.

§Example

use bin_buffer::*;
let x = 1.001f64;
let mut buffer = Vec::new();
x.into_buffer(&mut buffer);
let mut buffer = ReadBuffer::from_raw(buffer);
let y = f64::from_buffer(&mut buffer);
Source§

fn into_buffer(self, vec: &mut Buffer)

Source§

fn copy_into_buffer(&self, vec: &mut Buffer)

Source§

fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>

Source§

impl Bufferable for u8

Implements Bufferable for u8.

§Example

use bin_buffer::*;
let x = 1u8;
let mut buffer = Vec::new();
x.into_buffer(&mut buffer);
let mut buffer = ReadBuffer::from_raw(buffer);
let y = u8::from_buffer(&mut buffer);
Source§

fn into_buffer(self, vec: &mut Buffer)

Source§

fn copy_into_buffer(&self, vec: &mut Buffer)

Source§

fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>

Source§

impl Bufferable for u16

Implements Bufferable for u16.

§Example

use bin_buffer::*;
let x = 31u16;
let mut buffer = Vec::new();
x.into_buffer(&mut buffer);
let mut buffer = ReadBuffer::from_raw(buffer);
let y = u16::from_buffer(&mut buffer);
Source§

fn into_buffer(self, vec: &mut Buffer)

Source§

fn copy_into_buffer(&self, vec: &mut Buffer)

Source§

fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>

Source§

impl Bufferable for u32

Implements Bufferable for u32.

§Example

use bin_buffer::*;
let x = 71u32;
let mut buffer = Vec::new();
x.into_buffer(&mut buffer);
let mut buffer = ReadBuffer::from_raw(buffer);
let y = u32::from_buffer(&mut buffer);
Source§

fn into_buffer(self, vec: &mut Buffer)

Source§

fn copy_into_buffer(&self, vec: &mut Buffer)

Source§

fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>

Source§

impl Bufferable for u64

Implements Bufferable for u64.

§Example

use bin_buffer::*;
let x = 81234u64;
let mut buffer = Vec::new();
x.into_buffer(&mut buffer);
let mut buffer = ReadBuffer::from_raw(buffer);
let y = u64::from_buffer(&mut buffer);
Source§

fn into_buffer(self, vec: &mut Buffer)

Source§

fn copy_into_buffer(&self, vec: &mut Buffer)

Source§

fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>

Source§

impl Bufferable for usize

Implements Bufferable for usize. Only for 64 bit.

§Example

use bin_buffer::*;
let x = 81234usize;
let mut buffer = Vec::new();
x.into_buffer(&mut buffer);
let mut buffer = ReadBuffer::from_raw(buffer);
let y = usize::from_buffer(&mut buffer);
Source§

fn into_buffer(self, vec: &mut Buffer)

Source§

fn copy_into_buffer(&self, vec: &mut Buffer)

Source§

fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>

Source§

impl Bufferable for String

Implements Bufferable for String.

§Example

use bin_buffer::*;
let x = String::from("cool and good");
let mut buffer = Vec::new();
x.copy_into_buffer(&mut buffer);
let mut buffer = ReadBuffer::from_raw(buffer);
let y = String::from_buffer(&mut buffer);
Source§

fn into_buffer(self, vec: &mut Buffer)

Source§

fn copy_into_buffer(&self, vec: &mut Buffer)

Source§

fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>

Source§

impl<T: Bufferable + Clone> Bufferable for Vec<T>

Implements Bufferable for Vec<Bufferable + Clone>

§Example

use bin_buffer::*;
let x = vec![0.0f32,1.0,2.0,3.0,4.0,5.5];
let mut buffer = Vec::new();
x.copy_into_buffer(&mut buffer);
let mut buffer = ReadBuffer::from_raw(buffer);
let y = Vec::<f32>::from_buffer(&mut buffer);
Source§

fn into_buffer(self, buf: &mut Buffer)

Source§

fn copy_into_buffer(&self, buf: &mut Buffer)

Source§

fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>

Source§

impl<U: Bufferable + Clone, V: Bufferable + Clone> Bufferable for (U, V)

Implements Bufferable for tuples where all U,V are Bufferable and Clone.

§Example

use bin_buffer::*;
let x = (0.0f64,-12345.4321f64);
let mut buffer = Vec::new();
x.into_buffer(&mut buffer);
let mut buffer = ReadBuffer::from_raw(buffer);
let y =  <(f64,f64)>::from_buffer(&mut buffer);
Source§

fn into_buffer(self, buf: &mut Buffer)

Source§

fn copy_into_buffer(&self, buf: &mut Buffer)

Source§

fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>

Source§

impl<U: Bufferable + Clone, V: Bufferable + Clone, W: Bufferable + Clone> Bufferable for (U, V, W)

Implements Bufferable for tuples (U,V,W) where all U,V,W are Bufferable and Clone.

§Example

use bin_buffer::*;
let x = (0.0f64,-12345.4321f64,9999.0f64);
let mut buffer = Vec::new();
x.into_buffer(&mut buffer);
let mut buffer = ReadBuffer::from_raw(buffer);
let y= <(f64,f64,f64)>::from_buffer(&mut buffer);
Source§

fn into_buffer(self, buf: &mut Buffer)

Source§

fn copy_into_buffer(&self, buf: &mut Buffer)

Source§

fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>

Source§

impl<U: Bufferable + Clone, V: Bufferable + Clone, W: Bufferable + Clone, X: Bufferable + Clone> Bufferable for (U, V, W, X)

Implements Bufferable for tuples (U,V,W,X) where all U,V,W,X are Bufferable and Clone.

§Example

use bin_buffer::*;
let x = (0.064,-12345.4321,9999.0,-999.0);
let mut buffer = Vec::new();
x.into_buffer(&mut buffer);
let mut buffer = ReadBuffer::from_raw(buffer);
let y= <(f64,f64,f64,f64)>::from_buffer(&mut buffer);
Source§

fn into_buffer(self, buf: &mut Buffer)

Source§

fn copy_into_buffer(&self, buf: &mut Buffer)

Source§

fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>

Implementors§