use hyper::header::{ContentType, ContentLength};
use hyper::Method;
use mime::{Mime, TopLevel, SubLevel, Attr, Value};
use hyper::client::Request as HyperRequest;
use super::Request;
impl<'req> Request for HyperRequest<'req> {
fn set_method(&mut self) {
self.set_method(Method::Post);
}
fn set_boundary(&mut self, boundary: &str) {
self.headers_mut().set(content_type(boundary));
}
fn set_content_len(&mut self, content_len: u64) {
self.headers_mut().set(ContentLength(content_len));
}
}
pub fn content_type(bound: &str) -> ContentType {
ContentType(multipart_mime(bound))
}
fn multipart_mime(bound: &str) -> Mime {
Mime(
TopLevel::Multipart, SubLevel::Ext("form-data".into()),
vec![(Attr::Ext("boundary".into()), Value::Ext(bound.into()))]
)
}