Skip to main content

SingleWriterTxDatabase

Struct SingleWriterTxDatabase 

Source
pub struct SingleWriterTxDatabase { /* private fields */ }
Expand description

Single-writer transactional database

Implementations§

Source§

impl TxDatabase

Source

pub fn builder(path: impl AsRef<Path>) -> DatabaseBuilder<Self>

Creates a new database builder to create or open a database at path.

Source

pub fn write_tx(&self) -> WriteTransaction<'_>

Starts a new writeable transaction.

Source

pub fn read_tx(&self) -> Snapshot

Starts a new read-only transaction (a.k.a. Snapshot).

Source

pub fn persist(&self, mode: PersistMode) -> Result<()>

Flushes the active journal. The durability depends on the PersistMode used.

Persisting only affects durability, NOT consistency! Even without flushing data is crash-safe.

§Examples
let db = SingleWriterTxDatabase::builder(folder).open()?;
let items = db.keyspace("my_items", KeyspaceCreateOptions::default)?;

items.insert("a", "hello")?;

db.persist(PersistMode::SyncAll)?;
§Errors

Returns error, if an IO error occurred.

Source

pub fn keyspace( &self, name: &str, create_options: impl FnOnce() -> KeyspaceCreateOptions, ) -> Result<SingleWriterTxKeyspace>

Creates or opens a keyspace.

If the keyspace does not yet exist, it will be created configured with create_options. Otherwise simply a handle to the existing keyspace will be returned.

Keyspace names can be up to 255 characters long and can not be empty.

§Errors

Returns error, if an IO error occurred.

§Panics

Panics if the keyspace name is invalid.

Source

pub fn keyspace_count(&self) -> usize

Returns the number of keyspaces.

Source

pub fn list_keyspace_names(&self) -> Vec<StrView>

Gets a list of all keyspace names in the database.

Source

pub fn keyspace_exists(&self, name: &str) -> bool

Returns true if the keyspace with the given name exists.

Source

pub fn write_buffer_size(&self) -> u64

Returns the current write buffer size (active + sealed memtables).

Source

pub fn journal_count(&self) -> usize

Returns the number of journal fragments on disk.

Source

pub fn disk_space(&self) -> Result<u64>

Returns the disk space usage of the entire database.

§Errors

Returns error, if an IO error occurred.

Source

pub fn open(config: Config) -> Result<Self>

Opens a database in the given directory.

§Errors

Returns error, if an IO error occurred.

Trait Implementations§

Source§

impl Clone for TxDatabase

Source§

fn clone(&self) -> TxDatabase

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

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

Initializes a with the given initializer. Read more
Source§

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

Dereferences the given pointer. Read more
Source§

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

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

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

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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

Source§

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.