summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/lib.rs b/src/lib.rs
index e0100fa..21f0cb9 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -2,9 +2,7 @@ extern crate futures;
extern crate reqwest;
extern crate serde;
extern crate chrono;
-
-#[macro_use]
-extern crate serde_derive;
+#[macro_use] extern crate serde_derive;
pub mod helix;
pub mod kraken;
@@ -12,7 +10,12 @@ pub mod types;
pub use self::helix::Client as HelixClient;
pub use self::kraken::Client as KrakenClient;
+
use reqwest::r#async::Client as ReqwestClient;
+use reqwest::header::HeaderMap;
+use std::marker::PhantomData;
+use std::sync::Arc;
+use std::collections::BTreeMap;
pub struct Client {
pub helix: HelixClient,
@@ -27,7 +30,22 @@ impl Client {
kraken: KrakenClient::new_with_client(client_id, client.clone()),
}
}
+}
- pub fn nop(self) {
- }
+trait Request<T> {
+ fn url(&self) -> String;
+ fn headers(&self) -> &HeaderMap;
+ fn query(&self) -> &BTreeMap<String, String>;
+ fn returns(&self) -> T;
+}
+
+pub struct GetRequest<T> {
+ inner: Arc<GetRequestRef<T>>,
+}
+
+struct GetRequestRef<T> {
+ url: String,
+// headers: HeaderMap,
+// query: BTreeMap<String, String>,
+ returns: PhantomData<T>,
}