From 347e8d6f1787fb2063900992617efcf33677413a Mon Sep 17 00:00:00 2001 From: Alvaro Parker Date: Fri, 20 Sep 2024 11:22:34 -0300 Subject: [PATCH] Impl Error for ReadError --- tokio-xmpp/src/xmlstream/mod.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tokio-xmpp/src/xmlstream/mod.rs b/tokio-xmpp/src/xmlstream/mod.rs index aad992d3ebdf0bd6f1af1d73cecdb44360d61aad..739282e564dc031210612f071d8216aeeeca110b 100644 --- a/tokio-xmpp/src/xmlstream/mod.rs +++ b/tokio-xmpp/src/xmlstream/mod.rs @@ -180,6 +180,27 @@ pub enum ReadError { StreamFooterReceived, } +impl fmt::Display for ReadError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + ReadError::SoftTimeout => write!(f, "soft timeout"), + ReadError::HardError(e) => write!(f, "hard error: {}", e), + ReadError::ParseError(e) => write!(f, "parse error: {}", e), + ReadError::StreamFooterReceived => write!(f, "stream footer received"), + } + } +} + +impl core::error::Error for ReadError { + fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { + match self { + ReadError::HardError(e) => Some(e), + ReadError::ParseError(e) => Some(e), + _ => None, + } + } +} + enum WriteState { Open, SendElementFoot,