Struct symbolic_common::ByteView [−][src]
pub struct ByteView<'a> { /* fields omitted */ }
Expand description
A smart pointer for byte data.
This type can be used to uniformly access bytes that were created either from mmapping in a
path, a vector or a borrowed slice. A ByteView
dereferences into a &[u8]
and guarantees
random access to the underlying buffer or file.
A ByteView
can be constructed from borrowed slices, vectors or memory mapped from the file
system directly.
Example
The most common way to use ByteView
is to construct it from a file handle. This will own the
underlying file handle until the ByteView
is dropped:
use std::io::Write; use symbolic_common::ByteView; fn main() -> Result<(), std::io::Error> { let mut file = tempfile::tempfile()?; file.write_all(b"1234"); let view = ByteView::map_file(file)?; assert_eq!(view.as_slice(), b"1234"); Ok(()) }
Implementations
Constructs a ByteView
from a Cow
.
Example
use std::borrow::Cow; use symbolic_common::ByteView; let cow = Cow::Borrowed(&b"1234"[..]); let view = ByteView::from_cow(cow);
Constructs a ByteView
from a byte slice.
Example
use symbolic_common::ByteView; let view = ByteView::from_slice(b"1234");
Constructs a ByteView
from a vector of bytes.
Example
use symbolic_common::ByteView; let vec = b"1234".to_vec(); let view = ByteView::from_vec(vec);
Constructs a ByteView
from an open file handle by memory mapping the file.
Example
use std::io::Write; use symbolic_common::ByteView; fn main() -> Result<(), std::io::Error> { let mut file = tempfile::tempfile()?; let view = ByteView::map_file(file)?; Ok(()) }
Constructs a ByteView
from any std::io::Reader
.
Note: This currently consumes the entire reader and stores its data in an internal
buffer. Prefer open
when reading from the file system or from_slice
/ from_vec
for in-memory operations. This behavior might change in the future.
Example
use std::io::Cursor; use symbolic_common::ByteView; fn main() -> Result<(), std::io::Error> { let reader = Cursor::new(b"1234"); let view = ByteView::read(reader)?; Ok(()) }
Constructs a ByteView
from a file path by memory mapping the file.
Example
use symbolic_common::ByteView; fn main() -> Result<(), std::io::Error> { let view = ByteView::open("test.txt")?; Ok(()) }
Trait Implementations
Auto Trait Implementations
impl<'a> RefUnwindSafe for ByteView<'a>
impl<'a> UnwindSafe for ByteView<'a>
Blanket Implementations
Mutably borrows from an owned value. Read more