[−][src]Crate timely_bytes
A simplified implementation of the bytes
crate, with different features, less safety.
#Examples
use timely_bytes::rc::Bytes; let bytes = vec![0u8; 1024]; let mut shared1 = Bytes::from(bytes); let mut shared2 = shared1.extract_to(100); let mut shared3 = shared1.extract_to(100); let mut shared4 = shared2.extract_to(60); assert_eq!(shared1.len(), 824); assert_eq!(shared2.len(), 40); assert_eq!(shared3.len(), 100); assert_eq!(shared4.len(), 60); for byte in shared1.iter_mut() { *byte = 1u8; } for byte in shared2.iter_mut() { *byte = 2u8; } for byte in shared3.iter_mut() { *byte = 3u8; } for byte in shared4.iter_mut() { *byte = 4u8; } drop(shared1); drop(shared2); drop(shared3); if let Ok(bytes) = shared4.try_recover::<Vec<u8>>() { assert_eq!(bytes[200..1024].to_vec(), [1u8;824].to_vec()); assert_eq!(bytes[60..100].to_vec(), [2u8;40].to_vec()); assert_eq!(bytes[100..200].to_vec(), [3u8;100].to_vec()); assert_eq!(bytes[0..60].to_vec(), [4u8;60].to_vec()); } else { panic!("unrecoverable!"); }
Modules
arc | An |
rc | An |