pub mod request_config;
use reqwest::Method;
use serde_json::Value;
use std::collections::HashMap;
use crate::headers::Headers;
#[derive(Debug, Clone)]
pub struct RequestConfig<'a> {
pub url: Option<String>,
pub method: Method,
pub base_url: Option<String>,
pub headers: Option<Headers<'a>>,
pub params: Option<HashMap<String, String>>,
pub data: Option<Value>,
pub timeout: Option<u64>,
pub response_type: ResponseType, }
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ResponseType {
ArrayBuffer,
Document,
Json,
Text,
Stream,
}
impl std::str::FromStr for ResponseType {
type Err = String;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s.to_lowercase().as_str() {
"arraybuffer" => Ok(ResponseType::ArrayBuffer),
"document" => Ok(ResponseType::Document),
"json" => Ok(ResponseType::Json),
"text" => Ok(ResponseType::Text),
"stream" => Ok(ResponseType::Stream),
_ => Err(format!("Invalid response type: {}", s)),
}
}
}