bitkv_rs/
errors.rs

1use std::{fmt::Debug, result};
2use thiserror::Error;
3
4#[derive(Error, Debug, PartialEq)]
5pub enum Errors {
6  #[error("failed to read from data file")]
7  FailedToReadFromDataFile,
8
9  #[error("failed to write to data file")]
10  FailedToWriteToDataFile,
11
12  #[error("failed to sync to data file")]
13  FailedToSyncToDataFile,
14
15  #[error("failed to open data file error")]
16  FailedToOpenDataFile,
17
18  #[error("the key is empty")]
19  KeyIsEmpty,
20
21  #[error("memory index failed to update")]
22  IndexUpdateFailed,
23
24  #[error("key is not found in database")]
25  KeyNotFound,
26
27  #[error("data file is not found in database")]
28  DataFileNotFound,
29
30  #[error("database dir path can not be empty")]
31  DirPathIsEmpty,
32
33  #[error("database data file size must be greater than 0")]
34  DataFileSizeTooSmall,
35
36  #[error("failed to create the database directory")]
37  FailedToCreateDatabaseDir,
38
39  #[error("failed to read the database directory")]
40  FailedToReadDatabaseDir,
41
42  #[error("database directory may be corrupted")]
43  DatabaseDirectoryCorrupted,
44
45  #[error("read data file eof")]
46  ReadDataFileEOF,
47
48  #[error("invalid crc value, log record maybe corrupted")]
49  InvalidLogRecordCrc,
50
51  #[error("exceed max batch number in one batch write")]
52  ExceedMaxBatchNum,
53
54  #[error("merge is in progress, try again later")]
55  MergeInProgress,
56
57  #[error("cannot use write batch, seq_no does not exist")]
58  UnableToUseWriteBatch,
59
60  #[error("the database directory is used by another process")]
61  DatabaseIsUsing,
62
63  #[error("invalid merge threshold value, must be in range (0, 1)")]
64  InvalidMergeThreshold,
65
66  #[error("merge threshold is unreached")]
67  MergeThresholdUnreached,
68
69  #[error("disk space is not enough for merge")]
70  MergeNoEnoughSpace,
71
72  #[error("failed to copy the database directory")]
73  FailedToCopyDirectory,
74}
75
76pub type Result<T> = result::Result<T, Errors>;