heed

Struct RwTxn

Source
pub struct RwTxn<'p> { /* private fields */ }
Expand description

A read-write transaction.

§LMDB Limitations

Only one RwTxn may exist in the same environment at the same time. If two exist, the new one may wait on a mutex for RwTxn::commit or RwTxn::abort to be called for the first one.

§OSX/Darwin Limitation

At least 10 transactions can be active at the same time in the same process, since only 10 POSIX semaphores can be active at the same time for a process. Threads are in the same process space.

If the process crashes in the POSIX semaphore locking section of the transaction, the semaphore will be kept locked.

Note: if your program already use POSIX semaphores, you will have less available for heed/LMDB!

You may increase the limit by editing it at your own risk: /Library/LaunchDaemons/sysctl.plist

Implementations§

Source§

impl<'p> RwTxn<'p>

Source

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

Commit all the operations of a transaction into the database. The transaction is reset.

Source

pub fn abort(self)

Abandon all the operations of the transaction instead of saving them. The transaction is reset.

Trait Implementations§

Source§

impl<'p> Deref for RwTxn<'p>

Source§

type Target = RoTxn<'p>

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.

Auto Trait Implementations§

§

impl<'p> Freeze for RwTxn<'p>

§

impl<'p> RefUnwindSafe for RwTxn<'p>

§

impl<'p> Send for RwTxn<'p>

§

impl<'p> !Sync for RwTxn<'p>

§

impl<'p> Unpin for RwTxn<'p>

§

impl<'p> UnwindSafe for RwTxn<'p>

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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.

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: 24 bytes