1use nodedb_types::columnar::ColumnType;
6
7#[derive(Debug, Clone, PartialEq, Eq, thiserror::Error)]
9#[non_exhaustive]
10pub enum StrictError {
11 #[error("expected {expected} values, got {got}")]
13 ValueCountMismatch { expected: usize, got: usize },
14
15 #[error("column '{column}': expected {expected}, got incompatible value")]
17 TypeMismatch {
18 column: String,
19 expected: ColumnType,
20 },
21
22 #[error("column '{0}' is NOT NULL and has no default")]
24 NullViolation(String),
25
26 #[error("tuple too short: need at least {expected} bytes, got {got}")]
28 TruncatedTuple { expected: usize, got: usize },
29
30 #[error("column index {index} out of range (schema has {count} columns)")]
32 ColumnOutOfRange { index: usize, count: usize },
33
34 #[error("corrupt offset table: offset {offset} exceeds tuple length {len}")]
36 CorruptOffset { offset: u32, len: usize },
37
38 #[error("tuple schema version {tuple_version} is newer than reader version {reader_version}")]
40 NewerSchemaVersion {
41 tuple_version: u16,
42 reader_version: u16,
43 },
44
45 #[error("invalid tuple magic: expected 0x{expected:08X}, got 0x{got:08X}")]
47 InvalidMagic { expected: u32, got: u32 },
48
49 #[error("unsupported tuple format version: expected {expected}, got {got}")]
51 InvalidFormatVersion { expected: u8, got: u8 },
52}