use thiserror::Error;
#[derive(Debug, Error)]
pub enum SoapError {
#[error("Network/HTTP error: {0}")]
Network(String),
#[error("XML parsing error: {0}")]
Parse(String),
#[error("SOAP fault: error code {code}{}", .description.as_deref().map(|d| format!(" ({d})")).unwrap_or_default())]
Fault {
code: u16,
description: Option<String>,
},
}
impl SoapError {
pub fn fault(code: u16) -> Self {
Self::Fault {
code,
description: None,
}
}
}