From ba5ad94525940e3e34983425961550c67afc49ae Mon Sep 17 00:00:00 2001 From: cel 🌸 Date: Fri, 28 Mar 2025 22:44:11 +0000 Subject: feat(filamento): disco info requests --- filamento/src/error.rs | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'filamento/src/error.rs') 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,14 +81,32 @@ 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}")] PushReply(WriteError), } +#[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}")] -- cgit