pub struct Superblock {Show 23 fields
pub modification_time: Timedate,
pub uncompressed_size: u32,
pub number_of_summary_buckets: u32,
pub number_of_non_summary_buckets: u32,
pub number_of_bitmaps: u32,
pub rrv_bucket_size: u32,
pub data_rrv_bucket_position: u32,
pub rrv_identifier_low: u32,
pub rrv_identifier_high: u32,
pub bitmap_size: u32,
pub data_note_identifier_table_size: u32,
pub modified_note_log_size: u32,
pub folder_directory_object_size: u32,
pub flags: u16,
pub write_count: u32,
pub size: u32,
pub compression_type: u16,
pub number_of_summary_bucket_descriptor_pages: u32,
pub number_of_non_summary_bucket_descriptor_pages: u32,
pub number_of_soft_deleted_note_entries: u32,
pub shared_template_information_size: u16,
pub number_of_form_names: u16,
pub form_bitmap_size: u32,
}Expand description
Parsed superblock header. Field naming mirrors the libnsfdb struct.
Fields§
§modification_time: TimedateMost recent modification time. Used to select the freshest of the
four superblock copies via select_freshest.
uncompressed_size: u32Uncompressed size of the superblock body (when compressed).
number_of_summary_buckets: u32Total summary buckets allocated in the database.
number_of_non_summary_buckets: u32Total non-summary buckets allocated in the database.
number_of_bitmaps: u32Total bitmaps allocated in the database.
rrv_bucket_size: u32Size in bytes of each RRV bucket. Should match DBINFO’s
rrv_bucket_size; cross-validate at the database layer.
data_rrv_bucket_position: u32Data RRV bucket position in 256-byte units. Multiply by 256 for
the byte offset. Should match DBINFO’s data_rrv_bucket_position
for non-fresh templates.
rrv_identifier_low: u32Lower 32 bits of the next-available RRV identifier counter.
rrv_identifier_high: u32Upper 32 bits of the next-available RRV identifier counter.
bitmap_size: u32Allocation-bitmap size in bytes.
data_note_identifier_table_size: u32Data Note Identifier Table size in bytes.
modified_note_log_size: u32Modified-note-log size in bytes.
folder_directory_object_size: u32Folder Directory Object (FDO) size in bytes.
flags: u16Flags word.
write_count: u32Write-count counter. Increments on each superblock commit.
size: u32Total size in bytes of this superblock (header + body + footer).
compression_type: u16Compression type of the superblock body. Typically zero (uncompressed) on modern Domino.
number_of_summary_bucket_descriptor_pages: u32Number of summary-bucket-descriptor pages reachable via this superblock. Used by Slice 2.6 Phase B for BDT walking.
number_of_non_summary_bucket_descriptor_pages: u32Number of non-summary-bucket-descriptor pages reachable via this superblock.
number_of_soft_deleted_note_entries: u32Number of soft-deleted note entries (notes moved to $Trash with retention period still active).
Shared-template-information block size in bytes.
number_of_form_names: u16Number of form names cached at the superblock level.
form_bitmap_size: u32Form-bitmap size in bytes.
Implementations§
Source§impl Superblock
impl Superblock
Sourcepub fn parse(bytes: &[u8]) -> Result<Self, NsfError>
pub fn parse(bytes: &[u8]) -> Result<Self, NsfError>
Parse a superblock header from the first
SUPERBLOCK_HEADER_BYTES of a buffer positioned at the
superblock’s file offset.
Sourcepub fn modification_sort_key(&self) -> (u32, u32)
pub fn modification_sort_key(&self) -> (u32, u32)
Comparable absolute UTC timestamp from this superblock’s
modification_time. Returned as (julian_day, centiseconds)
which compares lexicographically and treats different timezones
uniformly (Innards[0] is always centiseconds since midnight UTC
per the format spec).
Trait Implementations§
Source§impl Clone for Superblock
impl Clone for Superblock
Source§fn clone(&self) -> Superblock
fn clone(&self) -> Superblock
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for Superblock
Source§impl Debug for Superblock
impl Debug for Superblock
impl Eq for Superblock
Source§impl PartialEq for Superblock
impl PartialEq for Superblock
Source§fn eq(&self, other: &Superblock) -> bool
fn eq(&self, other: &Superblock) -> bool
self and other values to be equal, and is used by ==.