mssql_codec/
error.rs

1//! Codec error types.
2
3use thiserror::Error;
4
5/// Errors that can occur during packet encoding/decoding.
6#[derive(Debug, Error)]
7pub enum CodecError {
8    /// IO error during read/write operations.
9    #[error("IO error: {0}")]
10    Io(#[from] std::io::Error),
11
12    /// Protocol-level error from tds-protocol.
13    #[error("protocol error: {0}")]
14    Protocol(#[from] tds_protocol::ProtocolError),
15
16    /// Packet too large.
17    #[error("packet too large: {size} bytes (max {max})")]
18    PacketTooLarge {
19        /// Actual packet size.
20        size: usize,
21        /// Maximum allowed size.
22        max: usize,
23    },
24
25    /// Incomplete packet data.
26    #[error("incomplete packet: need {needed} more bytes")]
27    IncompletePacket {
28        /// Bytes needed to complete the packet.
29        needed: usize,
30    },
31
32    /// Invalid packet header.
33    #[error("invalid packet header")]
34    InvalidHeader,
35
36    /// Connection closed unexpectedly.
37    #[error("connection closed")]
38    ConnectionClosed,
39
40    /// Encoding error.
41    #[error("encoding error: {0}")]
42    Encoding(String),
43
44    /// Decoding error.
45    #[error("decoding error: {0}")]
46    Decoding(String),
47}