pub struct WriteTransaction<'mmap, K: RadbKey + ?Sized> {
    storage: &'mmap Storage,
    table_id: u64,
    added: HashMap<Vec<u8>, Vec<u8>>,
    removed: HashSet<Vec<u8>>,
    _key_type: PhantomData<K>,
}

Fields§

§storage: &'mmap Storage§table_id: u64§added: HashMap<Vec<u8>, Vec<u8>>§removed: HashSet<Vec<u8>>§_key_type: PhantomData<K>

Implementations§

source§

impl<'mmap, K: RadbKey + ?Sized> WriteTransaction<'mmap, K>

source

pub(crate) fn new( table_id: u64, storage: &'mmap Storage ) -> WriteTransaction<'mmap, K>

source

pub fn insert(&mut self, key: &K, value: &[u8]) -> Result<(), Error>

source

pub fn commit(self) -> Result<(), Error>

change the in-memory (mmap) data structure

source

pub fn insert_reserve( &mut self, key: &K, value_length: usize ) -> Result<&mut [u8], Error>

Reserve space to insert a key-value pair (without knowing the value yet) The returned reference will have length equal to value_length

source

pub fn get(&self, key: &K) -> Result<Option<AccessGuard<'_>>, Error>

Get a value from the transaction. If the value is not in the data, it will be fetched from the mmap disk storage.

source

pub fn remove(&mut self, key: &K) -> Result<(), Error>

source

pub fn abort(self) -> Result<(), Error>

Auto Trait Implementations§

§

impl<'mmap, K> !RefUnwindSafe for WriteTransaction<'mmap, K>

§

impl<'mmap, K> !Send for WriteTransaction<'mmap, K>

§

impl<'mmap, K> !Sync for WriteTransaction<'mmap, K>

§

impl<'mmap, K: ?Sized> Unpin for WriteTransaction<'mmap, K>
where K: Unpin,

§

impl<'mmap, K> !UnwindSafe for WriteTransaction<'mmap, K>

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

§

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>,

§

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.