vpncloud/src/util.rs

13 lines
323 B
Rust
Raw Normal View History

2015-11-19 18:29:42 +00:00
use std::{mem, slice};
2015-11-20 12:34:54 +00:00
#[inline(always)]
2015-11-19 18:29:42 +00:00
pub unsafe fn as_bytes<T>(obj: &T) -> &[u8] {
slice::from_raw_parts(mem::transmute::<&T, *const u8>(obj), mem::size_of::<T>())
}
2015-11-20 12:34:54 +00:00
#[inline(always)]
2015-11-19 18:29:42 +00:00
pub unsafe fn as_obj<T>(data: &[u8]) -> &T {
assert!(data.len() >= mem::size_of::<T>());
mem::transmute(data.as_ptr())
}