Struct fdb::database::FdbDatabase
source · [−]pub struct FdbDatabase { /* private fields */ }
Expand description
A mutable, lexicographically ordered mapping from binary keys to binary values.
FdbTransaction
s are used to manipulate data within a single
FdbDatabase
- multiple concurrent FdbTransaction
s on a
FdbDatabase
enforce ACID properties.
The simplest correct programs using FDB will make use of the
run
and read
methods. run
will call commit
after
the user code has been executed.
A handle to FDB database. All reads and writes to the database are transactional.
A FdbDatabase
can be created using open_database
function.
Implementations
sourceimpl FdbDatabase
impl FdbDatabase
sourcepub fn create_transaction(&self) -> FdbResult<FdbTransaction>
pub fn create_transaction(&self) -> FdbResult<FdbTransaction>
Creates a FdbTransaction
that operates on this
FdbDatabase
.
sourcepub async fn get_boundary_keys(
&self,
begin: impl Into<Key>,
end: impl Into<Key>,
limit: i32,
read_version: i64
) -> FdbResult<Vec<Key>>
pub async fn get_boundary_keys(
&self,
begin: impl Into<Key>,
end: impl Into<Key>,
limit: i32,
read_version: i64
) -> FdbResult<Vec<Key>>
Returns an array of Key
s k
such that begin <= k < end
and k
is located at the start of contiguous range stored on
a single server.
If limit
is non-zero, only the first limit
number of keys
will be returned. In large databases, the number of boundary
keys may be large. In these cases, a non-zero limit
should
be used, along with multiple calls to get_boundary_keys
.
If read_version
is non-zero, the boundary keys as of
read_version
will be returned.
This method is not transactional.
sourcepub async fn run<T, F, Fut>(&self, f: F) -> FdbResult<T> where
F: FnMut(FdbTransaction) -> Fut,
Fut: Future<Output = FdbResult<T>>,
pub async fn run<T, F, Fut>(&self, f: F) -> FdbResult<T> where
F: FnMut(FdbTransaction) -> Fut,
Fut: Future<Output = FdbResult<T>>,
Runs a closure in the context that takes a FdbTransaction
.
Note
The closure FnMut: FnMut(FdbTransaction) -> Fut
will run
multiple times (retry) when certain errors are
encountered. Therefore the closure should be prepared to be
called more than once. This consideration means that the
closure should use caution when modifying state.
sourcepub async fn read<T, F, Fut>(&self, f: F) -> FdbResult<T> where
F: FnMut(FdbReadTransaction) -> Fut,
Fut: Future<Output = FdbResult<T>>,
pub async fn read<T, F, Fut>(&self, f: F) -> FdbResult<T> where
F: FnMut(FdbReadTransaction) -> Fut,
Fut: Future<Output = FdbResult<T>>,
Runs a closure in the context that takes a
FdbReadTransaction
.
Note
The closure F: FnMut(FdbReadTransaction) -> Fut
will run
multiple times (retry) when certain errors are
encountered. Therefore the closure should be prepared to be
called more than once. This consideration means that the
closure should use caution when modifying state.
sourcepub fn set_option(&self, option: DatabaseOption) -> FdbResult<()>
pub fn set_option(&self, option: DatabaseOption) -> FdbResult<()>
Set options on a FdbDatabase
.
Trait Implementations
sourceimpl Clone for FdbDatabase
impl Clone for FdbDatabase
sourcefn clone(&self) -> FdbDatabase
fn clone(&self) -> FdbDatabase
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for FdbDatabase
impl Debug for FdbDatabase
sourceimpl Drop for FdbDatabase
impl Drop for FdbDatabase
impl Send for FdbDatabase
impl Sync for FdbDatabase
Auto Trait Implementations
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more