pub trait Database:
Send
+ Sync
+ Debug {
type TX: DbTx + Send + Sync + Debug + 'static;
type TXMut: DbTxMut + DbTx + TableImporter + Send + Sync + Debug + 'static;
// Required methods
fn tx(&self) -> Result<Self::TX, DatabaseError>;
fn tx_mut(&self) -> Result<Self::TXMut, DatabaseError>;
// Provided methods
fn view<T, F>(&self, f: F) -> Result<T, DatabaseError>
where F: FnOnce(&Self::TX) -> T { ... }
fn update<T, F>(&self, f: F) -> Result<T, DatabaseError>
where F: FnOnce(&Self::TXMut) -> T { ... }
}
Expand description
Main Database trait that can open read-only and read-write transactions.
Sealed trait which cannot be implemented by 3rd parties, exposed only for consumption.
Required Associated Types§
Required Methods§
Sourcefn tx(&self) -> Result<Self::TX, DatabaseError>
fn tx(&self) -> Result<Self::TX, DatabaseError>
Create read only transaction.
Sourcefn tx_mut(&self) -> Result<Self::TXMut, DatabaseError>
fn tx_mut(&self) -> Result<Self::TXMut, DatabaseError>
Create read write transaction only possible if database is open with write access.
Provided Methods§
Sourcefn view<T, F>(&self, f: F) -> Result<T, DatabaseError>
fn view<T, F>(&self, f: F) -> Result<T, DatabaseError>
Takes a function and passes a read-only transaction into it, making sure it’s closed in the end of the execution.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.