diff options
Diffstat (limited to 'filamento/src/error.rs')
-rw-r--r-- | filamento/src/error.rs | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/filamento/src/error.rs b/filamento/src/error.rs index ccb4406..8e2e4be 100644 --- a/filamento/src/error.rs +++ b/filamento/src/error.rs @@ -1,7 +1,8 @@ use std::sync::Arc; +use jid::JID; use lampada::error::{ConnectionError, ReadError, WriteError}; -use stanza::client::Stanza; +use stanza::client::{Stanza, iq::Query}; use thiserror::Error; pub use lampada::error::CommandError; @@ -80,8 +81,6 @@ pub enum RosterError { // TODO: display for stanza, to show as xml, same for read error types. #[error("unexpected reply: {0:?}")] UnexpectedStanza(Stanza), - #[error("stream read: {0}")] - Read(#[from] ReadError), #[error("stanza error: {0}")] StanzaError(#[from] stanza::client::error::Error), #[error("could not reply to roster push: {0}")] @@ -89,6 +88,26 @@ pub enum RosterError { } #[derive(Debug, Error, Clone)] +pub enum DiscoError { + #[error("write error: {0}")] + Write(#[from] WriteError), + #[error("iq response: {0}")] + IqResponse(#[from] RequestError), + #[error("reply from incorrect entity: {0}")] + IncorrectEntity(JID), + #[error("unexpected reply: {0:?}")] + UnexpectedStanza(Stanza), + #[error("stanza error: {0}")] + StanzaError(#[from] stanza::client::error::Error), + #[error("disco result missing query item")] + MissingQuery, + #[error("disco error missing error")] + MissingError, + #[error("received mismatched query")] + MismatchedQuery(Query), +} + +#[derive(Debug, Error, Clone)] pub enum RequestError { #[error("sending request: {0}")] Write(#[from] WriteError), |