use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
pub enum Method {
Get,
Head,
Post,
Put,
Delete,
Connect,
Options,
Trace,
Patch,
Other(String),
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
pub enum Scheme {
Http,
Https,
Other(String),
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
pub struct Header {
pub name: String,
pub value: Vec<u8>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
pub struct Request {
pub method: Method,
pub url: String,
pub headers: Vec<Header>,
pub body: Option<Vec<u8>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Default)]
pub struct RequestOptions {
pub timeout_ms: Option<u64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
pub struct Response {
pub status: u16,
pub headers: Vec<Header>,
pub body: Vec<u8>,
}