pub struct RawDataElementView<'a> {
pub offset: u64,
pub header: RecordHeader,
pub raw_data: &'a [u8],
pub byte_order: ByteOrder,
}Expand description
Element yielded by RawDataViewIter. Unlike RawDataElement,
it borrows the unprocessed record bytes from the iterator’s reused buffer, so it’s only valid
until the next call to RawDataViewIter::next.
In return, it offers better performance and a lower heap footprint.
It can be converted to StdfRecord, borrowed as StdfRecordView, or copied into an owned
RawDataElement when it needs to outlive the current iteration scope.
use rust_stdf::{RawDataElementView, ByteOrder, StdfRecord, RecordHeader, stdf_record_type::REC_FAR};
let raw = [0u8; 0];
let rdv = RawDataElementView {
offset: 0,
header: RecordHeader {typ: 0, sub: 10, len: 2},
raw_data: &raw,
byte_order: ByteOrder::LittleEndian
};
let rec: StdfRecord = (&rdv).into();
println!("{:?}", rec);
assert!(rec.is_type(REC_FAR));Fields§
§offset: u64file offset of raw_data in file,
after header.len and before raw_data
|-typ-|-sub-|–len–⬇️–raw..data–|
note that the offset is relative to the
file position that runs get_rawdata_view_iter,
it can be treated as file position only if the iteration starts from beginning of the file.
header: RecordHeaderused for identifying StdfRecord types
raw_data: &'a [u8]field data of current STDF Record, borrowed from the iterator’s reused buffer
byte_order: ByteOrderImplementations§
Trait Implementations§
Source§impl<'a> Clone for RawDataElementView<'a>
impl<'a> Clone for RawDataElementView<'a>
Source§fn clone(&self) -> RawDataElementView<'a>
fn clone(&self) -> RawDataElementView<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl<'a> Copy for RawDataElementView<'a>
Source§impl<'a> Debug for RawDataElementView<'a>
impl<'a> Debug for RawDataElementView<'a>
impl<'a> Eq for RawDataElementView<'a>
Source§impl From<&RawDataElementView<'_>> for StdfRecord
impl From<&RawDataElementView<'_>> for StdfRecord
Source§fn from(raw_view: &RawDataElementView<'_>) -> Self
fn from(raw_view: &RawDataElementView<'_>) -> Self
Parse the borrowed bytes into an owned record; does not consume the input.
Source§impl From<&RawDataElementView<'_>> for RawDataElement
impl From<&RawDataElementView<'_>> for RawDataElement
Source§fn from(raw_view: &RawDataElementView<'_>) -> Self
fn from(raw_view: &RawDataElementView<'_>) -> Self
Copy the borrowed bytes into an owned RawDataElement; does not consume the input.
Source§impl<'a> From<&RawDataElementView<'a>> for StdfRecordView<'a>
impl<'a> From<&RawDataElementView<'a>> for StdfRecordView<'a>
Source§fn from(raw_view: &RawDataElementView<'a>) -> Self
fn from(raw_view: &RawDataElementView<'a>) -> Self
Build a zero-copy view; does not consume the input.