pub struct Database { /* private fields */ }
Expand description
Opened redb database file
Use Self::begin_read
to get a ReadTransaction
object that can be used to read from the database
Use Self::begin_write
to get a WriteTransaction
object that can be used to read or write to the database
Multiple reads may be performed concurrently, with each other, and with writes. Only a single write may be in progress at a time.
§Examples
Basic usage:
use redb::*;
const TABLE: TableDefinition<u64, u64> = TableDefinition::new("my_data");
let db = Database::create(filename)?;
let write_txn = db.begin_write()?;
{
let mut table = write_txn.open_table(TABLE)?;
table.insert(&0, &0)?;
}
write_txn.commit()?;
Implementations§
Source§impl Database
impl Database
Sourcepub fn create(path: impl AsRef<Path>) -> Result<Database, DatabaseError>
pub fn create(path: impl AsRef<Path>) -> Result<Database, DatabaseError>
Opens the specified file as a redb database.
- if the file does not exist, or is an empty file, a new database will be initialized in it
- if the file is a valid redb database, it will be opened
- otherwise this function will return an error
Sourcepub fn open(path: impl AsRef<Path>) -> Result<Database, DatabaseError>
pub fn open(path: impl AsRef<Path>) -> Result<Database, DatabaseError>
Opens an existing redb database.
Sourcepub fn check_integrity(&mut self) -> Result<bool, DatabaseError>
pub fn check_integrity(&mut self) -> Result<bool, DatabaseError>
Force a check of the integrity of the database file, and repair it if possible.
Note: Calling this function is unnecessary during normal operation. redb will automatically detect and recover from crashes, power loss, and other unclean shutdowns. This function is quite slow and should only be used when you suspect the database file may have been modified externally to redb, or that a redb bug may have left the database in a corrupted state.
Returns Ok(true)
if the database passed integrity checks; Ok(false)
if it failed but was repaired,
and Err(Corrupted)
if the check failed and the file could not be repaired
Sourcepub fn compact(&mut self) -> Result<bool, CompactionError>
pub fn compact(&mut self) -> Result<bool, CompactionError>
Compacts the database file
Returns true
if compaction was performed, and false
if no futher compaction was possible
Sourcepub fn builder() -> Builder
pub fn builder() -> Builder
Convenience method for Builder::new
Sourcepub fn begin_write(&self) -> Result<WriteTransaction, TransactionError>
pub fn begin_write(&self) -> Result<WriteTransaction, TransactionError>
Begins a write transaction
Returns a WriteTransaction
which may be used to read/write to the database. Only a single
write may be in progress at a time. If a write is in progress, this function will block
until it completes.
Sourcepub fn begin_read(&self) -> Result<ReadTransaction, TransactionError>
pub fn begin_read(&self) -> Result<ReadTransaction, TransactionError>
Begins a read transaction
Captures a snapshot of the database, so that only data committed before calling this method is visible in the transaction
Returns a ReadTransaction
which may be used to read from the database. Read transactions
may exist concurrently with writes
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Database
impl !RefUnwindSafe for Database
impl Send for Database
impl Sync for Database
impl Unpin for Database
impl !UnwindSafe for Database
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
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 16 bytes