#[derive(Debug)]
pub enum Error {
NoThreadHandle,
FailedToJoinThread,
NoSinkMessageSender,
NoSinkMessageReceiver,
MessageSinkFailed,
NoSinkElement,
PipelineNotReady,
NoSinkDatagramSender,
FailedToRecvFromParent,
ReceivedInvalidDatagramFromParent,
ReceivedInvalidDatagramFromSink,
ReceiveFromSinkFailed,
MessageParentFailed,
NoParentMessageSender,
InvalidSinkType,
}
impl std::error::Error for Error {}
impl std::fmt::Display for Error {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(
f,
"{}",
match self {
Self::NoThreadHandle => "No thread handle",
Self::FailedToJoinThread => "Failed to join thread",
Self::NoSinkMessageSender => "No sink message sender",
Self::NoSinkMessageReceiver => "No sink message receiver",
Self::MessageSinkFailed => "Message sink failed",
Self::NoSinkElement => "No sink element",
Self::PipelineNotReady => "Pipeline is not ready",
Self::NoSinkDatagramSender => "No sink datagram sender",
Self::FailedToRecvFromParent => "Failed to recv from parent",
Self::ReceivedInvalidDatagramFromParent => "Received invalid datagram from parent",
Self::ReceivedInvalidDatagramFromSink => "Received invalid datagram from sink",
Self::ReceiveFromSinkFailed => "Receive from sink failed",
Self::MessageParentFailed => "Message parent failed",
Self::NoParentMessageSender => "No parent message sender",
Self::InvalidSinkType => "Invalid sink type",
}
)
}
}