Trait bin_buffer::Bufferable
source · 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
sourcefn into_buffer(self, vec: &mut Buffer)
fn into_buffer(self, vec: &mut Buffer)
Consume yourself and add to the end of the buffer
sourcefn copy_into_buffer(&self, vec: &mut Buffer)
fn copy_into_buffer(&self, vec: &mut Buffer)
Copy yourself and add to the end of the buffer.
sourcefn from_buffer(buf: &mut ReadBuffer) -> Option<Self>
fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>
Read object from buffer
Implementations on Foreign Types
sourceimpl Bufferable for u64
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);
fn into_buffer(self, vec: &mut Buffer)
fn copy_into_buffer(&self, vec: &mut Buffer)
fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>
sourceimpl Bufferable for usize
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);
fn into_buffer(self, vec: &mut Buffer)
fn copy_into_buffer(&self, vec: &mut Buffer)
fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>
sourceimpl Bufferable for u32
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);
fn into_buffer(self, vec: &mut Buffer)
fn copy_into_buffer(&self, vec: &mut Buffer)
fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>
sourceimpl Bufferable for u16
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);
fn into_buffer(self, vec: &mut Buffer)
fn copy_into_buffer(&self, vec: &mut Buffer)
fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>
sourceimpl Bufferable for u8
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);
fn into_buffer(self, vec: &mut Buffer)
fn copy_into_buffer(&self, vec: &mut Buffer)
fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>
sourceimpl Bufferable for f64
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);
fn into_buffer(self, vec: &mut Buffer)
fn copy_into_buffer(&self, vec: &mut Buffer)
fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>
sourceimpl Bufferable for f32
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);
fn into_buffer(self, vec: &mut Buffer)
fn copy_into_buffer(&self, vec: &mut Buffer)
fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>
sourceimpl Bufferable for String
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);
fn into_buffer(self, vec: &mut Buffer)
fn copy_into_buffer(&self, vec: &mut Buffer)
fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>
sourceimpl<T: Bufferable + Clone> Bufferable for Vec<T>
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);
fn into_buffer(self, buf: &mut Buffer)
fn copy_into_buffer(&self, buf: &mut Buffer)
fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>
sourceimpl<U: Bufferable + Clone, V: Bufferable + Clone> Bufferable for (U, V)
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);
fn into_buffer(self, buf: &mut Buffer)
fn copy_into_buffer(&self, buf: &mut Buffer)
fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>
sourceimpl<U: Bufferable + Clone, V: Bufferable + Clone, W: Bufferable + Clone> Bufferable for (U, V, W)
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);
fn into_buffer(self, buf: &mut Buffer)
fn copy_into_buffer(&self, buf: &mut Buffer)
fn from_buffer(buf: &mut ReadBuffer) -> Option<Self>
sourceimpl<U: Bufferable + Clone, V: Bufferable + Clone, W: Bufferable + Clone, X: Bufferable + Clone> Bufferable for (U, V, W, X)
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);