pub trait Bufferablewhere
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§
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
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.
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>
Source§impl Bufferable for f64
Implements 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>
Source§impl Bufferable for u8
Implements 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>
Source§impl Bufferable for u16
Implements 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>
Source§impl Bufferable for u32
Implements 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>
Source§impl Bufferable for u64
Implements 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>
Source§impl Bufferable for usize
Implements Bufferable for usize.
Only for 64 bit.
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>
Source§impl Bufferable for String
Implements 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>
Source§impl<T: Bufferable + Clone> Bufferable for Vec<T>
Implements Bufferable for Vec<Bufferable + Clone>
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>
Source§impl<U: Bufferable + Clone, V: Bufferable + Clone> Bufferable for (U, V)
Implements Bufferable for tuples where all U,V are Bufferable and Clone.
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>
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.
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>
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.
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);