[−][src]Function abomonation::encode
pub unsafe fn encode<T: Abomonation, W: Write>(
typed: &T,
write: &mut W
) -> IOResult<()>
Encodes a typed reference into a binary buffer.
Safety
This method is unsafe because it is unsafe to transmute typed allocations to binary.
Furthermore, Rust currently indicates that it is undefined behavior to observe padding
bytes, which will happen when we memmcpy
structs which contain padding bytes.
Examples
use abomonation::{encode, decode}; // create some test data out of abomonation-approved types let vector = (0..256u64).map(|i| (i, format!("{}", i))) .collect::<Vec<_>>(); // encode a Vec<(u64, String)> into a Vec<u8> let mut bytes = Vec::new(); unsafe { encode(&vector, &mut bytes); } // decode a &Vec<(u64, String)> from &mut [u8] binary data if let Some((result, remaining)) = unsafe { decode::<Vec<(u64, String)>>(&mut bytes) } { assert!(result == &vector); assert!(remaining.len() == 0); }