chronix_engine/segment/
error.rs1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum SegmentError {
8 #[error("corrupt segment file: {detail}")]
10 CorruptFile {
11 detail: String,
13 },
14
15 #[error("invalid magic bytes: expected CXSG")]
17 InvalidMagic,
18
19 #[error("checksum mismatch: expected {expected:#010x}, got {actual:#010x}")]
21 ChecksumMismatch {
22 expected: u32,
24 actual: u32,
26 },
27
28 #[error("unsupported segment version: {version}")]
30 UnsupportedVersion {
31 version: u16,
33 },
34
35 #[error("I/O error: {0}")]
37 Io(#[from] std::io::Error),
38
39 #[error("encoding error: {0}")]
41 Encoding(#[from] chronix_encoding::EncodingError),
42
43 #[error("segment writer already finalized")]
45 AlreadyFinalized,
46
47 #[error("no data written to segment")]
49 EmptySegment,
50
51 #[error("row group index {index} out of range (max: {max})")]
53 RowGroupOutOfRange {
54 index: usize,
56 max: usize,
58 },
59
60 #[error("column not found: {name}")]
62 ColumnNotFound {
63 name: String,
65 },
66}
67
68pub type Result<T> = std::result::Result<T, SegmentError>;