use crate::{http::Method};
use super::{RequestHeader};
use url::Url;
use std::collections::HashMap;
#[derive(Clone, Debug)]
pub struct Request {
pub(crate) header: RequestHeader,
pub(crate) content: Vec<u8>
}
impl Request {
pub fn method(&self) -> &Method {
&self.header.method
}
pub fn url(&self) -> &Url {
&self.header.url
}
pub fn address(&self) -> std::net::SocketAddr {
self.header.addr
}
pub fn header<A: AsRef<str>>(&self, header: A) -> Option<&Vec<String>> {
self.header.headers.get(header.as_ref())
}
pub fn headers(&self) -> &HashMap<String, Vec<String>> {
&self.header.headers
}
pub fn body(&self) -> &Vec<u8> {
&self.content
}
}