pub struct Transaction {
pub transaction_id: u32,
pub records: Vec<usize>,
pub lsns: Vec<u64>,
pub operations: Vec<FileOperation>,
pub state: TransactionState,
}Expand description
One terminal-bounded run of $LogFile LFS records within a transaction-table
slot — a single logical transaction (one user/OS action) NTFS commits or rolls
back as a whole.
transaction_id is the slot the run occupied (the reused
open-transaction-table index, LFS header offset 0x24); many Transactions
can share one transaction_id. records holds indices into the slice passed
to reconstruct_transactions, ascending by LSN (replay order); lsns
carries each record’s this_lsn (the run’s LSN set, comparable against an
oracle without re-indexing); operations is the parallel
FileOperation classification.
Fields§
§transaction_id: u32The transaction-table slot this run occupied (LFS header offset
0x24). Reused across transactions — not a unique transaction id.
records: Vec<usize>Indices into the source record slice, ascending by LSN.
lsns: Vec<u64>Each member record’s this_lsn, ascending — the run’s LSN set.
operations: Vec<FileOperation>Per-record file-operation classification, parallel to records.
state: TransactionStateRecovery disposition derived from the terminal / compensation opcode.
Trait Implementations§
Source§impl Clone for Transaction
impl Clone for Transaction
Source§fn clone(&self) -> Transaction
fn clone(&self) -> Transaction
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Transaction
impl Debug for Transaction
impl Eq for Transaction
Source§impl PartialEq for Transaction
impl PartialEq for Transaction
Source§fn eq(&self, other: &Transaction) -> bool
fn eq(&self, other: &Transaction) -> bool
self and other values to be equal, and is used by ==.