Enum heed::MdbError

source ·
pub enum MdbError {
Show 22 variants KeyExist, NotFound, PageNotFound, Corrupted, Panic, VersionMismatch, Invalid, MapFull, DbsFull, ReadersFull, TlsFull, TxnFull, CursorFull, PageFull, MapResized, Incompatible, BadRslot, BadTxn, BadValSize, BadDbi, Problem, Other(c_int),
}
Expand description

An LMDB error kind.

Variants§

§

KeyExist

A key/data pair already exists.

May be also returned by append functions. Data passed doesn’t respect the database ordering.

§

NotFound

A key/data pair was not found (EOF).

§

PageNotFound

Requested page not found - this usually indicates corruption.

§

Corrupted

Located page was wrong type.

§

Panic

Update of meta page failed or environment had fatal error.

§

VersionMismatch

Environment version mismatch.

§

Invalid

File is not a valid LMDB file.

§

MapFull

Environment mapsize reached.

§

DbsFull

Environment maxdbs reached.

§

ReadersFull

Environment maxreaders reached.

§

TlsFull

Too many TLS keys in use - Windows only.

§

TxnFull

Txn has too many dirty pages.

§

CursorFull

Cursor stack too deep - internal error.

§

PageFull

Page has not enough space - internal error.

§

MapResized

Database contents grew beyond environment mapsize.

§

Incompatible

Operation and DB incompatible, or DB type changed. This can mean:

  • The operation expects an MDB_DUPSORT / MDB_DUPFIXED database.
  • Opening a named DB when the unnamed DB has MDB_DUPSORT / MDB_INTEGERKEY.
  • Accessing a data record as a database, or vice versa.
  • The database was dropped and recreated with different flags.
§

BadRslot

Invalid reuse of reader locktable slot.

§

BadTxn

Transaction cannot recover - it must be aborted.

§

BadValSize

Unsupported size of key/DB name/data, or wrong DUP_FIXED size.

Common causes of this error:

  • You tried to store a zero-length key
  • You tried to store a key longer than the max allowed key (511 bytes by default)
  • You are using DUP_SORT and trying to store a value longer than the max allowed key size (511 bytes by default)

In the last two cases you can enable the longer-keys feature to increase the max allowed key size.

§

BadDbi

The specified DBI was changed unexpectedly.

§

Problem

Unexpected problem - transaction should abort.

§

Other(c_int)

Other error.

Implementations§

source§

impl Error

source

pub fn not_found(&self) -> bool

Returns true if the given error is Error::NotFound.

source

pub fn from_err_code(err_code: c_int) -> Error

Converts a raw error code to an Error.

source

pub fn to_err_code(&self) -> c_int

Converts an Error to the raw error code.

Trait Implementations§

source§

impl Clone for Error

source§

fn clone(&self) -> Error

Returns a copy 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 Error

source§

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

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

impl Display for Error

source§

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

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

impl Error for Error

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
source§

impl From<Error> for Error

source§

fn from(error: MdbError) -> Error

Converts to this type from the input type.
source§

impl PartialEq for Error

source§

fn eq(&self, other: &Error) -> 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 Copy for Error

source§

impl Eq for Error

source§

impl StructuralPartialEq for Error

Auto Trait Implementations§

§

impl Freeze for Error

§

impl RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnwindSafe for Error

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, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. 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.

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

Size for each variant:

  • KeyExist: 0 bytes
  • NotFound: 0 bytes
  • PageNotFound: 0 bytes
  • Corrupted: 0 bytes
  • Panic: 0 bytes
  • VersionMismatch: 0 bytes
  • Invalid: 0 bytes
  • MapFull: 0 bytes
  • DbsFull: 0 bytes
  • ReadersFull: 0 bytes
  • TlsFull: 0 bytes
  • TxnFull: 0 bytes
  • CursorFull: 0 bytes
  • PageFull: 0 bytes
  • MapResized: 0 bytes
  • Incompatible: 0 bytes
  • BadRslot: 0 bytes
  • BadTxn: 0 bytes
  • BadValSize: 0 bytes
  • BadDbi: 0 bytes
  • Problem: 0 bytes
  • Other: 4 bytes