Struct Error

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

Represents all possible errors that can occur when using indexedlog.

Implementations§

Source§

impl Error

Source

pub fn is_corruption(&self) -> bool

Return true if the error is considered as (filesystem) data corruption.

Application can use this information to decide whether to try the expensive repair API.

Data corruption is in general when the data can be confidently read, but does not meet integrity expectation. Note: a “file not found” error is a piece of information that is “confidently read”, because it’s unexpected to get a different error by using different users, or process settings. So “file not found” is not always a corruption.

For example, those are data corruption errors:

  • XxHash checksum does not match the data
  • Some data says “read this file in 100..200 byte range”, but logically, the file only has 150 bytes.
  • A byte is expected to only be 1 or 2. But it turns out to be 0.
  • Both file “a” and “b” are expected to exist in a directory, but “a” can be found, while “b” does not exist.

Those are not data corruption:

  • Cannot open a file due to permission issues or exceeding the file descriptor limit.
  • Programming errors and API misuse. For example, a user-provided index function says data[5..10] is the index key while data
  • Both file “a” and “b” are expected to exist in a directory, but “a” can be found, while “b” cannot be opened due to permission issues.

It’s expected that data corruption can only happen when the managed files or directories are changed without using this crate. For example, a hard reboot, deleting lock files while multiple processes are attempting to write, deleting or changing files in some ways. Issues like “disk is full”, “permission errors”, “process killed at random time” are expected to not cause data corruption (but only data loss).

Source

pub fn io_error_kind(&self) -> ErrorKind

Trait Implementations§

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, f: &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<&str> for Error

Create an Error from a message.

Source§

fn from(s: &str) -> Self

Converts to this type from the input type.
Source§

impl<E: Error + Send + Sync + 'static> From<(&str, E)> for Error

Create an Error from a message and another error.

Source§

fn from(s: (&str, E)) -> Self

Converts to this type from the input type.

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> ToString for T
where T: Display + ?Sized,

Source§

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

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more