Skip to main content

MetadataStore

Struct MetadataStore 

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

The SQLite metadata store.

Implementations§

Source§

impl MetadataStore

Source

pub fn open(path: &Path) -> Result<Self, MetaError>

Open or create a metadata database at the given path.

Source

pub fn open_in_memory() -> Result<Self, MetaError>

Open an in-memory metadata database (for testing).

Source

pub fn conn(&self) -> &Connection

Get a reference to the underlying SQLite connection.

Used internally for direct queries that don’t have dedicated methods.

Source

pub fn store_patch(&self, patch: &Patch) -> Result<(), MetaError>

Store a patch in the metadata database.

Source

pub fn get_patch(&self, id: &PatchId) -> Result<Patch, MetaError>

Retrieve a patch by ID.

Source

pub fn set_branch( &self, name: &BranchName, target: &PatchId, ) -> Result<(), MetaError>

Store a branch pointer.

Source

pub fn get_branch(&self, name: &BranchName) -> Result<PatchId, MetaError>

Get a branch target.

Source

pub fn list_branches(&self) -> Result<Vec<(String, PatchId)>, MetaError>

List all branches.

Source

pub fn store_edge( &self, parent: &PatchId, child: &PatchId, ) -> Result<(), MetaError>

Store a DAG edge.

Source

pub fn get_edges( &self, patch_id: &PatchId, ) -> Result<(Vec<PatchId>, Vec<PatchId>), MetaError>

Get parent and child IDs for a patch.

Source

pub fn working_set_add( &self, path: &RepoPath, status: FileStatus, ) -> Result<(), MetaError>

Add a file to the working set.

Source

pub fn working_set_remove(&self, path: &RepoPath) -> Result<(), MetaError>

Remove a file from the working set.

Source

pub fn working_set(&self) -> Result<Vec<(String, FileStatus)>, MetaError>

Get the working set.

Source

pub fn set_config(&self, key: &str, value: &str) -> Result<(), MetaError>

Store a configuration value.

Source

pub fn list_config(&self) -> Result<Vec<(String, String)>, MetaError>

List all config key-value pairs.

Source

pub fn delete_config(&self, key: &str) -> Result<(), MetaError>

Delete a config key.

Source

pub fn get_config(&self, key: &str) -> Result<Option<String>, MetaError>

Get a configuration value.

Source

pub fn patch_count(&self) -> Result<i64, MetaError>

Get the number of patches stored.

Source

pub fn store_public_key( &self, author: &str, public_key_bytes: &[u8], ) -> Result<(), MetaError>

Source

pub fn get_public_key(&self, author: &str) -> Result<Option<Vec<u8>>, MetaError>

Source

pub fn store_signature( &self, patch_id: &str, signature_bytes: &[u8], ) -> Result<(), MetaError>

Source

pub fn get_signature( &self, patch_id: &str, ) -> Result<Option<Vec<u8>>, MetaError>

Source

pub fn store_file_tree( &self, patch_id: &PatchId, tree: &FileTree, ) -> Result<(), MetaError>

Store a FileTree for a given patch ID.

Replaces all existing entries for that patch_id (DELETE + INSERT in transaction).

Source

pub fn load_file_tree( &self, patch_id: &PatchId, ) -> Result<Option<FileTree>, MetaError>

Load a FileTree for a given patch ID from the database.

Returns None if no entries exist for that patch_id.

Source

pub fn file_tree_contains( &self, patch_id: &PatchId, path: &str, ) -> Result<bool, MetaError>

Check if a path exists in the file tree for a given patch ID.

Source

pub fn reflog_push( &self, old_head: &PatchId, new_head: &PatchId, message: &str, ) -> Result<(), MetaError>

Append an entry to the reflog.

Source

pub fn reflog_list(&self) -> Result<Vec<(String, String, String)>, MetaError>

Get the full reflog (newest first).

Source

pub fn reflog_clear(&self) -> Result<usize, MetaError>

Clear the entire reflog.

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

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more