///|
/// `open` 和事务操作失败时抛出这个错误,调用方按构造器分支。
pub(all) suberror DbError {
/// `close` 之后还在使用这个库或事务。
Closed
/// `begin` 时上一个事务还没有 `commit` 或 `abort`。
TxnOpen
/// 事务已经提交或撤销,句柄不能再使用。
TxnClosed
/// 事务正在提交;不能同时读写、撤销或关闭。
TxnBusy
/// 提交发生 I/O 错误;关闭此句柄并重新打开,让 WAL 决定最终结果。
RecoveryRequired
/// `value` 超过 `max_value_len`,或者 key 和 value 放不进一页。
ValueTooLarge
/// 页文件头、节点结构或完整 WAL 帧损坏;不完整日志尾部除外。
Corrupt
/// 读或写文件失败。参数是底层错误文本。
Io(String)
} derive(Eq, Debug)
///|
pub extend DbError with Eq::{equal, not_equal}
///|
pub extend DbError with @debug.Debug::{to_repr}
///|
pub impl Show for DbError with fn output(self, logger) {
logger.write_string(self.to_repr().to_string())
}
///|
pub extend DbError with Show::{output, to_string}