diff options
Diffstat (limited to 'src/file_reference.rs')
-rw-r--r-- | src/file_reference.rs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/file_reference.rs b/src/file_reference.rs index 337d7c5..aa18764 100644 --- a/src/file_reference.rs +++ b/src/file_reference.rs @@ -1,21 +1,22 @@ // Copyright 2021 Colin Finck <colin@reactos.org> // SPDX-License-Identifier: GPL-2.0-or-later +use binread::io::{Read, Seek}; use binread::BinRead; -#[derive(BinRead, Clone, Debug)] -pub struct NtfsFileReference(u64); +#[derive(BinRead, Clone, Copy, Debug)] +pub struct NtfsFileReference([u8; 8]); impl NtfsFileReference { - pub(crate) const fn new(file_reference_data: u64) -> Self { - Self(file_reference_data) + pub(crate) const fn new(file_reference_bytes: [u8; 8]) -> Self { + Self(file_reference_bytes) } pub fn file_record_number(&self) -> u64 { - self.0 >> 16 + u64::from_le_bytes(self.0) & 0xffff_ffff_ffff } pub fn sequence_number(&self) -> u16 { - self.0 as u16 + (u64::from_le_bytes(self.0) >> 48) as u16 } } |