use thiserror::Error;
use crate::{ExceptionResponse, FunctionCode, Response};
#[derive(Debug, Error)]
pub enum Error {
#[error(transparent)]
Protocol(#[from] ProtocolError),
#[error(transparent)]
Transport(#[from] std::io::Error),
}
#[derive(Debug, Error)]
pub enum ProtocolError {
#[error("mismatching headers: {message} {result:?}")]
HeaderMismatch {
message: String,
result: Result<Response, ExceptionResponse>,
},
#[error("mismatching function codes: {request} {result:?}")]
FunctionCodeMismatch {
request: FunctionCode,
result: Result<Response, ExceptionResponse>,
},
}