Skip to main content

IndexStore

Struct IndexStore 

Source
pub struct IndexStore<S: SnapshotStore = DiskSnapshotStore> { /* private fields */ }
Expand description

Index lifecycle orchestrator backed by a [SnapshotStore] for atomic persistence and coordination.

Implementations§

Source§

impl IndexStore<DiskSnapshotStore>

Source

pub fn open(sift_dir: &Path) -> Result<Self>

Open an existing store at sift_dir.

§Errors

Returns an error if CURRENT exists but cannot be read.

Source

pub fn open_or_create( sift_dir: &Path, root: &Path, corpus_kind: CorpusKind, follow_links: bool, indexes: &[IndexKind], ) -> Result<Self>

Open an existing store or create a new one at sift_dir.

§Errors

Returns an error if the store directory cannot be created or metadata cannot be written.

Source

pub fn snapshot_dir(&self, id: &str) -> PathBuf

Source§

impl<S: SnapshotStore> IndexStore<S>

Source

pub fn current_id(&self) -> Option<&str>

Source

pub fn build( &mut self, kinds: &[IndexKind], config: &IndexConfig<'_>, ) -> Result<String>

Build a new snapshot using the given index kinds.

Acquires the writer session, builds each index kind as artifacts, and publishes the snapshot.

Returns the snapshot id.

§Errors

Returns an error if the writer session cannot be acquired, the index build fails, or publishing fails.

Source

pub fn update( &mut self, kinds: &[IndexKind], config: &IndexConfig<'_>, ) -> Result<Option<String>>

Update the current snapshot, rebuilding only indexes whose corpus changed.

Acquires the writer session, checks for changes, copies unchanged artifacts from the current snapshot, and publishes a new one.

Returns the snapshot id if a new snapshot was published, or None if no index changed.

§Errors

Returns an error if the writer session cannot be acquired, the current snapshot cannot be opened, the update check fails, or publishing fails.

Auto Trait Implementations§

§

impl<S> Freeze for IndexStore<S>
where S: Freeze,

§

impl<S> RefUnwindSafe for IndexStore<S>
where S: RefUnwindSafe,

§

impl<S> Send for IndexStore<S>
where S: Send,

§

impl<S> Sync for IndexStore<S>
where S: Sync,

§

impl<S> Unpin for IndexStore<S>
where S: Unpin,

§

impl<S> UnsafeUnpin for IndexStore<S>
where S: UnsafeUnpin,

§

impl<S> UnwindSafe for IndexStore<S>
where S: UnwindSafe,

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> 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, 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.