pub struct RecoveryDatabase { /* private fields */ }
Expand description

Database that can be used to reindex the events.

Reindexing the database may be needed if the index schema changes. This may happen occasionally on upgrades or if language settings for the database change.

Implementations§

source§

impl RecoveryDatabase

source

pub fn new<P: AsRef<Path>>(path: P) -> Result<Self>where PathBuf: From<P>,

Open a read-only Seshat database.

Arguments
  • path - The directory where the database will be stored in. This should be an empty directory if a new database should be created.
source

pub fn new_with_config<P: AsRef<Path>>(path: P, config: &Config) -> Result<Self>where PathBuf: From<P>,

Open a recovery Seshat database with the provided config.

Arguments
  • path - The directory where the database will be stored in. This should be an empty directory if a new database should be created.

  • config - Configuration that changes the behaviour of the database.

source

pub fn delete_the_index(&mut self) -> Result<()>

Delete the Seshat index, leaving only the events database.

After this operation is done, the index can be rebuilt.

source

pub fn load_events_deserialized( &self, limit: usize, from_event: Option<&Event> ) -> Result<Vec<Event>>

Load deserialized events from the database.

  • limit - The number of events to load.
  • from_event - The event where to continue loading from.

Events that fail to be deserialized will be filtered out.

source

pub fn load_events( &self, limit: usize, from_event: Option<&Event> ) -> Result<Vec<String>>

Load serialized events from the database.

  • limit - The number of events to load.
  • from_event - The event where to continue loading from.
source

pub fn open_index(&mut self) -> Result<()>

Create and open a new index.

Returns ReindexError if the index wasn’t deleted first.

source

pub fn info(&self) -> &RecoveryInfo

Get the recovery info for the database.

source

pub fn get_connection(&self) -> Result<Connection>

Get a database connection.

Note that this connection should only be used for reading.

source

pub fn index_events(&mut self, events: &[Event]) -> Result<()>

Re-index a batch of events.

Arguments
  • events - The events that should be reindexed.

Returns ReindexError if the index wasn’t previously deleted and opened.

source

pub fn commit(&mut self) -> Result<bool>

Commit to the index.

Returns true if the commit was forwarded, false if not enough events are queued up.

Returns ReindexError if the index wasn’t previously deleted and opened.

source

pub fn commit_and_close(self) -> Result<()>

Commit the remaining added events and mark the reindex as done.

Returns ReindexError if the index wasn’t previously deleted and opened.

source

pub fn shutdown(self) -> Result<()>

Shut the database down.

This will terminate the writer thread making sure that no writes will happen after this operation.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for Twhere T: Any,

§

fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere 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.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

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

§

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 Twhere U: TryFrom<T>,

§

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

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

§

fn vzip(self) -> V

§

impl<T> Erased for T

source§

impl<T> Fruit for Twhere T: Send + Downcast,