Skip to main content

ManifestStore

Struct ManifestStore 

Source
pub struct ManifestStore { /* private fields */ }
Expand description

Manifest persistence helpers.

Separated from event_log so the hot append path does not carry serialization concerns, and so open can cheaply probe the manifest before deciding whether to run the O(n) scan.

Implementations§

Source§

impl ManifestStore

Source

pub fn new(session_dir: PathBuf) -> Self

Create a new manifest store for the given session directory.

Source

pub fn manifest_path(&self) -> PathBuf

Path to manifest.json inside the session directory.

Source

pub fn turns_path(&self) -> PathBuf

Path to index/turns.json inside the session directory.

Source

pub fn load_manifest( &self, ) -> Result<Option<SessionManifest>, SessionStoreError>

Load the manifest if it exists and is parseable.

Returns Ok(None) when the file is missing (fresh session) or unreadable, rather than erroring — the caller can fall back to scanning the event log.

Source

pub fn load_turn_index(&self) -> Result<Option<TurnIndex>, SessionStoreError>

Load the turn index if it exists and is parseable.

Returns Ok(None) when the file is missing or unreadable.

Source

pub fn write_manifest( &self, manifest: &SessionManifest, ) -> Result<(), SessionStoreError>

Atomically write the manifest. Parent directories must already exist.

Source

pub fn write_turn_index( &self, index: &TurnIndex, ) -> Result<(), SessionStoreError>

Atomically write the turn index. Parent directories must already exist.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.