Struct seshat::RecoveryDatabase
source · 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
impl RecoveryDatabase
sourcepub fn new<P: AsRef<Path>>(path: P) -> Result<Self>where
PathBuf: From<P>,
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.
sourcepub fn new_with_config<P: AsRef<Path>>(path: P, config: &Config) -> Result<Self>where
PathBuf: From<P>,
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.
sourcepub fn delete_the_index(&mut self) -> Result<()>
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.
sourcepub fn load_events_deserialized(
&self,
limit: usize,
from_event: Option<&Event>
) -> Result<Vec<Event>>
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.
sourcepub fn load_events(
&self,
limit: usize,
from_event: Option<&Event>
) -> Result<Vec<String>>
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.
sourcepub fn open_index(&mut self) -> Result<()>
pub fn open_index(&mut self) -> Result<()>
Create and open a new index.
Returns ReindexError
if the index wasn’t deleted first.
sourcepub fn info(&self) -> &RecoveryInfo
pub fn info(&self) -> &RecoveryInfo
Get the recovery info for the database.
sourcepub fn get_connection(&self) -> Result<Connection>
pub fn get_connection(&self) -> Result<Connection>
Get a database connection.
Note that this connection should only be used for reading.
sourcepub fn index_events(&mut self, events: &[Event]) -> Result<()>
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.
sourcepub fn commit(&mut self) -> Result<bool>
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.
sourcepub fn commit_and_close(self) -> Result<()>
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.
Auto Trait Implementations§
impl !RefUnwindSafe for RecoveryDatabase
impl Send for RecoveryDatabase
impl !Sync for RecoveryDatabase
impl Unpin for RecoveryDatabase
impl !UnwindSafe for RecoveryDatabase
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.