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