use serde::Deserialize;
use std::collections::HashMap;
#[derive(Debug)]
pub enum ClientError {
Structured(HttpError<GateApiError>),
Raw(HttpError<String>),
}
#[derive(Debug)]
pub struct HttpError<T> {
pub status_code: u16,
pub data: T,
pub headers: HashMap<String, String>,
}
impl<T> HttpError<T> {
pub fn new(status_code: u16, data: T, headers: HashMap<String, String>) -> Self {
Self {
status_code,
data,
headers,
}
}
}
#[derive(Deserialize, Debug)]
pub struct GateApiError {
#[serde(rename(deserialize = "label"))]
pub label: String,
#[serde(rename(deserialize = "message"))]
pub message: String,
}