pub struct MemBufferReader<'a> { /* private fields */ }
Expand description
The reader which is used for reading the memory area produced by the writer, Important notice: The reader uses the native endian of the system used therefore sending between big endian and little endian systems wont work
use membuffer::{MemBufferWriter,MemBufferReader};
let mut data = MemBufferWriter::new();
data.add_entry("Add some data to save to file or send over the network");
let data_vec = data.finalize();
let reader = MemBufferReader::new(&data_vec).unwrap();
assert_eq!(reader.load_entry::<&str>(0).unwrap(),"Add some data to save to file or send over the network");
Implementations§
Source§impl<'a> MemBufferReader<'a>
impl<'a> MemBufferReader<'a>
Sourcepub fn deserialize_i32_from(buffer: &[u8]) -> i32
pub fn deserialize_i32_from(buffer: &[u8]) -> i32
Deserialize data from a buffer to an i32 integer
pub fn len(&self) -> usize
pub fn payload_len(&self) -> usize
Sourcepub fn load_entry<X: MemBufferDeserialize<'a, X> + MemBufferSerialize>(
&self,
key: usize,
) -> Result<X, MemBufferError>
pub fn load_entry<X: MemBufferDeserialize<'a, X> + MemBufferSerialize>( &self, key: usize, ) -> Result<X, MemBufferError>
Load one entry with the given type, expecting the serializable trait as well to determine the integer type, when doing polymorphismus of structures use the same integer for multiple types
Sourcepub fn load_serde_entry<T: Deserialize<'a>>(
&self,
key: usize,
) -> Result<T, MemBufferError>
pub fn load_serde_entry<T: Deserialize<'a>>( &self, key: usize, ) -> Result<T, MemBufferError>
Loads an entry stored with serde_json and returns it.
Sourcepub fn load_recursive_reader(
&self,
key: usize,
) -> Result<MemBufferReader<'a>, MemBufferError>
pub fn load_recursive_reader( &self, key: usize, ) -> Result<MemBufferReader<'a>, MemBufferError>
Loads a nested MembufferWriter as reader
Sourcepub fn new(val: &'a [u8]) -> Result<MemBufferReader<'a>, MemBufferError>
pub fn new(val: &'a [u8]) -> Result<MemBufferReader<'a>, MemBufferError>
Creates a new memory format reader from the given memory slice, as the readed values are borrowed from the memory slice the reader cannot outlive the memory it borrows from
Trait Implementations§
Source§impl<'a> Debug for MemBufferReader<'a>
impl<'a> Debug for MemBufferReader<'a>
Source§impl<'a> MemBufferDeserialize<'a, MemBufferReader<'a>> for MemBufferReader<'a>
impl<'a> MemBufferDeserialize<'a, MemBufferReader<'a>> for MemBufferReader<'a>
fn from_mem_buffer( pos: &Position, mem: &'a [u8], ) -> Result<MemBufferReader<'a>, MemBufferError>
Auto Trait Implementations§
impl<'a> Freeze for MemBufferReader<'a>
impl<'a> RefUnwindSafe for MemBufferReader<'a>
impl<'a> Send for MemBufferReader<'a>
impl<'a> Sync for MemBufferReader<'a>
impl<'a> Unpin for MemBufferReader<'a>
impl<'a> UnwindSafe for MemBufferReader<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more