digital_blasphemy_client 0.1.6

A client for the Digital Blasphemy API
Documentation
use serde::{Deserialize, Serialize};
use std::error::Error;
use std::fmt;

#[derive(Serialize, Deserialize, Debug)]
pub struct ErrorResponse {
    pub code: u64,
    pub description: String,
    pub errors: Option<Vec<String>>,
}

impl fmt::Display for ErrorResponse {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        let errors: String = self
            .errors
            .clone()
            .unwrap_or_default()
            .iter()
            .map(|error| format!("'{error}'"))
            .collect::<Vec<String>>()
            .join(", ");
        write!(
            f,
            "Code: {}, Description: {}, Errors: {}",
            self.code, self.description, errors
        )
    }
}

impl Error for ErrorResponse {}