Enum LockKind

Source
pub enum LockKind {
    None,
    Shared,
    Reserved,
    Pending,
    Exclusive,
}
Expand description

The access an object is opened with.

Variants§

§

None

No locks are held. The database may be neither read nor written. Any internally cached data is considered suspect and subject to verification against the database file before being used. Other processes can read or write the database as their own locking states permit. This is the default state.

§

Shared

The database may be read but not written. Any number of processes can hold LockKind::Shared locks at the same time, hence there can be many simultaneous readers. But no other thread or process is allowed to write to the database file while one or more LockKind::Shared locks are active.

§

Reserved

A LockKind::Reserved lock means that the process is planning on writing to the database file at some point in the future but that it is currently just reading from the file. Only a single LockKind::Reserved lock may be active at one time, though multiple LockKind::Shared locks can coexist with a single LockKind::Reserved lock. LockKind::Reserved differs from LockKind::Pending in that new LockKind::Shared locks can be acquired while there is a LockKind::Reserved lock.

§

Pending

A LockKind::Pending lock means that the process holding the lock wants to write to the database as soon as possible and is just waiting on all current LockKind::Shared locks to clear so that it can get an LockKind::Exclusive lock. No new LockKind::Shared locks are permitted against the database if a LockKind::Pending lock is active, though existing LockKind::Shared locks are allowed to continue.

§

Exclusive

An LockKind::Exclusive lock is needed in order to write to the database file. Only one LockKind::Exclusive lock is allowed on the file and no other locks of any kind are allowed to coexist with an LockKind::Exclusive lock. In order to maximize concurrency, SQLite works to minimize the amount of time that LockKind::Exclusive locks are held.

Trait Implementations§

Source§

impl Clone for LockKind

Source§

fn clone(&self) -> LockKind

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
Source§

impl Debug for LockKind

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for LockKind

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for LockKind

Source§

fn eq(&self, other: &LockKind) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for LockKind

Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Copy for LockKind

Source§

impl Eq for LockKind

Source§

impl StructuralPartialEq for LockKind

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