Skip to main content

FileStore

Struct FileStore 

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

File-based storage backend.

Stores each principal’s entries in a JSONL file named <pr_b64>.jsonl within the configured base directory.

§Example

use cyphr_storage::FileStore;

let store = FileStore::new("/var/data/cyphr");

Implementations§

Source§

impl FileStore

Source

pub fn new(base_dir: impl AsRef<Path>) -> Self

Create a new file store with the given base directory.

The directory will be created if it doesn’t exist.

Source§

impl FileStore

Source

pub fn append_commit( &self, pr: &PrincipalGenesis, commit: &CommitEntry, ) -> Result<(), FileStoreError>

Append a commit bundle to the principal’s log.

Each commit is stored as a single JSON line containing:

  • cozies: Array of coz entries
  • commit_id: Commit ID (base64url)
  • as: Auth State (base64url)
  • sr: State Root (base64url)
  • ps: Principal State (base64url)
Source

pub fn get_commits( &self, pr: &PrincipalGenesis, ) -> Result<Vec<CommitEntry>, FileStoreError>

Get all commits from the principal’s log.

Parses each line as a CommitEntry with embedded state digests.

Trait Implementations§

Source§

impl Store for FileStore

Source§

type Error = FileStoreError

The error type for this store implementation.
Source§

fn append_entry( &self, pr: &PrincipalGenesis, entry: &Entry, ) -> Result<(), Self::Error>

Append a signed entry to the log.
Source§

fn get_entries(&self, pr: &PrincipalGenesis) -> Result<Vec<Entry>, Self::Error>

Retrieve all entries for a principal.
Source§

fn get_entries_range( &self, pr: &PrincipalGenesis, opts: &QueryOpts, ) -> Result<Vec<Entry>, Self::Error>

Retrieve entries with filtering (supports coz patches).
Source§

fn exists(&self, pr: &PrincipalGenesis) -> Result<bool, Self::Error>

Check if principal exists in storage.

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> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V