aboutsummaryrefslogtreecommitdiffstats
path: root/filamento/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'filamento/src/error.rs')
-rw-r--r--filamento/src/error.rs25
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),