tdms_rs/
error.rs

1use std::io;
2use thiserror::Error;
3
4#[derive(Error, Debug)]
5pub enum TdmsError {
6    #[error("IO error: {0}")]
7    Io(#[from] io::Error),
8
9    #[error("Invalid TDMS format: {0}")]
10    InvalidFormat(String),
11
12    #[error("Invalid TDMS signature")]
13    InvalidSignature,
14
15    #[error("Unknown version: {0}")]
16    UnknownVersion(u32),
17
18    #[error("Group '{0}' not found")]
19    GroupNotFound(String),
20
21    #[error("Channel '{0}' not found in group '{1}'")]
22    ChannelNotFound(String, String),
23
24    #[error("Unsupported data type: {0}")]
25    UnsupportedDataType(u32),
26
27    #[error("Invalid name: {0}")]
28    InvalidName(String),
29
30    #[error("Duplicate name: {0}")]
31    DuplicateName(String),
32
33    #[error("String encoding error")]
34    StringEncoding,
35
36    #[error("Not implemented: {0}")]
37    NotImplemented(String),
38
39    #[error("String formatting error: {0}")]
40    StringFormatting(String),
41
42    #[error("Type mismatch")]
43    TypeMismatch,
44
45    #[error("Alignment error")]
46    AlignmentError,
47
48    #[error("Invalid range: {0}..{1} (len={2})")]
49    InvalidRange(usize, usize, usize),
50
51    #[error("Writer already closed")]
52    WriterClosed,
53
54    #[error("Compression not supported: {0}")]
55    CompressionNotSupported(String),
56
57    #[error("Property too large: {0} bytes")]
58    PropertyTooLarge(usize),
59
60    #[error("File closed")]
61    Closed,
62}
63
64pub type Result<T> = std::result::Result<T, TdmsError>;