1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
use std::collections::HashMap; pub mod hyper; pub trait Hurl { fn request(&self, Request) -> HurlResult; } #[derive(Debug)] pub struct Request<'a> { pub url: &'a str, pub method: Method, pub auth: Option<Auth<'a>>, pub query: Option<HashMap<&'a str, String>>, pub body: Option<String> } #[derive(Debug)] pub struct Response { pub status: u16, pub body: String } impl ToString for Response { fn to_string(&self) -> String { self.body.clone() } } pub type HurlResult = Result<Response, String>; #[derive(Debug)] pub enum Method { POST, GET } #[derive(Debug)] pub struct Auth<'a> { pub username: &'a str, pub password: &'a str }