pub trait Bufferablewhere
    Self: Sized,
{ 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

Consume yourself and add to the end of the buffer

Copy yourself and add to the end of the buffer.

Read object from buffer

Implementations on Foreign Types

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);

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);

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);

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);

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);

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);

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);

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);

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);

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);

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);

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);

Implementors