pub struct BinaryHeader {
pub magic: [u8; 4],
pub version: u32,
pub n_particles: u64,
pub n_frames: u64,
pub dt: f64,
}Expand description
Binary file header for OxiPhysics trajectory files.
Layout (little-endian):
- 4 bytes : magic
- 4 bytes : version (u32)
- 8 bytes : n_particles (u64)
- 8 bytes : n_frames (u64)
- 8 bytes : dt (f64)
Fields§
§magic: [u8; 4]Magic bytes — must equal OXIPHY_MAGIC.
version: u32File format version.
n_particles: u64Number of particles per frame.
n_frames: u64Number of frames stored.
dt: f64Integration time step (seconds).
Implementations§
Source§impl BinaryHeader
impl BinaryHeader
Sourcepub fn new(n_particles: u64, n_frames: u64, dt: f64) -> Self
pub fn new(n_particles: u64, n_frames: u64, dt: f64) -> Self
Create a new header with the given parameters.
Sourcepub fn validate(&self) -> bool
pub fn validate(&self) -> bool
Validate that the magic bytes and version are recognised.
Returns true when the header looks valid.
Sourcepub fn read(buf: &[u8]) -> Option<Self>
pub fn read(buf: &[u8]) -> Option<Self>
Deserialise a header from a byte slice.
Returns None if buf is shorter than BinaryHeader::SIZE.
Trait Implementations§
Source§impl Clone for BinaryHeader
impl Clone for BinaryHeader
Source§fn clone(&self) -> BinaryHeader
fn clone(&self) -> BinaryHeader
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for BinaryHeader
impl Debug for BinaryHeader
Source§impl PartialEq for BinaryHeader
impl PartialEq for BinaryHeader
Source§fn eq(&self, other: &BinaryHeader) -> bool
fn eq(&self, other: &BinaryHeader) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for BinaryHeader
Auto Trait Implementations§
impl Freeze for BinaryHeader
impl RefUnwindSafe for BinaryHeader
impl Send for BinaryHeader
impl Sync for BinaryHeader
impl Unpin for BinaryHeader
impl UnsafeUnpin for BinaryHeader
impl UnwindSafe for BinaryHeader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.