modbus_relay/errors/
frame.rs

1use 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}