#[non_exhaustive]pub enum Error {
Io(Error),
BadMagic,
UnsupportedVersion(u16),
Corrupt(&'static str),
ValueTooLarge,
}Expand description
The set of failures a bison-db operation can produce.
Variants are grouped by origin: I/O failures from the host filesystem, and format failures detected while decoding the on-disk log. A format failure always means the bytes on disk did not match the expectations encoded by the writer — never that the caller passed bad arguments to an in-memory type.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Io(Error)
std only.An underlying filesystem operation failed.
Wraps the originating std::io::Error so the caller can inspect the
std::io::ErrorKind (for example, PermissionDenied when opening a
read-only path, or NotFound for a missing parent directory).
BadMagic
The file does not begin with a valid bison-db header.
Returned by Db::open when the target path exists, is
non-empty, but its magic bytes do not identify it as a bison-db store —
the usual cause of opening the wrong file by mistake.
UnsupportedVersion(u16)
The on-disk format version is newer than this build understands.
The contained value is the version stamped in the file header. A binary built against an older release will refuse to read a file written by a newer one rather than risk misinterpreting it.
Corrupt(&'static str)
A stored record failed its integrity check or was structurally invalid.
This covers a CRC mismatch, an unknown value tag, a length field that
overruns the record, or a non-UTF-8 string — any signal that the bytes
were corrupted in place after being written. A clean torn write at the
very end of the log is not reported here: it is recovered silently by
truncating the partial tail (see Db::open).
The contained &'static str is a fixed diagnostic label, never a
formatted message, so producing it allocates nothing.
ValueTooLarge
A value was too large to encode within the configured record limit.
Guards against a single document growing past
MAX_RECORD_BYTES, which would otherwise
force an unbounded allocation on the read path during recovery.
Trait Implementations§
Source§impl Error for Error
Available on crate feature std only.
impl Error for Error
std only.Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()