mod common_data;
mod event_record;
mod parse_info;
mod registers;
mod sample;
mod thread_map;
use byteorder::ByteOrder;
pub use common_data::*;
pub use event_record::*;
pub use parse_info::*;
pub use registers::*;
pub use sample::*;
pub use thread_map::*;
use crate::{RawData, RecordType};
pub fn get_record_event_identifier<T: ByteOrder>(
record_type: RecordType,
mut data: RawData,
sample_id_all: bool,
) -> Option<u64> {
if record_type.is_user_type() {
None
} else if record_type == RecordType::SAMPLE {
data.read_u64::<T>().ok()
} else if sample_id_all {
let id_offset_from_start = data.len().checked_sub(8)?;
data.skip(id_offset_from_start).ok()?;
data.read_u64::<T>().ok()
} else {
None
}
}