use ::thiserror::Error;
#[derive(Error, Debug)]
pub enum AckError {
#[error("NATS error: {0}")]
Nats(#[from] async_nats::Error),
#[cfg(test)]
#[error("Error Test")]
ErrorTest,
}
#[derive(Error, Debug)]
pub enum PubError {
#[error("NATS JetStream publish error: {0}")]
NatsPublish(#[from] async_nats::jetstream::context::PublishError),
#[error("JSON error: {0}")]
Json(#[from] serde_json::Error),
#[error("MessagePack encode error: {0}")]
MessagePackEncode(#[from] rmp_serde::encode::Error),
#[cfg(test)]
#[error("Error Test")]
ErrorTest,
}
#[derive(Error, Debug)]
pub enum SubError {
#[error("Acknowledgment error: {0}")]
AckError(#[from] AckError),
#[error("NATS error: {0}")]
Nats(#[from] async_nats::Error),
#[error("NATS JetStream stream error: {0}")]
NatsStream(#[from] async_nats::jetstream::consumer::StreamError),
#[error("NATS JetStream Consumer Error: {0}")]
NatsJetStreamConsumer(#[from] async_nats::jetstream::stream::ConsumerError),
#[error("NATS JetStream Pull Consumer message error: {0}")]
NatsPullMessage(
#[from] async_nats::jetstream::consumer::pull::MessagesError,
),
#[error("NATS JetStream Push Consumer message error: {0}")]
NatsPushMessage(
#[from] async_nats::jetstream::consumer::push::MessagesError,
),
#[error("NATS JetStream Ordered Pull Consumer message error: {0}")]
NatsOrderedPullMessage(
#[from] async_nats::jetstream::consumer::pull::OrderedError,
),
#[error("NATS JetStream Push Consumer message error: {0}")]
NatsOrderedPushMessage(
#[from] async_nats::jetstream::consumer::push::OrderedError,
),
#[error("JSON error: {0}")]
Json(#[from] serde_json::Error),
#[error("MessagePack decode error: {0}")]
MessagePackDecode(#[from] rmp_serde::decode::Error),
#[cfg(test)]
#[error("Error Test")]
ErrorTest,
}
#[derive(Error, Debug)]
pub enum UnSubError {
#[error("NATS Unsubscribe error: {0}")]
NatsUnsubscribe(#[from] async_nats::jetstream::stream::ConsumerError),
}