pub struct WalRecord {
pub content: WalRecordContent,
pub prev_chain_hash: [u8; 32],
pub this_chain_hash: [u8; 32],
pub signature: Option<Vec<u8>>,
pub signature_pqc: Option<Vec<u8>>,
}Expand description
Single record in the WAL chain (Canonical Input Log). Carries the
kind-discriminated WalRecordContent plus the chain/signature fields
common to both kinds.
Fields§
§content: WalRecordContentKind-discriminated canonical content (its variant tag is the kind).
prev_chain_hash: [u8; 32]Previous record’s this_chain_hash (or zero for record 0).
this_chain_hash: [u8; 32]blake3::keyed(chain_key, prev_chain_hash || canonical(body)).
signature: Option<Vec<u8>>Ed25519 signature over the canonical body bytes (same bytes hashed
into this_chain_hash). None for Tier 1. Stored as Vec<u8>
(64 bytes when present) per the serde 32-byte array-deserializer cap.
signature_pqc: Option<Vec<u8>>PQC signature bytes for Hybrid mode (3309 bytes for ML-DSA 65 when
present); None otherwise.
Implementations§
Source§impl WalRecord
impl WalRecord
Sourcepub fn kind(&self) -> WalRecordKind
pub fn kind(&self) -> WalRecordKind
This record’s WalRecordKind.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for WalRecord
impl<'de> Deserialize<'de> for WalRecord
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for WalRecord
impl RefUnwindSafe for WalRecord
impl Send for WalRecord
impl Sync for WalRecord
impl Unpin for WalRecord
impl UnsafeUnpin for WalRecord
impl UnwindSafe for WalRecord
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