rabbitmq_stream_protocol/message/amqp/
error.rs1use std::string::FromUtf8Error;
2
3use crate::error::IncompleteError;
4
5use super::codec::constants::TypeCode;
6
7#[derive(Debug)]
8pub enum AmqpEncodeError {
9 Io(std::io::Error),
10}
11
12impl From<std::io::Error> for AmqpEncodeError {
13 fn from(err: std::io::Error) -> Self {
14 AmqpEncodeError::Io(err)
15 }
16}
17
18#[derive(Debug)]
19pub enum AmqpDecodeError {
20 InvalidTypeCode(u8),
21 InvalidTypeCodeFor { target: String, code: TypeCode },
22 MessageParse(String),
23 Incomplete(IncompleteError),
24 Utf8Error(FromUtf8Error),
25 UuidError(uuid::Error),
26}
27
28impl AmqpDecodeError {
29 pub fn parse_error(msg: impl Into<String>) -> AmqpDecodeError {
30 AmqpDecodeError::MessageParse(msg.into())
31 }
32}
33
34impl From<IncompleteError> for AmqpDecodeError {
35 fn from(err: IncompleteError) -> Self {
36 AmqpDecodeError::Incomplete(err)
37 }
38}
39
40impl From<FromUtf8Error> for AmqpDecodeError {
41 fn from(err: FromUtf8Error) -> Self {
42 AmqpDecodeError::Utf8Error(err)
43 }
44}
45impl From<uuid::Error> for AmqpDecodeError {
46 fn from(err: uuid::Error) -> Self {
47 AmqpDecodeError::UuidError(err)
48 }
49}