├── .travis.yml ├── .gitignore ├── Cargo.toml ├── LICENSE ├── README.md ├── src ├── graylog.rs ├── main.rs └── grafana.rs └── Cargo.lock /.travis.yml: -------------------------------------------------------------------------------- 1 | language: rust 2 | script: 3 | - cargo test -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | **/*.rs.bk 3 | /.idea 4 | /tmp 5 | /*.json -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "graylog-to-grafana" 3 | description = "This tool can convert Graylog dashboards into Grafana dashboards." 4 | version = "0.2.1" 5 | authors = ["jan.jansen "] 6 | edition = "2018" 7 | license = "MIT" 8 | keywords = ["graylog", "grafana"] 9 | repository = "https://github.com/GDATASoftwareAG/graylog-to-grafana" 10 | readme = "README.md" 11 | 12 | [badges] 13 | travis-ci = { repository = "GDATASoftwareAG/graylog-to-grafana" } 14 | 15 | [dependencies] 16 | serde = { version = "1.0", features = ["derive"] } 17 | serde_json = "1.0" 18 | structopt = "0.2" 19 | reqwest = "0.9" 20 | log = "0.4" 21 | env_logger = "0.6" 22 | url = "1.7.2" -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 G DATA Software AG 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Graylog to Grafana   [![Build Status]][travis] [![Latest Version]][crates.io] 2 | 3 | [Build Status]: https://travis-ci.org/GDATASoftwareAG/graylog-to-grafana.svg?branch=master 4 | [travis]: https://travis-ci.org/GDATASoftwareAG/graylog-to-grafana 5 | [Latest Version]: https://img.shields.io/crates/v/graylog-to-grafana.svg 6 | [crates.io]: https://crates.io/crates/graylog-to-grafana 7 | 8 | This tool can convert Graylog dashboards into Grafana dashboards. 9 | 10 | ``` 11 | graylog-to-grafana 0.2.1 12 | jan.jansen 13 | This tool can convert Graylog dashboards into Grafana dashboards. 14 | 15 | USAGE: 16 | graylog-to-grafana [OPTIONS] --graylog-url 17 | 18 | FLAGS: 19 | -h, --help Prints help information 20 | -V, --version Prints version information 21 | 22 | OPTIONS: 23 | --datasource [default: graylog] 24 | --graylog-url Graylog url 25 | 26 | ARGS: 27 | Graylog content pack to process 28 | 29 | SUBCOMMANDS: 30 | add Allows to add automatically dashboards to Grafana 31 | generate Allows to save Grafana dashboards into a directory 32 | help Prints this message or the help of the given subcommand(s) 33 | ``` 34 | 35 | ## How to use 36 | 37 | ### Create a content pack 38 | Create a Graylog [content pack](https://docs.graylog.org/en/3.0/pages/content_packs.html). 39 | 40 | 41 | ### Automatically import dashboards into Grafana 42 | 43 | ```cmd 44 | graylog-to-grafana dashboards.json --graylog-url add --token [bearer-token] --url [grafana-url] --folder [folder-id] 45 | ``` 46 | The Argument `--graylog-url` is used for drilldown links. 47 | 48 | ### Just convert dashboard into Grafana Json 49 | 50 | ```cmd 51 | graylog-to-grafana dashboards.json --graylog-url generate dashboard 52 | ``` 53 | The Argument `--graylog-url` is used for drilldown links. 54 | 55 | You can import these dashboard into grafana using the default user interface, see here [Import dashboards](https://grafana.com/docs/reference/export_import/). 56 | 57 | ## Installation 58 | 59 | ### From source 60 | 61 | If you want to build `graylog-to-grafana` from source, you need Rust 1.31 or higher. You can then use [cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html) to build everything: 62 | 63 | ``` 64 | cargo install graylog-to-grafana 65 | ``` 66 | 67 | -------------------------------------------------------------------------------- /src/graylog.rs: -------------------------------------------------------------------------------- 1 | use serde::{Deserialize, Serialize}; 2 | 3 | #[derive(Serialize, Deserialize, Debug, Clone)] 4 | pub struct ContentPack { 5 | pub name: String, 6 | pub dashboards: Vec, 7 | } 8 | 9 | #[derive(Serialize, Deserialize, Debug, Clone)] 10 | pub struct Dashboard { 11 | pub title: String, 12 | pub description: String, 13 | pub dashboard_widgets: Vec, 14 | } 15 | 16 | #[derive(Serialize, Deserialize, Debug, Clone)] 17 | pub enum DashboardWidgetType { 18 | #[serde(rename = "SEARCH_RESULT_COUNT")] 19 | SearchResultCount, 20 | #[serde(rename = "SEARCH_RESULT_CHART")] 21 | SearchResultChart, 22 | #[serde(rename = "QUICKVALUES")] 23 | QuickValues, 24 | #[serde(rename = "FIELD_CHART")] 25 | FieldChart, 26 | #[serde(rename = "STACKED_CHART")] 27 | StackedChart, 28 | #[serde(rename = "QUICKVALUES_HISTOGRAM")] 29 | QuickValuesHistogram, 30 | } 31 | #[derive(Serialize, Deserialize, Debug, Clone)] 32 | pub struct DashboardWidget { 33 | pub description: String, 34 | pub r#type: DashboardWidgetType, 35 | pub configuration: DashboardWidgetConfiguration, 36 | pub row: i64, 37 | pub col: i64, 38 | pub height: i64, 39 | pub width: i64, 40 | } 41 | 42 | #[derive(Serialize, Deserialize, Debug, Clone)] 43 | pub struct DashboardWidgetConfiguration { 44 | pub query: Option, 45 | pub valuetype: Option, 46 | pub interval: Option, 47 | pub renderer: Option, 48 | pub field: Option, 49 | pub series: Option>, 50 | pub timerange: TimeRange, 51 | pub trend: Option, 52 | pub sort_order: Option, 53 | pub limit: Option, 54 | } 55 | 56 | #[derive(Serialize, Deserialize, Debug, Clone, PartialEq)] 57 | pub enum ChartRenderer { 58 | #[serde(rename = "bar")] 59 | Bar, 60 | #[serde(rename = "line")] 61 | Line, 62 | #[serde(rename = "area")] 63 | Area, 64 | } 65 | 66 | #[derive(Serialize, Deserialize, Debug, Clone)] 67 | pub struct DashboardWidgetConfigStackedChartSerie { 68 | pub query: String, 69 | pub field: String, 70 | pub statistical_function: String, 71 | } 72 | 73 | #[derive(Serialize, Deserialize, Debug, Clone)] 74 | pub struct TimeRange { 75 | pub range: i64, 76 | } 77 | 78 | #[derive(Serialize, Deserialize, Debug, Clone)] 79 | pub enum DashboardWidgetConfigSearchResultChartInterval { 80 | #[serde(rename = "week")] 81 | Week, 82 | #[serde(rename = "minute")] 83 | Minute, 84 | #[serde(rename = "day")] 85 | Day, 86 | #[serde(rename = "hour")] 87 | Hour, 88 | } 89 | 90 | impl DashboardWidgetConfigSearchResultChartInterval { 91 | pub fn grafana(&self) -> String { 92 | match self { 93 | DashboardWidgetConfigSearchResultChartInterval::Week => "7d".to_string(), 94 | DashboardWidgetConfigSearchResultChartInterval::Minute => "1m".to_string(), 95 | DashboardWidgetConfigSearchResultChartInterval::Day => "1d".to_string(), 96 | DashboardWidgetConfigSearchResultChartInterval::Hour => "1h".to_string(), 97 | } 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use reqwest::Client; 2 | use std::error::Error; 3 | use std::fs::File; 4 | use std::io::BufReader; 5 | use std::path::Path; 6 | use std::path::PathBuf; 7 | use structopt::StructOpt; 8 | 9 | mod grafana; 10 | mod graylog; 11 | 12 | /// Allows to save Grafana dashboards into a directory 13 | #[derive(StructOpt, Debug)] 14 | pub struct GenerateArguments { 15 | /// Directory for output grafana dashboards 16 | #[structopt(name = "output", parse(from_os_str))] 17 | output: PathBuf, 18 | } 19 | /// Allows to add automatically dashboards to Grafana 20 | #[derive(StructOpt, Debug)] 21 | pub struct AddArguments { 22 | #[structopt(long = "url")] 23 | url: String, 24 | 25 | #[structopt(long = "token", default_value = "graylog")] 26 | token: String, 27 | 28 | #[structopt(long = "folder", default_value = "0")] 29 | folder: i64, 30 | } 31 | #[derive(Debug, StructOpt)] 32 | pub enum Command { 33 | /// Allows to save Grafana dashboards into a directory 34 | #[structopt(name = "generate")] 35 | Generate(GenerateArguments), 36 | 37 | /// Allows to add automatically dashboards to Grafana 38 | #[structopt(name = "add")] 39 | Add(AddArguments), 40 | } 41 | 42 | #[derive(Debug, StructOpt)] 43 | #[structopt(name = "graylog-to-grafana")] 44 | pub struct ApplicationArguments { 45 | /// Graylog content pack to process 46 | #[structopt(name = "input", parse(from_os_str))] 47 | input: PathBuf, 48 | 49 | #[structopt(long = "datasource", default_value = "graylog")] 50 | datasource: String, 51 | 52 | /// Graylog url 53 | #[structopt(long = "graylog-url")] 54 | graylog_url: String, 55 | 56 | #[structopt(subcommand)] 57 | command: Command, 58 | } 59 | 60 | fn main() { 61 | env_logger::init(); 62 | 63 | let opt: &ApplicationArguments = &ApplicationArguments::from_args(); 64 | let u = read_content_pack_from_file(&opt.input).unwrap(); 65 | let dashboards: Vec<_> = u 66 | .dashboards 67 | .into_iter() 68 | .map(|t| grafana::Dashboard::create_dashboard_from_graylog(t, opt)) 69 | .collect(); 70 | 71 | match &opt.command { 72 | Command::Generate(generate) => { 73 | dashboards 74 | .iter() 75 | .for_each(|s| write_grafana_dashboard(s, &generate).unwrap()); 76 | } 77 | Command::Add(add) => { 78 | dashboards 79 | .into_iter() 80 | .map(|s| grafana::ApiDashboard { 81 | dashboard: s, 82 | folder_id: add.folder, 83 | overwrite: true, 84 | }) 85 | .for_each(|dashboard| { 86 | let url = format!("{}{}", add.url, "/api/dashboards/db/"); 87 | let client = Client::new(); 88 | client 89 | .post(&url) 90 | .header("Authorization", format!("{} {}", "Bearer", add.token)) 91 | .json(&dashboard) 92 | .send() 93 | .unwrap(); 94 | }); //83 95 | } 96 | } 97 | } 98 | 99 | fn write_grafana_dashboard( 100 | s: &grafana::Dashboard, 101 | opt: &GenerateArguments, 102 | ) -> Result<(), Box> { 103 | let filename = format!( 104 | "{}.json", 105 | s.title.replace(" ", "_").replace("/", "_").to_lowercase() 106 | ); 107 | let mut path = opt.output.clone(); 108 | path.push(filename); 109 | let file = File::create(path)?; 110 | serde_json::to_writer_pretty(file, &s)?; 111 | Ok(()) 112 | } 113 | 114 | fn read_content_pack_from_file>( 115 | path: &P, 116 | ) -> Result> { 117 | // Open the file in read-only mode with buffer. 118 | let file = File::open(path)?; 119 | let reader = BufReader::new(file); 120 | 121 | // Read the JSON contents of the file as an instance of `User`. 122 | let u = serde_json::from_reader(reader)?; 123 | 124 | // Return the `User`. 125 | Ok(u) 126 | } 127 | -------------------------------------------------------------------------------- /src/grafana.rs: -------------------------------------------------------------------------------- 1 | use crate::{graylog, ApplicationArguments}; 2 | use log::warn; 3 | use serde::{Deserialize, Serialize}; 4 | use url::form_urlencoded; 5 | 6 | #[derive(Serialize, Deserialize, Debug, Clone)] 7 | pub struct Dashboard { 8 | pub title: String, 9 | panels: Vec, 10 | time: TimeRange, 11 | } 12 | 13 | #[derive(Serialize, Deserialize, Debug, Clone)] 14 | struct TimeRange { 15 | from: String, 16 | to: String, 17 | } 18 | 19 | #[derive(Serialize, Deserialize, Debug, Clone)] 20 | pub struct ApiDashboard { 21 | pub dashboard: Dashboard, 22 | #[serde(rename = "folderId")] 23 | pub folder_id: i64, 24 | pub overwrite: bool, 25 | } 26 | 27 | impl Dashboard { 28 | pub fn create_dashboard_from_graylog( 29 | dash: graylog::Dashboard, 30 | opt: &ApplicationArguments, 31 | ) -> Dashboard { 32 | Dashboard { 33 | title: dash.title, 34 | panels: dash 35 | .dashboard_widgets 36 | .into_iter() 37 | .filter_map(|t| Panel::create_panel(t, opt)) 38 | .collect(), 39 | time: TimeRange { 40 | from: "now-2d".to_string(), 41 | to: "now".to_string(), 42 | }, 43 | } 44 | } 45 | } 46 | 47 | #[derive(Serialize, Deserialize, Debug, Clone)] 48 | pub enum PanelType { 49 | #[serde(rename = "graph")] 50 | Graph, 51 | #[serde(rename = "singlestat")] 52 | SingleStat, 53 | #[serde(rename = "grafana-piechart-panel")] 54 | PieChart, 55 | } 56 | 57 | #[derive(Serialize, Deserialize, Debug, Clone)] 58 | pub struct Link { 59 | title: String, 60 | r#type: String, 61 | url: String, 62 | #[serde(rename = "targetBlank")] 63 | target_blank: bool, 64 | } 65 | 66 | impl Link { 67 | fn new(url: &str, query: &str, seconds: i64) -> Link { 68 | let encoded: String = form_urlencoded::Serializer::new(String::new()) 69 | .append_pair("rangetype", "relative") 70 | .append_pair("fields", "message,source") 71 | .append_pair("width", "1920") 72 | .append_pair("highlightMessage", "") 73 | .append_pair("relative", &seconds.to_string()) 74 | .append_pair("q", query) 75 | .finish(); 76 | Link { 77 | title: "Go to Graylog".to_string(), 78 | r#type: "absolute".to_string(), 79 | url: format!("{}/search?{}", url, encoded), 80 | target_blank: true, 81 | } 82 | } 83 | } 84 | 85 | #[derive(Serialize, Deserialize, Debug, Clone)] 86 | pub struct Panel { 87 | r#type: PanelType, 88 | title: String, 89 | links: Vec, 90 | datasource: String, 91 | targets: Vec, 92 | #[serde(skip_serializing_if = "Option::is_none")] 93 | bars: Option, 94 | #[serde(skip_serializing_if = "Option::is_none")] 95 | lines: Option, 96 | #[serde(skip_serializing_if = "Option::is_none")] 97 | points: Option, 98 | #[serde(skip_serializing_if = "Option::is_none")] 99 | sparkline: Option, 100 | #[serde(rename = "gridPos")] 101 | grid_pos: GridPos, 102 | #[serde(rename = "valueName", skip_serializing_if = "Option::is_none")] 103 | value_name: Option, 104 | #[serde(rename = "timeFrom", skip_serializing_if = "Option::is_none")] 105 | time_from: Option, 106 | } 107 | 108 | impl Panel { 109 | fn new_graph( 110 | title: String, 111 | targets: Vec, 112 | renderer: graylog::ChartRenderer, 113 | grid_pos: GridPos, 114 | opt: &ApplicationArguments, 115 | ) -> Panel { 116 | Panel { 117 | title, 118 | r#type: PanelType::Graph, 119 | datasource: opt.datasource.clone(), 120 | targets, 121 | bars: Some(renderer == graylog::ChartRenderer::Bar), 122 | lines: Some( 123 | renderer == graylog::ChartRenderer::Line 124 | || renderer == graylog::ChartRenderer::Area, 125 | ), 126 | points: Some(renderer == graylog::ChartRenderer::Area), 127 | sparkline: None, 128 | grid_pos, 129 | value_name: None, 130 | time_from: None, 131 | links: vec![], 132 | } 133 | } 134 | 135 | fn new( 136 | title: String, 137 | r#type: PanelType, 138 | query: &str, 139 | sparkline: Option, 140 | targets: Vec, 141 | grid_pos: GridPos, 142 | range: i64, 143 | opt: &ApplicationArguments, 144 | ) -> Panel { 145 | Panel { 146 | title, 147 | r#type, 148 | value_name: Some("total".to_string()), 149 | datasource: opt.datasource.clone(), 150 | targets, 151 | bars: None, 152 | lines: None, 153 | points: None, 154 | sparkline, 155 | grid_pos, 156 | time_from: Some(format!("{}h", range / 3600)), 157 | links: vec![Link::new(&opt.graylog_url, query, range)], 158 | } 159 | } 160 | 161 | pub fn create_panel( 162 | widget: graylog::DashboardWidget, 163 | opt: &ApplicationArguments, 164 | ) -> Option { 165 | let grid_pos = GridPos::new_with_widget(&widget); 166 | 167 | let panel = match widget.r#type { 168 | graylog::DashboardWidgetType::FieldChart => { 169 | let configuration = widget.configuration; 170 | Panel::new_graph( 171 | widget.description, 172 | vec![PanelTarget::new( 173 | &configuration.query.unwrap(), 174 | configuration.interval.unwrap().grafana(), 175 | "A", 176 | configuration.field.unwrap(), 177 | configuration.valuetype.unwrap(), 178 | )], 179 | configuration.renderer.unwrap(), 180 | grid_pos, 181 | opt, 182 | ) 183 | } 184 | graylog::DashboardWidgetType::StackedChart => { 185 | let configuration = widget.configuration; 186 | let interval = configuration.interval.unwrap().grafana(); 187 | Panel::new_graph( 188 | widget.description, 189 | configuration 190 | .series 191 | .unwrap() 192 | .iter() 193 | .map(|s| { 194 | PanelTarget::new( 195 | &s.query, 196 | interval.to_string(), 197 | "A", 198 | s.field.clone(), 199 | s.statistical_function.clone(), 200 | ) 201 | }) 202 | .collect(), 203 | configuration.renderer.unwrap(), 204 | grid_pos, 205 | opt, 206 | ) 207 | } 208 | graylog::DashboardWidgetType::SearchResultCount => { 209 | let configuration = widget.configuration; 210 | let query = &configuration.query.unwrap(); 211 | Panel::new( 212 | widget.description, 213 | PanelType::SingleStat, 214 | query, 215 | Some(Sparkline::new(configuration.trend.unwrap())), 216 | vec![PanelTarget::new( 217 | query, 218 | "1m", 219 | "A", 220 | "select field".to_string(), 221 | "count".to_string(), 222 | )], 223 | grid_pos, 224 | configuration.timerange.range, 225 | opt, 226 | ) 227 | } 228 | graylog::DashboardWidgetType::SearchResultChart => { 229 | let configuration = widget.configuration; 230 | Panel::new_graph( 231 | widget.description, 232 | vec![PanelTarget::new( 233 | &configuration.query.unwrap(), 234 | configuration.interval.unwrap().grafana(), 235 | "A", 236 | "select field".to_string(), 237 | "count".to_string(), 238 | )], 239 | graylog::ChartRenderer::Bar, 240 | grid_pos, 241 | opt, 242 | ) 243 | } 244 | graylog::DashboardWidgetType::QuickValues => { 245 | let configuration = widget.configuration; 246 | let query = &configuration.query.unwrap(); 247 | Panel::new( 248 | widget.description, 249 | PanelType::PieChart, 250 | query, 251 | None, 252 | vec![PanelTarget::new_buckets( 253 | query, 254 | &configuration.field.unwrap(), 255 | configuration.sort_order, 256 | configuration.limit, 257 | )], 258 | grid_pos, 259 | configuration.timerange.range, 260 | opt, 261 | ) 262 | } 263 | graylog::DashboardWidgetType::QuickValuesHistogram => { 264 | warn!( 265 | "Not Supported {:?} graph: {}", 266 | graylog::DashboardWidgetType::QuickValuesHistogram, 267 | widget.description 268 | ); 269 | return None; 270 | } 271 | }; 272 | Some(panel) 273 | } 274 | } 275 | 276 | #[derive(Serialize, Deserialize, Debug, Clone)] 277 | pub struct Sparkline { 278 | show: bool, 279 | full: bool, 280 | #[serde(rename = "lineColor")] 281 | line_color: String, 282 | #[serde(rename = "fillColor")] 283 | fill_color: String, 284 | } 285 | 286 | impl Sparkline { 287 | fn new(trend: bool) -> Sparkline { 288 | Sparkline { 289 | show: trend, 290 | full: false, 291 | line_color: "rgb(31, 120, 193)".to_string(), 292 | fill_color: "rgba(31, 118, 189, 0.18)".to_string(), 293 | } 294 | } 295 | } 296 | 297 | #[derive(Serialize, Deserialize, Debug, Clone)] 298 | pub struct GridPos { 299 | h: i64, 300 | w: i64, 301 | y: i64, 302 | x: i64, 303 | } 304 | 305 | impl GridPos { 306 | fn new_with_widget(widget: &graylog::DashboardWidget) -> GridPos { 307 | GridPos::new(widget.row, widget.col, widget.width, widget.height) 308 | } 309 | fn new(row: i64, col: i64, width: i64, height: i64) -> GridPos { 310 | GridPos { 311 | h: height * 6, 312 | w: width * 5, 313 | y: row * 6, 314 | x: (col - 1) * 5, 315 | } 316 | } 317 | } 318 | 319 | #[derive(Serialize, Deserialize, Debug, Clone)] 320 | pub struct PanelTarget { 321 | #[serde(rename = "refId")] 322 | ref_id: String, 323 | metrics: Vec, 324 | #[serde(rename = "bucketAggs")] 325 | bucket_aggs: Vec, 326 | #[serde(rename = "timeField")] 327 | time_field: String, 328 | query: String, 329 | #[serde(skip_serializing_if = "Option::is_none")] 330 | alias: Option, 331 | } 332 | 333 | impl PanelTarget { 334 | fn new( 335 | query: &str, 336 | interval: T1, 337 | ref_id: T2, 338 | field: String, 339 | valuetype: String, 340 | ) -> PanelTarget 341 | where 342 | T1: Into, 343 | T2: Into, 344 | { 345 | PanelTarget { 346 | ref_id: ref_id.into(), 347 | metrics: vec![PanelTargetMetric { 348 | r#type: if valuetype == "count" { 349 | "count".to_string() 350 | } else { 351 | "sum".to_string() 352 | }, 353 | id: "1".to_string(), 354 | field, 355 | }], 356 | bucket_aggs: vec![PanelBucketAgg::new_date_histogram(interval.into(), None)], 357 | time_field: "timestamp".to_string(), 358 | query: query.to_string(), 359 | alias: Some(query.to_string()), 360 | } 361 | } 362 | 363 | fn new_buckets( 364 | query: &str, 365 | field: &str, 366 | sort_order: Option, 367 | limit: Option, 368 | ) -> PanelTarget { 369 | PanelTarget { 370 | ref_id: "A".to_string(), 371 | metrics: vec![PanelTargetMetric { 372 | r#type: "count".to_string(), 373 | id: "1".to_string(), 374 | field: "select field".to_string(), 375 | }], 376 | bucket_aggs: vec![ 377 | PanelBucketAgg::new_terms( 378 | field, 379 | sort_order.or_else(|| Some("desc".to_string())), 380 | limit.unwrap_or(5), 381 | ), 382 | PanelBucketAgg::new_date_histogram("1h".to_string(), true), 383 | ], 384 | time_field: "timestamp".to_string(), 385 | query: query.to_string(), 386 | alias: None, 387 | } 388 | } 389 | } 390 | 391 | #[derive(Serialize, Deserialize, Debug, Clone)] 392 | pub struct PanelTargetMetric { 393 | r#type: String, 394 | id: String, 395 | field: String, 396 | } 397 | 398 | #[derive(Serialize, Deserialize, Debug, Clone)] 399 | pub struct PanelBucketAgg { 400 | r#type: String, 401 | id: String, 402 | settings: PanelBucketAggSettings, 403 | field: String, 404 | #[serde(skip_serializing_if = "Option::is_none")] 405 | fake: Option, 406 | } 407 | impl PanelBucketAgg { 408 | fn new_date_histogram(interval: T1, fake: T2) -> PanelBucketAgg 409 | where 410 | T1: Into>, 411 | T2: Into>, 412 | { 413 | PanelBucketAgg { 414 | r#type: "date_histogram".to_string(), 415 | id: "2".to_string(), 416 | settings: PanelBucketAggSettings { 417 | interval: interval.into(), 418 | order: None, 419 | size: None, 420 | min_doc_count: 0, 421 | trim_edges: 0, 422 | order_by: None, 423 | }, 424 | field: "timestamp".to_string(), 425 | fake: fake.into(), 426 | } 427 | } 428 | fn new_terms(field: &str, order: Option, limit: i64) -> PanelBucketAgg { 429 | PanelBucketAgg { 430 | r#type: "terms".to_string(), 431 | field: field.to_string(), 432 | id: "1".to_string(), 433 | settings: PanelBucketAggSettings { 434 | interval: None, 435 | order, 436 | size: Some("0".to_string()), 437 | min_doc_count: limit, 438 | trim_edges: 0, 439 | order_by: Some("_term".to_string()), 440 | }, 441 | fake: Some(true), 442 | } 443 | } 444 | } 445 | 446 | #[derive(Serialize, Deserialize, Debug, Clone)] 447 | pub struct PanelBucketAggSettings { 448 | #[serde(skip_serializing_if = "Option::is_none")] 449 | interval: Option, 450 | #[serde(skip_serializing_if = "Option::is_none")] 451 | order: Option, 452 | #[serde(skip_serializing_if = "Option::is_none")] 453 | size: Option, 454 | min_doc_count: i64, 455 | #[serde(rename = "trimEdges")] 456 | trim_edges: i64, 457 | #[serde(rename = "orderBy", skip_serializing_if = "Option::is_none")] 458 | order_by: Option, 459 | } 460 | #[cfg(test)] 461 | mod tests { 462 | use super::*; 463 | 464 | #[test] 465 | fn panel_bucket_agg_new_date_histogram_with_fake_interval() { 466 | let bucket = PanelBucketAgg::new_date_histogram("".to_string(), true); 467 | 468 | assert_eq!(Some(true), bucket.fake); 469 | assert_eq!(Some("".to_string()), bucket.settings.interval); 470 | } 471 | 472 | #[test] 473 | fn panel_bucket_agg_new_date_histogram_without_fake_interval() { 474 | let bucket = PanelBucketAgg::new_date_histogram(None, None); 475 | 476 | assert_eq!(None, bucket.fake); 477 | assert_eq!(None, bucket.settings.interval); 478 | } 479 | } 480 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | [[package]] 4 | name = "adler32" 5 | version = "1.0.3" 6 | source = "registry+https://github.com/rust-lang/crates.io-index" 7 | 8 | [[package]] 9 | name = "aho-corasick" 10 | version = "0.7.3" 11 | source = "registry+https://github.com/rust-lang/crates.io-index" 12 | dependencies = [ 13 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 14 | ] 15 | 16 | [[package]] 17 | name = "ansi_term" 18 | version = "0.11.0" 19 | source = "registry+https://github.com/rust-lang/crates.io-index" 20 | dependencies = [ 21 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 22 | ] 23 | 24 | [[package]] 25 | name = "arrayvec" 26 | version = "0.4.10" 27 | source = "registry+https://github.com/rust-lang/crates.io-index" 28 | dependencies = [ 29 | "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", 30 | ] 31 | 32 | [[package]] 33 | name = "atty" 34 | version = "0.2.11" 35 | source = "registry+https://github.com/rust-lang/crates.io-index" 36 | dependencies = [ 37 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 38 | "termion 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", 39 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 40 | ] 41 | 42 | [[package]] 43 | name = "autocfg" 44 | version = "0.1.4" 45 | source = "registry+https://github.com/rust-lang/crates.io-index" 46 | 47 | [[package]] 48 | name = "backtrace" 49 | version = "0.3.26" 50 | source = "registry+https://github.com/rust-lang/crates.io-index" 51 | dependencies = [ 52 | "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 53 | "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", 54 | "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 55 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 56 | "rustc-demangle 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", 57 | ] 58 | 59 | [[package]] 60 | name = "backtrace-sys" 61 | version = "0.1.28" 62 | source = "registry+https://github.com/rust-lang/crates.io-index" 63 | dependencies = [ 64 | "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", 65 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 66 | ] 67 | 68 | [[package]] 69 | name = "base64" 70 | version = "0.10.1" 71 | source = "registry+https://github.com/rust-lang/crates.io-index" 72 | dependencies = [ 73 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 74 | ] 75 | 76 | [[package]] 77 | name = "bitflags" 78 | version = "1.0.4" 79 | source = "registry+https://github.com/rust-lang/crates.io-index" 80 | 81 | [[package]] 82 | name = "build_const" 83 | version = "0.2.1" 84 | source = "registry+https://github.com/rust-lang/crates.io-index" 85 | 86 | [[package]] 87 | name = "byteorder" 88 | version = "1.3.1" 89 | source = "registry+https://github.com/rust-lang/crates.io-index" 90 | 91 | [[package]] 92 | name = "bytes" 93 | version = "0.4.12" 94 | source = "registry+https://github.com/rust-lang/crates.io-index" 95 | dependencies = [ 96 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 97 | "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", 98 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 99 | ] 100 | 101 | [[package]] 102 | name = "cc" 103 | version = "1.0.37" 104 | source = "registry+https://github.com/rust-lang/crates.io-index" 105 | 106 | [[package]] 107 | name = "cfg-if" 108 | version = "0.1.9" 109 | source = "registry+https://github.com/rust-lang/crates.io-index" 110 | 111 | [[package]] 112 | name = "clap" 113 | version = "2.33.0" 114 | source = "registry+https://github.com/rust-lang/crates.io-index" 115 | dependencies = [ 116 | "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 117 | "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 118 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 119 | "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 120 | "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 121 | "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 122 | "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", 123 | ] 124 | 125 | [[package]] 126 | name = "cloudabi" 127 | version = "0.0.3" 128 | source = "registry+https://github.com/rust-lang/crates.io-index" 129 | dependencies = [ 130 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 131 | ] 132 | 133 | [[package]] 134 | name = "cookie" 135 | version = "0.12.0" 136 | source = "registry+https://github.com/rust-lang/crates.io-index" 137 | dependencies = [ 138 | "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", 139 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 140 | ] 141 | 142 | [[package]] 143 | name = "cookie_store" 144 | version = "0.7.0" 145 | source = "registry+https://github.com/rust-lang/crates.io-index" 146 | dependencies = [ 147 | "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", 148 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 149 | "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 150 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 151 | "publicsuffix 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", 152 | "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", 153 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", 154 | "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", 155 | "try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 156 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 157 | ] 158 | 159 | [[package]] 160 | name = "core-foundation" 161 | version = "0.6.4" 162 | source = "registry+https://github.com/rust-lang/crates.io-index" 163 | dependencies = [ 164 | "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 165 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 166 | ] 167 | 168 | [[package]] 169 | name = "core-foundation-sys" 170 | version = "0.6.2" 171 | source = "registry+https://github.com/rust-lang/crates.io-index" 172 | 173 | [[package]] 174 | name = "crc" 175 | version = "1.8.1" 176 | source = "registry+https://github.com/rust-lang/crates.io-index" 177 | dependencies = [ 178 | "build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 179 | ] 180 | 181 | [[package]] 182 | name = "crc32fast" 183 | version = "1.2.0" 184 | source = "registry+https://github.com/rust-lang/crates.io-index" 185 | dependencies = [ 186 | "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 187 | ] 188 | 189 | [[package]] 190 | name = "crossbeam-deque" 191 | version = "0.7.1" 192 | source = "registry+https://github.com/rust-lang/crates.io-index" 193 | dependencies = [ 194 | "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 195 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 196 | ] 197 | 198 | [[package]] 199 | name = "crossbeam-epoch" 200 | version = "0.7.1" 201 | source = "registry+https://github.com/rust-lang/crates.io-index" 202 | dependencies = [ 203 | "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", 204 | "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 205 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 206 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 207 | "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 208 | "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 209 | ] 210 | 211 | [[package]] 212 | name = "crossbeam-queue" 213 | version = "0.1.2" 214 | source = "registry+https://github.com/rust-lang/crates.io-index" 215 | dependencies = [ 216 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 217 | ] 218 | 219 | [[package]] 220 | name = "crossbeam-utils" 221 | version = "0.6.5" 222 | source = "registry+https://github.com/rust-lang/crates.io-index" 223 | dependencies = [ 224 | "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 225 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 226 | ] 227 | 228 | [[package]] 229 | name = "dtoa" 230 | version = "0.4.4" 231 | source = "registry+https://github.com/rust-lang/crates.io-index" 232 | 233 | [[package]] 234 | name = "either" 235 | version = "1.5.2" 236 | source = "registry+https://github.com/rust-lang/crates.io-index" 237 | 238 | [[package]] 239 | name = "encoding_rs" 240 | version = "0.8.17" 241 | source = "registry+https://github.com/rust-lang/crates.io-index" 242 | dependencies = [ 243 | "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 244 | ] 245 | 246 | [[package]] 247 | name = "env_logger" 248 | version = "0.6.1" 249 | source = "registry+https://github.com/rust-lang/crates.io-index" 250 | dependencies = [ 251 | "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 252 | "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 253 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 254 | "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 255 | "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 256 | ] 257 | 258 | [[package]] 259 | name = "error-chain" 260 | version = "0.12.1" 261 | source = "registry+https://github.com/rust-lang/crates.io-index" 262 | dependencies = [ 263 | "backtrace 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)", 264 | "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 265 | ] 266 | 267 | [[package]] 268 | name = "failure" 269 | version = "0.1.5" 270 | source = "registry+https://github.com/rust-lang/crates.io-index" 271 | dependencies = [ 272 | "backtrace 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)", 273 | "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 274 | ] 275 | 276 | [[package]] 277 | name = "failure_derive" 278 | version = "0.1.5" 279 | source = "registry+https://github.com/rust-lang/crates.io-index" 280 | dependencies = [ 281 | "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 282 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 283 | "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)", 284 | "synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", 285 | ] 286 | 287 | [[package]] 288 | name = "flate2" 289 | version = "1.0.7" 290 | source = "registry+https://github.com/rust-lang/crates.io-index" 291 | dependencies = [ 292 | "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 293 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 294 | "miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 295 | ] 296 | 297 | [[package]] 298 | name = "fnv" 299 | version = "1.0.6" 300 | source = "registry+https://github.com/rust-lang/crates.io-index" 301 | 302 | [[package]] 303 | name = "foreign-types" 304 | version = "0.3.2" 305 | source = "registry+https://github.com/rust-lang/crates.io-index" 306 | dependencies = [ 307 | "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 308 | ] 309 | 310 | [[package]] 311 | name = "foreign-types-shared" 312 | version = "0.1.1" 313 | source = "registry+https://github.com/rust-lang/crates.io-index" 314 | 315 | [[package]] 316 | name = "fuchsia-cprng" 317 | version = "0.1.1" 318 | source = "registry+https://github.com/rust-lang/crates.io-index" 319 | 320 | [[package]] 321 | name = "fuchsia-zircon" 322 | version = "0.3.3" 323 | source = "registry+https://github.com/rust-lang/crates.io-index" 324 | dependencies = [ 325 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 326 | "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 327 | ] 328 | 329 | [[package]] 330 | name = "fuchsia-zircon-sys" 331 | version = "0.3.3" 332 | source = "registry+https://github.com/rust-lang/crates.io-index" 333 | 334 | [[package]] 335 | name = "futures" 336 | version = "0.1.27" 337 | source = "registry+https://github.com/rust-lang/crates.io-index" 338 | 339 | [[package]] 340 | name = "futures-cpupool" 341 | version = "0.1.8" 342 | source = "registry+https://github.com/rust-lang/crates.io-index" 343 | dependencies = [ 344 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 345 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 346 | ] 347 | 348 | [[package]] 349 | name = "graylog-to-grafana" 350 | version = "0.2.1" 351 | dependencies = [ 352 | "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", 353 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 354 | "reqwest 0.9.17 (registry+https://github.com/rust-lang/crates.io-index)", 355 | "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", 356 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", 357 | "structopt 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 358 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 359 | ] 360 | 361 | [[package]] 362 | name = "h2" 363 | version = "0.1.20" 364 | source = "registry+https://github.com/rust-lang/crates.io-index" 365 | dependencies = [ 366 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 367 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 368 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 369 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 370 | "http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", 371 | "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 372 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 373 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 374 | "string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 375 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 376 | ] 377 | 378 | [[package]] 379 | name = "heck" 380 | version = "0.3.1" 381 | source = "registry+https://github.com/rust-lang/crates.io-index" 382 | dependencies = [ 383 | "unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 384 | ] 385 | 386 | [[package]] 387 | name = "http" 388 | version = "0.1.17" 389 | source = "registry+https://github.com/rust-lang/crates.io-index" 390 | dependencies = [ 391 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 392 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 393 | "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 394 | ] 395 | 396 | [[package]] 397 | name = "http-body" 398 | version = "0.1.0" 399 | source = "registry+https://github.com/rust-lang/crates.io-index" 400 | dependencies = [ 401 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 402 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 403 | "http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", 404 | "tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 405 | ] 406 | 407 | [[package]] 408 | name = "httparse" 409 | version = "1.3.3" 410 | source = "registry+https://github.com/rust-lang/crates.io-index" 411 | 412 | [[package]] 413 | name = "humantime" 414 | version = "1.2.0" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | dependencies = [ 417 | "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 418 | ] 419 | 420 | [[package]] 421 | name = "hyper" 422 | version = "0.12.29" 423 | source = "registry+https://github.com/rust-lang/crates.io-index" 424 | dependencies = [ 425 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 426 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 427 | "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 428 | "h2 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", 429 | "http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", 430 | "http-body 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 431 | "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 432 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 433 | "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 434 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 435 | "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 436 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 437 | "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", 438 | "tokio 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", 439 | "tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 440 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 441 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 442 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 443 | "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 444 | "tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", 445 | "tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 446 | "want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 447 | ] 448 | 449 | [[package]] 450 | name = "hyper-tls" 451 | version = "0.3.2" 452 | source = "registry+https://github.com/rust-lang/crates.io-index" 453 | dependencies = [ 454 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 455 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 456 | "hyper 0.12.29 (registry+https://github.com/rust-lang/crates.io-index)", 457 | "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 458 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 459 | ] 460 | 461 | [[package]] 462 | name = "idna" 463 | version = "0.1.5" 464 | source = "registry+https://github.com/rust-lang/crates.io-index" 465 | dependencies = [ 466 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 467 | "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", 468 | "unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 469 | ] 470 | 471 | [[package]] 472 | name = "indexmap" 473 | version = "1.0.2" 474 | source = "registry+https://github.com/rust-lang/crates.io-index" 475 | 476 | [[package]] 477 | name = "iovec" 478 | version = "0.1.2" 479 | source = "registry+https://github.com/rust-lang/crates.io-index" 480 | dependencies = [ 481 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 482 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 483 | ] 484 | 485 | [[package]] 486 | name = "itoa" 487 | version = "0.4.4" 488 | source = "registry+https://github.com/rust-lang/crates.io-index" 489 | 490 | [[package]] 491 | name = "kernel32-sys" 492 | version = "0.2.2" 493 | source = "registry+https://github.com/rust-lang/crates.io-index" 494 | dependencies = [ 495 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 496 | "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 497 | ] 498 | 499 | [[package]] 500 | name = "lazy_static" 501 | version = "1.3.0" 502 | source = "registry+https://github.com/rust-lang/crates.io-index" 503 | 504 | [[package]] 505 | name = "libc" 506 | version = "0.2.55" 507 | source = "registry+https://github.com/rust-lang/crates.io-index" 508 | 509 | [[package]] 510 | name = "lock_api" 511 | version = "0.1.5" 512 | source = "registry+https://github.com/rust-lang/crates.io-index" 513 | dependencies = [ 514 | "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 515 | "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 516 | ] 517 | 518 | [[package]] 519 | name = "log" 520 | version = "0.4.6" 521 | source = "registry+https://github.com/rust-lang/crates.io-index" 522 | dependencies = [ 523 | "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 524 | ] 525 | 526 | [[package]] 527 | name = "matches" 528 | version = "0.1.8" 529 | source = "registry+https://github.com/rust-lang/crates.io-index" 530 | 531 | [[package]] 532 | name = "memchr" 533 | version = "2.2.0" 534 | source = "registry+https://github.com/rust-lang/crates.io-index" 535 | 536 | [[package]] 537 | name = "memoffset" 538 | version = "0.2.1" 539 | source = "registry+https://github.com/rust-lang/crates.io-index" 540 | 541 | [[package]] 542 | name = "mime" 543 | version = "0.3.13" 544 | source = "registry+https://github.com/rust-lang/crates.io-index" 545 | dependencies = [ 546 | "unicase 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 547 | ] 548 | 549 | [[package]] 550 | name = "mime_guess" 551 | version = "2.0.0-alpha.6" 552 | source = "registry+https://github.com/rust-lang/crates.io-index" 553 | dependencies = [ 554 | "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", 555 | "phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 556 | "phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 557 | "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 558 | ] 559 | 560 | [[package]] 561 | name = "miniz_oxide" 562 | version = "0.2.1" 563 | source = "registry+https://github.com/rust-lang/crates.io-index" 564 | dependencies = [ 565 | "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 566 | ] 567 | 568 | [[package]] 569 | name = "miniz_oxide_c_api" 570 | version = "0.2.1" 571 | source = "registry+https://github.com/rust-lang/crates.io-index" 572 | dependencies = [ 573 | "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", 574 | "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", 575 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 576 | "miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 577 | ] 578 | 579 | [[package]] 580 | name = "mio" 581 | version = "0.6.18" 582 | source = "registry+https://github.com/rust-lang/crates.io-index" 583 | dependencies = [ 584 | "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 585 | "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 586 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 587 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 588 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 589 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 590 | "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 591 | "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 592 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 593 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 594 | ] 595 | 596 | [[package]] 597 | name = "miow" 598 | version = "0.2.1" 599 | source = "registry+https://github.com/rust-lang/crates.io-index" 600 | dependencies = [ 601 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 602 | "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 603 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 604 | "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 605 | ] 606 | 607 | [[package]] 608 | name = "native-tls" 609 | version = "0.2.3" 610 | source = "registry+https://github.com/rust-lang/crates.io-index" 611 | dependencies = [ 612 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 613 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 614 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 615 | "openssl 0.10.23 (registry+https://github.com/rust-lang/crates.io-index)", 616 | "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 617 | "openssl-sys 0.9.47 (registry+https://github.com/rust-lang/crates.io-index)", 618 | "schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", 619 | "security-framework 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 620 | "security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 621 | "tempfile 3.0.8 (registry+https://github.com/rust-lang/crates.io-index)", 622 | ] 623 | 624 | [[package]] 625 | name = "net2" 626 | version = "0.2.33" 627 | source = "registry+https://github.com/rust-lang/crates.io-index" 628 | dependencies = [ 629 | "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 630 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 631 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 632 | ] 633 | 634 | [[package]] 635 | name = "nodrop" 636 | version = "0.1.13" 637 | source = "registry+https://github.com/rust-lang/crates.io-index" 638 | 639 | [[package]] 640 | name = "num_cpus" 641 | version = "1.10.0" 642 | source = "registry+https://github.com/rust-lang/crates.io-index" 643 | dependencies = [ 644 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 645 | ] 646 | 647 | [[package]] 648 | name = "numtoa" 649 | version = "0.1.0" 650 | source = "registry+https://github.com/rust-lang/crates.io-index" 651 | 652 | [[package]] 653 | name = "openssl" 654 | version = "0.10.23" 655 | source = "registry+https://github.com/rust-lang/crates.io-index" 656 | dependencies = [ 657 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 658 | "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 659 | "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 660 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 661 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 662 | "openssl-sys 0.9.47 (registry+https://github.com/rust-lang/crates.io-index)", 663 | ] 664 | 665 | [[package]] 666 | name = "openssl-probe" 667 | version = "0.1.2" 668 | source = "registry+https://github.com/rust-lang/crates.io-index" 669 | 670 | [[package]] 671 | name = "openssl-sys" 672 | version = "0.9.47" 673 | source = "registry+https://github.com/rust-lang/crates.io-index" 674 | dependencies = [ 675 | "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 676 | "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", 677 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 678 | "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 679 | "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 680 | ] 681 | 682 | [[package]] 683 | name = "owning_ref" 684 | version = "0.4.0" 685 | source = "registry+https://github.com/rust-lang/crates.io-index" 686 | dependencies = [ 687 | "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 688 | ] 689 | 690 | [[package]] 691 | name = "parking_lot" 692 | version = "0.7.1" 693 | source = "registry+https://github.com/rust-lang/crates.io-index" 694 | dependencies = [ 695 | "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 696 | "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 697 | ] 698 | 699 | [[package]] 700 | name = "parking_lot_core" 701 | version = "0.4.0" 702 | source = "registry+https://github.com/rust-lang/crates.io-index" 703 | dependencies = [ 704 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 705 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 706 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 707 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", 708 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 709 | ] 710 | 711 | [[package]] 712 | name = "percent-encoding" 713 | version = "1.0.1" 714 | source = "registry+https://github.com/rust-lang/crates.io-index" 715 | 716 | [[package]] 717 | name = "phf" 718 | version = "0.7.24" 719 | source = "registry+https://github.com/rust-lang/crates.io-index" 720 | dependencies = [ 721 | "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 722 | ] 723 | 724 | [[package]] 725 | name = "phf_codegen" 726 | version = "0.7.24" 727 | source = "registry+https://github.com/rust-lang/crates.io-index" 728 | dependencies = [ 729 | "phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 730 | "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 731 | ] 732 | 733 | [[package]] 734 | name = "phf_generator" 735 | version = "0.7.24" 736 | source = "registry+https://github.com/rust-lang/crates.io-index" 737 | dependencies = [ 738 | "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 739 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 740 | ] 741 | 742 | [[package]] 743 | name = "phf_shared" 744 | version = "0.7.24" 745 | source = "registry+https://github.com/rust-lang/crates.io-index" 746 | dependencies = [ 747 | "siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 748 | "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 749 | ] 750 | 751 | [[package]] 752 | name = "pkg-config" 753 | version = "0.3.14" 754 | source = "registry+https://github.com/rust-lang/crates.io-index" 755 | 756 | [[package]] 757 | name = "proc-macro2" 758 | version = "0.4.30" 759 | source = "registry+https://github.com/rust-lang/crates.io-index" 760 | dependencies = [ 761 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 762 | ] 763 | 764 | [[package]] 765 | name = "publicsuffix" 766 | version = "1.5.2" 767 | source = "registry+https://github.com/rust-lang/crates.io-index" 768 | dependencies = [ 769 | "error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", 770 | "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 771 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 772 | "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 773 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 774 | ] 775 | 776 | [[package]] 777 | name = "quick-error" 778 | version = "1.2.2" 779 | source = "registry+https://github.com/rust-lang/crates.io-index" 780 | 781 | [[package]] 782 | name = "quote" 783 | version = "0.6.12" 784 | source = "registry+https://github.com/rust-lang/crates.io-index" 785 | dependencies = [ 786 | "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 787 | ] 788 | 789 | [[package]] 790 | name = "rand" 791 | version = "0.6.5" 792 | source = "registry+https://github.com/rust-lang/crates.io-index" 793 | dependencies = [ 794 | "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 795 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 796 | "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 797 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 798 | "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 799 | "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 800 | "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 801 | "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 802 | "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 803 | "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 804 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 805 | ] 806 | 807 | [[package]] 808 | name = "rand_chacha" 809 | version = "0.1.1" 810 | source = "registry+https://github.com/rust-lang/crates.io-index" 811 | dependencies = [ 812 | "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 813 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 814 | ] 815 | 816 | [[package]] 817 | name = "rand_core" 818 | version = "0.3.1" 819 | source = "registry+https://github.com/rust-lang/crates.io-index" 820 | dependencies = [ 821 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 822 | ] 823 | 824 | [[package]] 825 | name = "rand_core" 826 | version = "0.4.0" 827 | source = "registry+https://github.com/rust-lang/crates.io-index" 828 | 829 | [[package]] 830 | name = "rand_hc" 831 | version = "0.1.0" 832 | source = "registry+https://github.com/rust-lang/crates.io-index" 833 | dependencies = [ 834 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 835 | ] 836 | 837 | [[package]] 838 | name = "rand_isaac" 839 | version = "0.1.1" 840 | source = "registry+https://github.com/rust-lang/crates.io-index" 841 | dependencies = [ 842 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 843 | ] 844 | 845 | [[package]] 846 | name = "rand_jitter" 847 | version = "0.1.4" 848 | source = "registry+https://github.com/rust-lang/crates.io-index" 849 | dependencies = [ 850 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 851 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 852 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 853 | ] 854 | 855 | [[package]] 856 | name = "rand_os" 857 | version = "0.1.3" 858 | source = "registry+https://github.com/rust-lang/crates.io-index" 859 | dependencies = [ 860 | "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 861 | "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 862 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 863 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 864 | "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 865 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 866 | ] 867 | 868 | [[package]] 869 | name = "rand_pcg" 870 | version = "0.1.2" 871 | source = "registry+https://github.com/rust-lang/crates.io-index" 872 | dependencies = [ 873 | "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 874 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 875 | ] 876 | 877 | [[package]] 878 | name = "rand_xorshift" 879 | version = "0.1.1" 880 | source = "registry+https://github.com/rust-lang/crates.io-index" 881 | dependencies = [ 882 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 883 | ] 884 | 885 | [[package]] 886 | name = "rdrand" 887 | version = "0.4.0" 888 | source = "registry+https://github.com/rust-lang/crates.io-index" 889 | dependencies = [ 890 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 891 | ] 892 | 893 | [[package]] 894 | name = "redox_syscall" 895 | version = "0.1.54" 896 | source = "registry+https://github.com/rust-lang/crates.io-index" 897 | 898 | [[package]] 899 | name = "redox_termios" 900 | version = "0.1.1" 901 | source = "registry+https://github.com/rust-lang/crates.io-index" 902 | dependencies = [ 903 | "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", 904 | ] 905 | 906 | [[package]] 907 | name = "regex" 908 | version = "1.1.6" 909 | source = "registry+https://github.com/rust-lang/crates.io-index" 910 | dependencies = [ 911 | "aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", 912 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 913 | "regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", 914 | "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 915 | "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 916 | ] 917 | 918 | [[package]] 919 | name = "regex-syntax" 920 | version = "0.6.6" 921 | source = "registry+https://github.com/rust-lang/crates.io-index" 922 | dependencies = [ 923 | "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 924 | ] 925 | 926 | [[package]] 927 | name = "remove_dir_all" 928 | version = "0.5.1" 929 | source = "registry+https://github.com/rust-lang/crates.io-index" 930 | dependencies = [ 931 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 932 | ] 933 | 934 | [[package]] 935 | name = "reqwest" 936 | version = "0.9.17" 937 | source = "registry+https://github.com/rust-lang/crates.io-index" 938 | dependencies = [ 939 | "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", 940 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 941 | "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", 942 | "cookie_store 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 943 | "encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)", 944 | "flate2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", 945 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 946 | "http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", 947 | "hyper 0.12.29 (registry+https://github.com/rust-lang/crates.io-index)", 948 | "hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 949 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 950 | "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", 951 | "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", 952 | "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 953 | "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", 954 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", 955 | "serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", 956 | "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", 957 | "tokio 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", 958 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 959 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 960 | "tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", 961 | "tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 962 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 963 | "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", 964 | ] 965 | 966 | [[package]] 967 | name = "rustc-demangle" 968 | version = "0.1.14" 969 | source = "registry+https://github.com/rust-lang/crates.io-index" 970 | 971 | [[package]] 972 | name = "rustc_version" 973 | version = "0.2.3" 974 | source = "registry+https://github.com/rust-lang/crates.io-index" 975 | dependencies = [ 976 | "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 977 | ] 978 | 979 | [[package]] 980 | name = "ryu" 981 | version = "0.2.8" 982 | source = "registry+https://github.com/rust-lang/crates.io-index" 983 | 984 | [[package]] 985 | name = "schannel" 986 | version = "0.1.15" 987 | source = "registry+https://github.com/rust-lang/crates.io-index" 988 | dependencies = [ 989 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 990 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 991 | ] 992 | 993 | [[package]] 994 | name = "scopeguard" 995 | version = "0.3.3" 996 | source = "registry+https://github.com/rust-lang/crates.io-index" 997 | 998 | [[package]] 999 | name = "security-framework" 1000 | version = "0.3.1" 1001 | source = "registry+https://github.com/rust-lang/crates.io-index" 1002 | dependencies = [ 1003 | "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", 1004 | "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 1005 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 1006 | "security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 1007 | ] 1008 | 1009 | [[package]] 1010 | name = "security-framework-sys" 1011 | version = "0.3.1" 1012 | source = "registry+https://github.com/rust-lang/crates.io-index" 1013 | dependencies = [ 1014 | "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 1015 | ] 1016 | 1017 | [[package]] 1018 | name = "semver" 1019 | version = "0.9.0" 1020 | source = "registry+https://github.com/rust-lang/crates.io-index" 1021 | dependencies = [ 1022 | "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 1023 | ] 1024 | 1025 | [[package]] 1026 | name = "semver-parser" 1027 | version = "0.7.0" 1028 | source = "registry+https://github.com/rust-lang/crates.io-index" 1029 | 1030 | [[package]] 1031 | name = "serde" 1032 | version = "1.0.91" 1033 | source = "registry+https://github.com/rust-lang/crates.io-index" 1034 | dependencies = [ 1035 | "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", 1036 | ] 1037 | 1038 | [[package]] 1039 | name = "serde_derive" 1040 | version = "1.0.91" 1041 | source = "registry+https://github.com/rust-lang/crates.io-index" 1042 | dependencies = [ 1043 | "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 1044 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1045 | "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)", 1046 | ] 1047 | 1048 | [[package]] 1049 | name = "serde_json" 1050 | version = "1.0.39" 1051 | source = "registry+https://github.com/rust-lang/crates.io-index" 1052 | dependencies = [ 1053 | "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 1054 | "ryu 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 1055 | "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", 1056 | ] 1057 | 1058 | [[package]] 1059 | name = "serde_urlencoded" 1060 | version = "0.5.5" 1061 | source = "registry+https://github.com/rust-lang/crates.io-index" 1062 | dependencies = [ 1063 | "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 1064 | "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 1065 | "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", 1066 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 1067 | ] 1068 | 1069 | [[package]] 1070 | name = "siphasher" 1071 | version = "0.2.3" 1072 | source = "registry+https://github.com/rust-lang/crates.io-index" 1073 | 1074 | [[package]] 1075 | name = "slab" 1076 | version = "0.4.2" 1077 | source = "registry+https://github.com/rust-lang/crates.io-index" 1078 | 1079 | [[package]] 1080 | name = "smallvec" 1081 | version = "0.6.9" 1082 | source = "registry+https://github.com/rust-lang/crates.io-index" 1083 | 1084 | [[package]] 1085 | name = "stable_deref_trait" 1086 | version = "1.1.1" 1087 | source = "registry+https://github.com/rust-lang/crates.io-index" 1088 | 1089 | [[package]] 1090 | name = "string" 1091 | version = "0.1.3" 1092 | source = "registry+https://github.com/rust-lang/crates.io-index" 1093 | 1094 | [[package]] 1095 | name = "strsim" 1096 | version = "0.8.0" 1097 | source = "registry+https://github.com/rust-lang/crates.io-index" 1098 | 1099 | [[package]] 1100 | name = "structopt" 1101 | version = "0.2.15" 1102 | source = "registry+https://github.com/rust-lang/crates.io-index" 1103 | dependencies = [ 1104 | "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", 1105 | "structopt-derive 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)", 1106 | ] 1107 | 1108 | [[package]] 1109 | name = "structopt-derive" 1110 | version = "0.2.15" 1111 | source = "registry+https://github.com/rust-lang/crates.io-index" 1112 | dependencies = [ 1113 | "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 1114 | "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 1115 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1116 | "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)", 1117 | ] 1118 | 1119 | [[package]] 1120 | name = "syn" 1121 | version = "0.15.34" 1122 | source = "registry+https://github.com/rust-lang/crates.io-index" 1123 | dependencies = [ 1124 | "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 1125 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1126 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1127 | ] 1128 | 1129 | [[package]] 1130 | name = "synstructure" 1131 | version = "0.10.2" 1132 | source = "registry+https://github.com/rust-lang/crates.io-index" 1133 | dependencies = [ 1134 | "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 1135 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1136 | "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)", 1137 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1138 | ] 1139 | 1140 | [[package]] 1141 | name = "tempfile" 1142 | version = "3.0.8" 1143 | source = "registry+https://github.com/rust-lang/crates.io-index" 1144 | dependencies = [ 1145 | "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1146 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 1147 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1148 | "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", 1149 | "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 1150 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1151 | ] 1152 | 1153 | [[package]] 1154 | name = "termcolor" 1155 | version = "1.0.4" 1156 | source = "registry+https://github.com/rust-lang/crates.io-index" 1157 | dependencies = [ 1158 | "wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 1159 | ] 1160 | 1161 | [[package]] 1162 | name = "termion" 1163 | version = "1.5.2" 1164 | source = "registry+https://github.com/rust-lang/crates.io-index" 1165 | dependencies = [ 1166 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 1167 | "numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1168 | "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", 1169 | "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1170 | ] 1171 | 1172 | [[package]] 1173 | name = "textwrap" 1174 | version = "0.11.0" 1175 | source = "registry+https://github.com/rust-lang/crates.io-index" 1176 | dependencies = [ 1177 | "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1178 | ] 1179 | 1180 | [[package]] 1181 | name = "thread_local" 1182 | version = "0.3.6" 1183 | source = "registry+https://github.com/rust-lang/crates.io-index" 1184 | dependencies = [ 1185 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1186 | ] 1187 | 1188 | [[package]] 1189 | name = "time" 1190 | version = "0.1.42" 1191 | source = "registry+https://github.com/rust-lang/crates.io-index" 1192 | dependencies = [ 1193 | "libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)", 1194 | "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", 1195 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1196 | ] 1197 | 1198 | [[package]] 1199 | name = "tokio" 1200 | version = "0.1.20" 1201 | source = "registry+https://github.com/rust-lang/crates.io-index" 1202 | dependencies = [ 1203 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 1204 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1205 | "mio 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)", 1206 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 1207 | "tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 1208 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1209 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1210 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1211 | "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 1212 | "tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", 1213 | "tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 1214 | "tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1215 | ] 1216 | 1217 | [[package]] 1218 | name = "tokio-buf" 1219 | version = "0.1.1" 1220 | source = "registry+https://github.com/rust-lang/crates.io-index" 1221 | dependencies = [ 1222 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 1223 | "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", 1224 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1225 | ] 1226 | 1227 | [[package]] 1228 | name = "tokio-current-thread" 1229 | version = "0.1.6" 1230 | source = "registry+https://github.com/rust-lang/crates.io-index" 1231 | dependencies = [ 1232 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1233 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1234 | ] 1235 | 1236 | [[package]] 1237 | name = "tokio-executor" 1238 | version = "0.1.7" 1239 | source = "registry+https://github.com/rust-lang/crates.io-index" 1240 | dependencies = [ 1241 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1242 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1243 | ] 1244 | 1245 | [[package]] 1246 | name = "tokio-io" 1247 | version = "0.1.12" 1248 | source = "registry+https://github.com/rust-lang/crates.io-index" 1249 | dependencies = [ 1250 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 1251 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1252 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1253 | ] 1254 | 1255 | [[package]] 1256 | name = "tokio-reactor" 1257 | version = "0.1.9" 1258 | source = "registry+https://github.com/rust-lang/crates.io-index" 1259 | dependencies = [ 1260 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1261 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1262 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1263 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1264 | "mio 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)", 1265 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 1266 | "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 1267 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 1268 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1269 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1270 | "tokio-sync 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1271 | ] 1272 | 1273 | [[package]] 1274 | name = "tokio-sync" 1275 | version = "0.1.5" 1276 | source = "registry+https://github.com/rust-lang/crates.io-index" 1277 | dependencies = [ 1278 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 1279 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1280 | ] 1281 | 1282 | [[package]] 1283 | name = "tokio-tcp" 1284 | version = "0.1.3" 1285 | source = "registry+https://github.com/rust-lang/crates.io-index" 1286 | dependencies = [ 1287 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 1288 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1289 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1290 | "mio 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)", 1291 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1292 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1293 | ] 1294 | 1295 | [[package]] 1296 | name = "tokio-threadpool" 1297 | version = "0.1.14" 1298 | source = "registry+https://github.com/rust-lang/crates.io-index" 1299 | dependencies = [ 1300 | "crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 1301 | "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1302 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1303 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1304 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1305 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 1306 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1307 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 1308 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1309 | ] 1310 | 1311 | [[package]] 1312 | name = "tokio-timer" 1313 | version = "0.2.11" 1314 | source = "registry+https://github.com/rust-lang/crates.io-index" 1315 | dependencies = [ 1316 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1317 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1318 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 1319 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1320 | ] 1321 | 1322 | [[package]] 1323 | name = "tokio-trace-core" 1324 | version = "0.1.0" 1325 | source = "registry+https://github.com/rust-lang/crates.io-index" 1326 | dependencies = [ 1327 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1328 | ] 1329 | 1330 | [[package]] 1331 | name = "try-lock" 1332 | version = "0.2.2" 1333 | source = "registry+https://github.com/rust-lang/crates.io-index" 1334 | 1335 | [[package]] 1336 | name = "try_from" 1337 | version = "0.3.2" 1338 | source = "registry+https://github.com/rust-lang/crates.io-index" 1339 | dependencies = [ 1340 | "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1341 | ] 1342 | 1343 | [[package]] 1344 | name = "ucd-util" 1345 | version = "0.1.3" 1346 | source = "registry+https://github.com/rust-lang/crates.io-index" 1347 | 1348 | [[package]] 1349 | name = "unicase" 1350 | version = "1.4.2" 1351 | source = "registry+https://github.com/rust-lang/crates.io-index" 1352 | dependencies = [ 1353 | "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1354 | ] 1355 | 1356 | [[package]] 1357 | name = "unicase" 1358 | version = "2.4.0" 1359 | source = "registry+https://github.com/rust-lang/crates.io-index" 1360 | dependencies = [ 1361 | "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1362 | ] 1363 | 1364 | [[package]] 1365 | name = "unicode-bidi" 1366 | version = "0.3.4" 1367 | source = "registry+https://github.com/rust-lang/crates.io-index" 1368 | dependencies = [ 1369 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 1370 | ] 1371 | 1372 | [[package]] 1373 | name = "unicode-normalization" 1374 | version = "0.1.8" 1375 | source = "registry+https://github.com/rust-lang/crates.io-index" 1376 | dependencies = [ 1377 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", 1378 | ] 1379 | 1380 | [[package]] 1381 | name = "unicode-segmentation" 1382 | version = "1.3.0" 1383 | source = "registry+https://github.com/rust-lang/crates.io-index" 1384 | 1385 | [[package]] 1386 | name = "unicode-width" 1387 | version = "0.1.5" 1388 | source = "registry+https://github.com/rust-lang/crates.io-index" 1389 | 1390 | [[package]] 1391 | name = "unicode-xid" 1392 | version = "0.1.0" 1393 | source = "registry+https://github.com/rust-lang/crates.io-index" 1394 | 1395 | [[package]] 1396 | name = "url" 1397 | version = "1.7.2" 1398 | source = "registry+https://github.com/rust-lang/crates.io-index" 1399 | dependencies = [ 1400 | "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1401 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 1402 | "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 1403 | ] 1404 | 1405 | [[package]] 1406 | name = "utf8-ranges" 1407 | version = "1.0.2" 1408 | source = "registry+https://github.com/rust-lang/crates.io-index" 1409 | 1410 | [[package]] 1411 | name = "uuid" 1412 | version = "0.7.4" 1413 | source = "registry+https://github.com/rust-lang/crates.io-index" 1414 | dependencies = [ 1415 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1416 | ] 1417 | 1418 | [[package]] 1419 | name = "vcpkg" 1420 | version = "0.2.6" 1421 | source = "registry+https://github.com/rust-lang/crates.io-index" 1422 | 1423 | [[package]] 1424 | name = "vec_map" 1425 | version = "0.8.1" 1426 | source = "registry+https://github.com/rust-lang/crates.io-index" 1427 | 1428 | [[package]] 1429 | name = "version_check" 1430 | version = "0.1.5" 1431 | source = "registry+https://github.com/rust-lang/crates.io-index" 1432 | 1433 | [[package]] 1434 | name = "want" 1435 | version = "0.0.6" 1436 | source = "registry+https://github.com/rust-lang/crates.io-index" 1437 | dependencies = [ 1438 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1439 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1440 | "try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 1441 | ] 1442 | 1443 | [[package]] 1444 | name = "winapi" 1445 | version = "0.2.8" 1446 | source = "registry+https://github.com/rust-lang/crates.io-index" 1447 | 1448 | [[package]] 1449 | name = "winapi" 1450 | version = "0.3.7" 1451 | source = "registry+https://github.com/rust-lang/crates.io-index" 1452 | dependencies = [ 1453 | "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1454 | "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1455 | ] 1456 | 1457 | [[package]] 1458 | name = "winapi-build" 1459 | version = "0.1.1" 1460 | source = "registry+https://github.com/rust-lang/crates.io-index" 1461 | 1462 | [[package]] 1463 | name = "winapi-i686-pc-windows-gnu" 1464 | version = "0.4.0" 1465 | source = "registry+https://github.com/rust-lang/crates.io-index" 1466 | 1467 | [[package]] 1468 | name = "winapi-util" 1469 | version = "0.1.2" 1470 | source = "registry+https://github.com/rust-lang/crates.io-index" 1471 | dependencies = [ 1472 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1473 | ] 1474 | 1475 | [[package]] 1476 | name = "winapi-x86_64-pc-windows-gnu" 1477 | version = "0.4.0" 1478 | source = "registry+https://github.com/rust-lang/crates.io-index" 1479 | 1480 | [[package]] 1481 | name = "wincolor" 1482 | version = "1.0.1" 1483 | source = "registry+https://github.com/rust-lang/crates.io-index" 1484 | dependencies = [ 1485 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1486 | "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1487 | ] 1488 | 1489 | [[package]] 1490 | name = "ws2_32-sys" 1491 | version = "0.2.1" 1492 | source = "registry+https://github.com/rust-lang/crates.io-index" 1493 | dependencies = [ 1494 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 1495 | "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1496 | ] 1497 | 1498 | [metadata] 1499 | "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" 1500 | "checksum aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c" 1501 | "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" 1502 | "checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" 1503 | "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" 1504 | "checksum autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0e49efa51329a5fd37e7c79db4621af617cd4e3e5bc224939808d076077077bf" 1505 | "checksum backtrace 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)" = "1a13fc43f04daf08ab4f71e3d27e1fc27fc437d3e95ac0063a796d92fb40f39b" 1506 | "checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" 1507 | "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" 1508 | "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" 1509 | "checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" 1510 | "checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" 1511 | "checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" 1512 | "checksum cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d" 1513 | "checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33" 1514 | "checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" 1515 | "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" 1516 | "checksum cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5" 1517 | "checksum cookie_store 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46750b3f362965f197996c4448e4a0935e791bf7d6631bfce9ee0af3d24c919c" 1518 | "checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" 1519 | "checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" 1520 | "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" 1521 | "checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" 1522 | "checksum crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71" 1523 | "checksum crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4" 1524 | "checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" 1525 | "checksum crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c" 1526 | "checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e" 1527 | "checksum either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b" 1528 | "checksum encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)" = "4155785c79f2f6701f185eb2e6b4caf0555ec03477cb4c70db67b465311620ed" 1529 | "checksum env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b61fa891024a945da30a9581546e8cfaf5602c7b3f4c137a2805cf388f92075a" 1530 | "checksum error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ab49e9dcb602294bc42f9a7dfc9bc6e936fca4418ea300dbfb84fe16de0b7d9" 1531 | "checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" 1532 | "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" 1533 | "checksum flate2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f87e68aa82b2de08a6e037f1385455759df6e445a8df5e005b4297191dbf18aa" 1534 | "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" 1535 | "checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 1536 | "checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 1537 | "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" 1538 | "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" 1539 | "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 1540 | "checksum futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)" = "a2037ec1c6c1c4f79557762eab1f7eae1f64f6cb418ace90fae88f0942b60139" 1541 | "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" 1542 | "checksum h2 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "2b53def7bb0253af7718036fe9338c15defd209136819464384f3a553e07481b" 1543 | "checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" 1544 | "checksum http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "eed324f0f0daf6ec10c474f150505af2c143f251722bf9dbd1261bd1f2ee2c1a" 1545 | "checksum http-body 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d" 1546 | "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" 1547 | "checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" 1548 | "checksum hyper 0.12.29 (registry+https://github.com/rust-lang/crates.io-index)" = "e2cd6adf83b3347d36e271f030621a8cf95fd1fd0760546b9fc5a24a0f1447c7" 1549 | "checksum hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3a800d6aa50af4b5850b2b0f659625ce9504df908e9733b635720483be26174f" 1550 | "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" 1551 | "checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d" 1552 | "checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" 1553 | "checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f" 1554 | "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 1555 | "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" 1556 | "checksum libc 0.2.55 (registry+https://github.com/rust-lang/crates.io-index)" = "42914d39aad277d9e176efbdad68acb1d5443ab65afe0e0e4f0d49352a950880" 1557 | "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" 1558 | "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" 1559 | "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" 1560 | "checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39" 1561 | "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" 1562 | "checksum mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425" 1563 | "checksum mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed" 1564 | "checksum miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c468f2369f07d651a5d0bb2c9079f8488a66d5466efe42d0c5c6466edcb7f71e" 1565 | "checksum miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b7fe927a42e3807ef71defb191dc87d4e24479b221e67015fe38ae2b7b447bab" 1566 | "checksum mio 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)" = "9fbe95ae9216d99c944a1afa429fef2a2ed012b65b0840de5047a86a82969502" 1567 | "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" 1568 | "checksum native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e" 1569 | "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" 1570 | "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" 1571 | "checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba" 1572 | "checksum numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" 1573 | "checksum openssl 0.10.23 (registry+https://github.com/rust-lang/crates.io-index)" = "97c140cbb82f3b3468193dd14c1b88def39f341f68257f8a7fe8ed9ed3f628a5" 1574 | "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" 1575 | "checksum openssl-sys 0.9.47 (registry+https://github.com/rust-lang/crates.io-index)" = "75bdd6dbbb4958d38e47a1d2348847ad1eb4dc205dc5d37473ae504391865acc" 1576 | "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" 1577 | "checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" 1578 | "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" 1579 | "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" 1580 | "checksum phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" 1581 | "checksum phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" 1582 | "checksum phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" 1583 | "checksum phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" 1584 | "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" 1585 | "checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" 1586 | "checksum publicsuffix 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5afecba86dcf1e4fd610246f89899d1924fe12e1e89f555eb7c7f710f3c5ad1d" 1587 | "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" 1588 | "checksum quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db" 1589 | "checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" 1590 | "checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" 1591 | "checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" 1592 | "checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0" 1593 | "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" 1594 | "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" 1595 | "checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" 1596 | "checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" 1597 | "checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" 1598 | "checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" 1599 | "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" 1600 | "checksum redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)" = "12229c14a0f65c4f1cb046a3b52047cdd9da1f4b30f8a39c5063c8bae515e252" 1601 | "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" 1602 | "checksum regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8f0a0bcab2fd7d1d7c54fa9eae6f43eddeb9ce2e7352f8518a814a4f65d60c58" 1603 | "checksum regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dcfd8681eebe297b81d98498869d4aae052137651ad7b96822f09ceb690d0a96" 1604 | "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" 1605 | "checksum reqwest 0.9.17 (registry+https://github.com/rust-lang/crates.io-index)" = "e57803405f8ea0eb041c1567dac36127e0c8caa1251c843cb03d43fd767b3d50" 1606 | "checksum rustc-demangle 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ccc78bfd5acd7bf3e89cffcf899e5cb1a52d6fafa8dec2739ad70c9577a57288" 1607 | "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" 1608 | "checksum ryu 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "b96a9549dc8d48f2c283938303c4b5a77aa29bfbc5b54b084fb1630408899a8f" 1609 | "checksum schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f6abf258d99c3c1c5c2131d99d064e94b7b3dd5f416483057f308fea253339" 1610 | "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" 1611 | "checksum security-framework 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "eee63d0f4a9ec776eeb30e220f0bc1e092c3ad744b2a379e3993070364d3adc2" 1612 | "checksum security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9636f8989cbf61385ae4824b98c1aaa54c994d7d8b41f11c601ed799f0549a56" 1613 | "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" 1614 | "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" 1615 | "checksum serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)" = "a72e9b96fa45ce22a4bc23da3858dfccfd60acd28a25bcd328a98fdd6bea43fd" 1616 | "checksum serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)" = "101b495b109a3e3ca8c4cbe44cf62391527cdfb6ba15821c5ce80bcd5ea23f9f" 1617 | "checksum serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)" = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d" 1618 | "checksum serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a" 1619 | "checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" 1620 | "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" 1621 | "checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be" 1622 | "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" 1623 | "checksum string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b639411d0b9c738748b5397d5ceba08e648f4f1992231aa859af1a017f31f60b" 1624 | "checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" 1625 | "checksum structopt 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)" = "3d0760c312538987d363c36c42339b55f5ee176ea8808bbe4543d484a291c8d1" 1626 | "checksum structopt-derive 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)" = "528aeb7351d042e6ffbc2a6fb76a86f9b622fdf7c25932798e7a82cb03bc94c6" 1627 | "checksum syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)" = "a1393e4a97a19c01e900df2aec855a29f71cf02c402e2f443b8d2747c25c5dbe" 1628 | "checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f" 1629 | "checksum tempfile 3.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7dc4738f2e68ed2855de5ac9cdbe05c9216773ecde4739b2f095002ab03a13ef" 1630 | "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" 1631 | "checksum termion 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dde0593aeb8d47accea5392b39350015b5eccb12c0d98044d856983d89548dea" 1632 | "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" 1633 | "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" 1634 | "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" 1635 | "checksum tokio 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "94a1f9396aec29d31bb16c24d155cfa144d1af91c40740125db3131bdaf76da8" 1636 | "checksum tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46" 1637 | "checksum tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d16217cad7f1b840c5a97dfb3c43b0c871fef423a6e8d2118c604e843662a443" 1638 | "checksum tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "83ea44c6c0773cc034771693711c35c677b4b5a4b21b9e7071704c54de7d555e" 1639 | "checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926" 1640 | "checksum tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6af16bfac7e112bea8b0442542161bfc41cbfa4466b580bdda7d18cb88b911ce" 1641 | "checksum tokio-sync 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "5b2f843ffdf8d6e1f90bddd48da43f99ab071660cd92b7ec560ef3cdfd7a409a" 1642 | "checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" 1643 | "checksum tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72558af20be886ea124595ea0f806dd5703b8958e4705429dd58b3d8231f72f2" 1644 | "checksum tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "f2106812d500ed25a4f38235b9cae8f78a09edf43203e16e59c3b769a342a60e" 1645 | "checksum tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "350c9edade9830dc185ae48ba45667a445ab59f6167ef6d0254ec9d2430d9dd3" 1646 | "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" 1647 | "checksum try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "283d3b89e1368717881a9d51dad843cc435380d8109c9e47d38780a324698d8b" 1648 | "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" 1649 | "checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" 1650 | "checksum unicase 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a84e5511b2a947f3ae965dcb29b13b7b1691b6e7332cf5dbc1744138d5acb7f6" 1651 | "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" 1652 | "checksum unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426" 1653 | "checksum unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1967f4cdfc355b37fd76d2a954fb2ed3871034eb4f26d60537d88795cfc332a9" 1654 | "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" 1655 | "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" 1656 | "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" 1657 | "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" 1658 | "checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" 1659 | "checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" 1660 | "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" 1661 | "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" 1662 | "checksum want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3" 1663 | "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" 1664 | "checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" 1665 | "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" 1666 | "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1667 | "checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" 1668 | "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1669 | "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" 1670 | "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" 1671 | --------------------------------------------------------------------------------