molrs_core/block/
error.rs1use std::fmt;
4
5#[derive(Debug, Clone, PartialEq, Eq)]
7pub enum BlockError {
8 RankZero {
10 key: String,
12 },
13 RaggedAxis0 {
15 key: String,
17 expected: usize,
19 got: usize,
21 },
22 Validation {
24 message: String,
26 },
27}
28
29impl fmt::Display for BlockError {
30 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
31 match self {
32 BlockError::RankZero { key } => {
33 write!(
34 f,
35 "array for key '{}' has rank 0; expected at least 1D",
36 key
37 )
38 }
39 BlockError::RaggedAxis0 { key, expected, got } => write!(
40 f,
41 "array for key '{}' has axis-0 length {} but block expects {}",
42 key, got, expected
43 ),
44 BlockError::Validation { message } => write!(f, "{}", message),
45 }
46 }
47}
48
49impl std::error::Error for BlockError {}
50
51impl BlockError {
52 pub fn validation(message: impl Into<String>) -> Self {
54 BlockError::Validation {
55 message: message.into(),
56 }
57 }
58}