remove url (only hyper)
diff --git a/src/http.rs b/src/http.rs
index 7a02af7..8e9a92c 100644
--- a/src/http.rs
+++ b/src/http.rs
@@ -1,7 +1,7 @@
+use hyper::Url;
use hyper::client::Client as HttpClient;
use hyper::client::response::Response;
use hyper::header::{Headers, UserAgent};
-use url::Url;
use error::Error;
use util;
@@ -9,7 +9,7 @@
pub fn get(http_client: &HttpClient, url: &Url) -> Result<Response, Error> {
let mut headers = Headers::new();
headers.set(UserAgent(format!("rust-tuf/{}", env!("CARGO_PKG_VERSION"))));
- let req = http_client.get(util::url_to_hyper_url(url)?)
+ let req = http_client.get(url.clone())
.headers(headers);
Ok(req.send()?)
}
diff --git a/src/lib.rs b/src/lib.rs
index 42311dc..f8132fe 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -14,10 +14,10 @@
//!
//! ```no_run
//! extern crate tuf;
-//! extern crate url;
+//! extern crate hyper;
+//! use hyper::Url;
//! use tuf::{Tuf, Config, RemoteRepo};
//! use std::path::PathBuf;
-//! use url::Url;
//!
//! fn main() {
//! let config = Config::build()
@@ -34,105 +34,6 @@
//!
//! The `Tuf` struct is the central piece to using this crate. It handles downloading and verifying
//! of metadata as well as the storage of metadata and targets.
-//!
-//! ### An Integrated Example
-//!
-//! TUF is designed to be a drop in solution to verifying metadata and targets within an existing
-//! update library.
-//!
-//! Consider the following sample application that
-//!
-//! ```no_run
-//! extern crate url;
-//! use std::path::PathBuf;
-//! use url::Url;
-//!
-//! struct MyUpdater<'a> {
-//! remote_url: Url,
-//! local_cache: PathBuf,
-//! package_list: Vec<&'a str>,
-//! }
-//!
-//! impl<'a> MyUpdater<'a> {
-//! fn new(remote_url: Url, local_cache: PathBuf) -> Self {
-//! MyUpdater {
-//! remote_url: remote_url,
-//! local_cache: local_cache,
-//! package_list: Vec::new(),
-//! }
-//! }
-//!
-//! fn update_lists(&mut self) -> Result<(), String> {
-//! unimplemented!() // idk like some http + fs io probably
-//! }
-//!
-//! fn fetch_package(&self, package: &str) -> Result<PathBuf, String> {
-//! if self.package_list.contains(&package) {
-//! unimplemented!() // moar http + fs io
-//! } else {
-//! return Err("Unknown package".to_string())
-//! }
-//! }
-//! }
-//!
-//! fn main() {
-//! let url = Url::parse("http://crates.io/").unwrap();
-//! let cache = PathBuf::from("/var/lib/my-updater/");
-//! let mut updater = MyUpdater::new(url, cache);
-//! updater.update_lists().unwrap();
-//! let path_to_crate = updater.fetch_package("some_crate/0.1.0").unwrap();
-//! println!("Crate available at {}", path_to_crate.to_string_lossy());
-//! }
-//!
-//! ```
-//!
-//! This simple updater (baring some migration shims), could be altered to use TUF as follows.
-//!
-//! ```no_run
-//! extern crate tuf;
-//! extern crate url;
-//! use std::path::PathBuf;
-//! use tuf::{Tuf, Config, RemoteRepo};
-//! use url::Url;
-//!
-//! struct MyUpdater {
-//! tuf: Tuf,
-//! }
-//!
-//! impl MyUpdater {
-//! fn new(remote_url: Url, local_cache: PathBuf) -> Result<Self, String> {
-//! let config = Config::build()
-//! .remote(RemoteRepo::Http(remote_url))
-//! .local_path(local_cache)
-//! .finish()
-//! .map_err(|e| format!("{:?}", e))?;
-//! let tuf = Tuf::new(config)
-//! .map_err(|e| format!("{:?}", e))?;
-//! Ok(MyUpdater {
-//! tuf: tuf,
-//! })
-//! }
-//!
-//! fn update_lists(&mut self) -> Result<(), String> {
-//! self.tuf.update().map_err(|e| format!("{:?}", e))
-//! }
-//!
-//! fn fetch_package(&self, package: &str) -> Result<PathBuf, String> {
-//! self.tuf.fetch_target(&format!("targets/{:?}/pkg.crate", package))
-//! .map_err(|e| format!("{:?}", e))
-//! }
-//! }
-//!
-//! fn main() {
-//! let url = Url::parse("http://crates.io/").unwrap();
-//! let cache = PathBuf::from("/var/lib/my-updater/");
-//! let mut updater = MyUpdater::new(url, cache).unwrap();
-//! updater.update_lists().unwrap();
-//! let path_to_crate = updater.fetch_package("some_crate/0.1.0").unwrap();
-//! println!("Crate available at {}", path_to_crate.to_string_lossy());
-//! }
-//!
-//! ```
#![deny(missing_docs)]
diff --git a/src/tuf.rs b/src/tuf.rs
index cac1287..b4fca45 100644
--- a/src/tuf.rs
+++ b/src/tuf.rs
@@ -2,7 +2,7 @@
use chrono::UTC;
use json;
-use hyper::Url as HyperUrl;
+use hyper::Url;
use hyper::client::Client;
use ring::digest;
use ring::digest::{SHA256, SHA512};
@@ -11,7 +11,6 @@
use std::fs::{self, File, DirBuilder};
use std::io::{Read, Write, Seek, SeekFrom};
use std::path::{PathBuf, Path};
-use url::Url;
use uuid::Uuid;
use walkdir::WalkDir;
@@ -1023,7 +1022,6 @@
.map_err(|_| Error::Generic("URL path could not be mutated".to_string()))?
.extend(util::url_path_to_path_components(&target)?);
}
- let url = util::url_to_hyper_url(&url)?;
let mut resp = http::get(&self.http_client, &url)?;
match Self::read_and_verify(&mut resp,
@@ -1269,7 +1267,7 @@
enum FetchType {
Cache(PathBuf),
File(PathBuf),
- Http(HyperUrl),
+ Http(Url),
}
impl FetchType {
diff --git a/src/util.rs b/src/util.rs
index 85991a5..1427af0 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -1,8 +1,6 @@
-use hyper;
use std::fs::{self, File};
use std::io::{self, Read, Write, Seek, SeekFrom};
use std::path::{Path, PathBuf};
-use url::Url;
use url::percent_encoding::percent_decode;
use uuid::Uuid;
@@ -36,11 +34,6 @@
Ok(out)
}
-/// Converts a `url::Url` into a `hyper::Url`.
-pub fn url_to_hyper_url(url: &Url) -> Result<hyper::Url, Error> {
- Ok(hyper::Url::parse(url.as_str())?)
-}
-
#[derive(Debug)]
struct TempFileInner {
diff --git a/tests/vectors.rs b/tests/vectors.rs
index 0226d40..eebff2a 100644
--- a/tests/vectors.rs
+++ b/tests/vectors.rs
@@ -1,4 +1,5 @@
extern crate data_encoding;
+extern crate hyper;
extern crate pem;
extern crate serde;
#[macro_use]
@@ -6,9 +7,9 @@
extern crate serde_json as json;
extern crate tempdir;
extern crate tuf;
-extern crate url;
use data_encoding::HEXLOWER;
+use hyper::Url;
use std::fs::{self, File, DirEntry};
use std::io::{self, Read};
use std::path::{PathBuf, Path};
@@ -16,7 +17,6 @@
use tempdir::TempDir;
use tuf::{Tuf, Config, Error, RemoteRepo};
use tuf::meta::{Key, KeyValue, KeyType};
-use url::Url;
fn load_vector_meta() -> String {