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 lower heap footprints.
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>
impl<'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.