modbus_relay/errors/
frame.rs1use thiserror::Error;
2
3use super::{FrameFormatKind, FrameSizeKind};
4
5#[derive(Error, Debug)]
6pub enum FrameError {
7 #[error("Frame size error: {kind} - {details}")]
8 Size {
9 kind: FrameSizeKind,
10 details: String,
11 frame_data: Option<Vec<u8>>,
12 },
13
14 #[error("Frame format error: {kind} - {details}")]
15 Format {
16 kind: FrameFormatKind,
17 details: String,
18 frame_data: Option<Vec<u8>>,
19 },
20
21 #[error("CRC error: calculated={calculated:04X}, received={received:04X}, frame={frame_hex}")]
22 Crc {
23 calculated: u16,
24 received: u16,
25 frame_hex: String,
26 },
27}