Weave documentation
Rust referenceweave-locus

weave-locus · journal

Source declarations, signatures and documentation for journal.

Reviewed implementation boundary: Rollback records a marker; mount descriptions and governance metadata alone do not execute mounting or enforce signature authorization. Operations can have separate metadata/blob failure points. See /libraries/locus/overview.

Source: sigil/weave/models/locus/src/journal.rs. SHA-256: e7174fed3fc63ebfbeffc124f168832b1160704ace3c687796eace7f2f349b73.

This reference follows declared source modules, retains conditional attributes, and includes public declarations and implementation methods. Private-module re-exports and trait resolution require the compiler; this is a source reference, not a claim that every listed item is a root import. Function bodies and constant values are omitted.

journal::JournalOp

Journal entry kinds

#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum JournalOp {
    CreateDir { path: String },
    WriteFile { path: String, size: u64 },
    Remove { path: String },
}

Source line: 10.

journal::JournalState

Journal entry state

#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
pub enum JournalState {
    Prepared,
    Applied,
    Committed,
}

Source line: 18.

journal::JournalRecord

A journal record for one operation

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct JournalRecord {
pub id: Uuid,
pub op: JournalOp,
pub state: JournalState,
pub created_at: i64
}

Source line: 26.

journal::JournalRecord::new

pub fn new(op: JournalOp) -> Self;

Source line: 34.

journal::JournalStore

Utilities for persisting journal entries into Lens metadata

pub struct JournalStore<'a> {
pub prefix: &'a str
}

Source line: 45.

journal::JournalStore<'a>::new

pub fn new() -> Self;

Source line: 50.

journal::JournalStore<'a>::key_for

pub fn key_for(&self, id: &Uuid) -> String;

Source line: 56.

journal::LocusJournal

Locus journal API mixed into Locus (implemented in locus.rs)

pub trait LocusJournal {
    fn journal_store<'a>() -> JournalStore<'a> ;
    fn serialize(rec: &JournalRecord) -> Result<Vec<u8>> ;
    fn deserialize(bytes: &[u8]) -> Result<JournalRecord> ;
}

Source line: 62.

On this page