pub enum SharedBytes {
Mmap(Arc<Mmap>),
Owned(Arc<Vec<u8>>),
}Expand description
Shared byte storage for zero-copy parsing with lifetime safety.
Wraps either a memory-mapped file or owned bytes in an Arc pointer, allowing multiple zero-copy references to share the same underlying storage safely without lifetime concerns.
§Variants
Mmap- Memory-mapped file (requiresmmapfeature)Owned- Owned buffer in an Arc pointer
§Examples
ⓘ
use chaintools::io::storage::SharedBytes;
// Create from owned data
let data = vec![1, 2, 3, 4, 5];
let storage = SharedBytes::from_owned(data);
// Memory-mapped file (requires mmap feature)
// let mmap_storage = SharedBytes::from_mmap(mmap);Variants§
Implementations§
Sourcepub fn as_slice(&self) -> &[u8] ⓘ
pub fn as_slice(&self) -> &[u8] ⓘ
Returns the entire buffer as a byte slice.
This provides a view into the underlying storage, whether it is a memory-mapped file or an owned vector.
§Examples
ⓘ
use chaintools::io::storage::SharedBytes;
let data = vec![10, 20, 30];
let shared_bytes = SharedBytes::from_owned(data);
assert_eq!(shared_bytes.as_slice(), &[10, 20, 30]);Sourcepub fn from_owned(data: Vec<u8>) -> Self
pub fn from_owned(data: Vec<u8>) -> Self
Creates a SharedBytes instance from an owned Vec<u8>.
The vector is wrapped in a reference-counted pointer to allow for cheap, lifetime-safe cloning and sharing.
§Examples
ⓘ
use chaintools::io::storage::SharedBytes;
let data = vec![1, 2, 3, 4, 5];
let shared_bytes = SharedBytes::from_owned(data);
assert_eq!(shared_bytes.as_slice(), &[1, 2, 3, 4, 5]);Trait Implementations§
Source§fn clone(&self) -> SharedBytes
fn clone(&self) -> SharedBytes
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
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