use snafu::Snafu;
use tokio::sync::{mpsc, oneshot};
use crate::{
error::SpanTraceWrapper,
receive_handler::ReceiveHandlerCommand,
server::{ConnectionId, ServerCommand},
};
#[derive(Debug, Snafu)]
#[snafu(visibility(pub), context(suffix(false)))]
pub enum ServerError {
Start {
source: std::io::Error,
#[snafu(implicit)]
context: Box<SpanTraceWrapper>,
},
SendCommand {
source: mpsc::error::SendError<ServerCommand>,
#[snafu(implicit)]
context: Box<SpanTraceWrapper>,
},
ReceiveResponse {
source: oneshot::error::RecvError,
#[snafu(implicit)]
context: Box<SpanTraceWrapper>,
},
ConnectionNotFound {
id: ConnectionId,
#[snafu(implicit)]
context: Box<SpanTraceWrapper>,
},
SendConnectionCommand {
source: mpsc::error::SendError<ReceiveHandlerCommand>,
#[snafu(implicit)]
context: Box<SpanTraceWrapper>,
},
ReceiveHandlerAsduAck {
source: oneshot::error::RecvError,
#[snafu(implicit)]
context: Box<SpanTraceWrapper>,
},
PendingOutgoingAsduBufferFull {
#[snafu(implicit)]
context: Box<SpanTraceWrapper>,
},
}