fluidattacks_database_core_domain/table/
error.rs1use core::fmt;
2
3use crate::core::ColumnId;
4
5#[derive(Debug, Clone, PartialEq, Eq)]
6pub enum SchemaError {
7 NoColumns,
8 DuplicateColumn(ColumnId),
9 UnknownKeyColumn(ColumnId),
10 DuplicateKeyColumn(ColumnId),
11 NullableKeyColumn(ColumnId),
12 InvalidDecimal {
13 column: ColumnId,
14 precision: u8,
15 scale: u8,
16 },
17}
18
19impl fmt::Display for SchemaError {
20 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
21 match self {
22 Self::NoColumns => write!(f, "table has no columns"),
23 Self::DuplicateColumn(c) => write!(f, "column {} is repeated", c.name()),
24 Self::UnknownKeyColumn(c) => write!(f, "key column {} is not a column", c.name()),
25 Self::DuplicateKeyColumn(c) => write!(f, "key column {} is repeated", c.name()),
26 Self::NullableKeyColumn(c) => write!(f, "key column {} is nullable", c.name()),
27 Self::InvalidDecimal {
28 column,
29 precision,
30 scale,
31 } => write!(
32 f,
33 "column {} has an invalid decimal({precision},{scale})",
34 column.name()
35 ),
36 }
37 }
38}
39
40impl core::error::Error for SchemaError {}