├── .gitignore ├── example ├── .gitignore ├── src │ ├── SUMMARY.md │ ├── chapter_2.md │ └── chapter_1.md └── book.toml ├── .github └── workflows │ ├── rust.yml │ ├── clippy.yml │ └── release.yml ├── Cargo.toml ├── README.md ├── src ├── main.rs ├── checklist.rs └── checklist_pre.rs ├── LICENCE.md └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /example/.gitignore: -------------------------------------------------------------------------------- 1 | book 2 | -------------------------------------------------------------------------------- /example/src/SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Summary 2 | 3 | - [Chapter 1](./chapter_1.md) 4 | - [Chapter 2](./chapter_2.md) 5 | -------------------------------------------------------------------------------- /example/book.toml: -------------------------------------------------------------------------------- 1 | [book] 2 | authors = ["Aurélien Deharbe "] 3 | multilingual = false 4 | src = "src" 5 | title = "Checklist Demo" 6 | 7 | [preprocessor.checklist] 8 | title = "Recommendations checklist" 9 | -------------------------------------------------------------------------------- /example/src/chapter_2.md: -------------------------------------------------------------------------------- 1 | # Chapter 1 2 | 3 | > ### Reco {{#check RECO-3 | A small description for recommendation 3}} 4 | > 5 | > This should be a lengthy description of recommendation 3. 6 | 7 | Blah blah. 8 | 9 | > ### Reco {{#check RECO-4 | Some recommendation to be checked}} 10 | > 11 | > And this is another recommendation. 12 | -------------------------------------------------------------------------------- /example/src/chapter_1.md: -------------------------------------------------------------------------------- 1 | # Chapter 1 2 | 3 | > ### Reco {{#check RECO-1 | A small description for recommendation 1}} 4 | > 5 | > This should be a lengthy description of recommendation 1. 6 | 7 | Blah blah. 8 | 9 | > ### Reco {{#check RECO-2 | Some recommendation to be checked}} 10 | > 11 | > And this is the second recommendation. 12 | -------------------------------------------------------------------------------- /.github/workflows/rust.yml: -------------------------------------------------------------------------------- 1 | name: Rust 2 | 3 | on: 4 | push: 5 | branches: [ master ] 6 | pull_request: 7 | branches: [ master ] 8 | 9 | env: 10 | CARGO_TERM_COLOR: always 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v3 19 | - name: Build 20 | run: cargo build --verbose 21 | - name: Run tests 22 | run: cargo test --verbose 23 | -------------------------------------------------------------------------------- /.github/workflows/clippy.yml: -------------------------------------------------------------------------------- 1 | name: Clippy 2 | 3 | on: 4 | push: 5 | branches: [ master ] 6 | pull_request: 7 | branches: [ master ] 8 | 9 | env: 10 | CARGO_TERM_COLOR: always 11 | 12 | jobs: 13 | clippy-check: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v3 19 | - run: rustup component add clippy 20 | - uses: actions-rs/clippy-check@v1 21 | with: 22 | token: ${{ secrets.GITHUB_TOKEN }} 23 | args: --all-features 24 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "mdbook-checklist" 3 | version = "0.1.1" 4 | authors = ["Aurélien Deharbe "] 5 | edition = "2021" 6 | repository = "https://github.com/ANSSI-FR/mdbook-checklist" 7 | description = "An mdBook preprocessor for generating checklists and indexes." 8 | keywords = ["mdbook", "markdown", "preprocessor"] 9 | readme = "README.md" 10 | license-file = "LICENCE.md" 11 | 12 | [dependencies] 13 | clap = "3.2" 14 | lazy_static = "1.4" 15 | mdbook = "0.4" 16 | regex = "1.7" 17 | serde_json = "1.0" 18 | toml = "0.5" 19 | 20 | [[bin]] 21 | doc = false 22 | name = "mdbook-checklist" 23 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | tags: [ v* ] 6 | 7 | env: 8 | CARGO_TERM_COLOR: always 9 | 10 | jobs: 11 | create-release: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v3 15 | - uses: taiki-e/create-gh-release-action@v1 16 | with: 17 | token: ${{ secrets.GITHUB_TOKEN }} 18 | upload: 19 | strategy: 20 | matrix: 21 | os: 22 | - ubuntu-latest 23 | - macos-latest 24 | - windows-latest 25 | runs-on: ${{ matrix.os }} 26 | steps: 27 | - uses: actions/checkout@v3 28 | - uses: taiki-e/upload-rust-binary-action@v1 29 | with: 30 | bin: mdbook-checklist 31 | tar: unix 32 | zip: windows 33 | token: ${{ secrets.GITHUB_TOKEN }} 34 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # mdBook checklist preprocessor 2 | 3 | [![Crates.io](https://img.shields.io/crates/v/mdbook-checklist.svg)](https://crates.io/crates/mdbook-checklist) 4 | [![Github CI](https://github.com/ANSSI-FR/mdbook-checklist/workflows/Rust/badge.svg)](https://github.com/ANSSI-FR/mdbook-checklist/actions) 5 | [![Github CI](https://github.com/ANSSI-FR/mdbook-checklist/workflows/Clippy/badge.svg)](https://github.com/ANSSI-FR/mdbook-checklist/actions) 6 | 7 | A preprocessor for gathering checks in an mdBook and generating an index. 8 | 9 | ## Usage 10 | 11 | First, you need to install the preprocessor: 12 | 13 | ``` 14 | cargo install mdbook-checklist 15 | ``` 16 | 17 | Next, you need to add the preprocessor to your `book.toml`: 18 | 19 | ``` 20 | [book] 21 | authors = ["Me"] 22 | multilingual = false 23 | src = "src" 24 | title = "The Book" 25 | 26 | [preprocessor.checklist] 27 | ``` 28 | 29 | Finally, you can insert marks in your book chapters, according to the following 30 | format: `{{#check | }}`. For example 31 | 32 | ``` 33 | # Chapter 1 34 | 35 | {{#check Note-1 | This is an important note}} 36 | ``` 37 | 38 | The mark will be replaced by the name solely (with an anchor to be linked from 39 | the index). Also, for this example, the following index will be generated: 40 | 41 | > # Checklist 42 | > 43 | > - Chapter 1: 44 | > - [ ] This is an important note ([Note-1](README.md#Note-1)) 45 | 46 | 47 | ## Options 48 | 49 | The title `Checklist` of the generated index can be changed: 50 | 51 | ``` 52 | [preprocessor.checklist] 53 | title = "A list of notes" 54 | ``` 55 | 56 | ## Licence 57 | 58 | This library is published under the [Open Licence 2.0](LICENCE.md). 59 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | #![forbid(unsafe_code)] 2 | 3 | #[macro_use] 4 | extern crate lazy_static; 5 | 6 | mod checklist; 7 | mod checklist_pre; 8 | 9 | use checklist_pre::ChecklistPre; 10 | 11 | use clap::{Arg, ArgMatches, Command}; 12 | use mdbook::errors::Error; 13 | use mdbook::preprocess::{CmdPreprocessor, Preprocessor}; 14 | 15 | use std::io; 16 | use std::process; 17 | 18 | fn make_command() -> Command<'static> { 19 | Command::new("checklist-preprocessor") 20 | .about("A mdbook preprocessor to generate checklists") 21 | .subcommand( 22 | Command::new("supports") 23 | .arg(Arg::new("renderer").required(true)) 24 | .about("Check whether a renderer is supported by this preprocessor"), 25 | ) 26 | } 27 | 28 | fn main() -> Result<(), Error> { 29 | let matches = make_command().get_matches(); 30 | let preprocessor = ChecklistPre; 31 | 32 | if let Some(sub_args) = matches.subcommand_matches("supports") { 33 | handle_supports(&preprocessor, sub_args) 34 | } else { 35 | handle_preprocessing(&preprocessor) 36 | } 37 | } 38 | 39 | fn handle_supports(pre: &dyn Preprocessor, sub_args: &ArgMatches) -> Result<(), Error> { 40 | let renderer = sub_args.value_of("renderer").expect("Required argument"); 41 | let supported = pre.supports_renderer(renderer); 42 | 43 | process::exit(if supported { 0 } else { 1 }); 44 | } 45 | 46 | fn handle_preprocessing(pre: &dyn Preprocessor) -> Result<(), Error> { 47 | let (ctx, book) = CmdPreprocessor::parse_input(io::stdin())?; 48 | 49 | if ctx.mdbook_version != mdbook::MDBOOK_VERSION { 50 | eprintln!( 51 | "Warning: The {} plugin was built against version {} of mdbook, \ 52 | but we're being called from version {}", 53 | pre.name(), 54 | mdbook::MDBOOK_VERSION, 55 | ctx.mdbook_version 56 | ); 57 | } 58 | 59 | eprintln!("{}: Running checklist preprocessor", pre.name()); 60 | let processed_book = pre.run(&ctx, book)?; 61 | serde_json::to_writer(io::stdout(), &processed_book)?; 62 | 63 | Ok(()) 64 | } 65 | -------------------------------------------------------------------------------- /src/checklist.rs: -------------------------------------------------------------------------------- 1 | use mdbook::book::Chapter; 2 | use std::path::PathBuf; 3 | use toml::{value::Table, Value}; 4 | 5 | pub struct Checklist { 6 | title: String, 7 | data: Vec<(String, PathBuf, Vec)>, 8 | } 9 | 10 | impl Checklist { 11 | pub fn new() -> Self { 12 | Checklist { 13 | title: "Checklist".to_string(), 14 | data: Vec::new(), 15 | } 16 | } 17 | 18 | pub fn update_config(&mut self, config: &Table) { 19 | if let Some(Value::String(title)) = config.get("title") { 20 | self.title = title.clone(); 21 | } 22 | } 23 | 24 | pub fn insert(&mut self, chap_name: &str, chap_path: &PathBuf, name: String, desc: String) { 25 | match self.data.iter_mut().find(|(_, c, _)| c == chap_path) { 26 | None => { 27 | self.data.push(( 28 | chap_name.to_string(), 29 | chap_path.clone(), 30 | vec![CheckEntry { name, desc }], 31 | )); 32 | } 33 | Some((_, _, ref mut v)) => v.push(CheckEntry { name, desc }), 34 | } 35 | } 36 | 37 | pub fn generate_chapter(self) -> Chapter { 38 | let mut content = String::new(); 39 | 40 | content.push_str(&format!("# {}\n\n", self.title)); 41 | 42 | for (chap_name, _, entries) in &self.data { 43 | content.push_str(&format!("\n - {}:\n", chap_name,)); 44 | for entry in entries { 45 | content.push_str(&format!(" - [ ] {} ([{}])\n", entry.desc, entry.name,)); 46 | } 47 | } 48 | 49 | content.push_str("\n\n"); 50 | for (_, chap_path, entries) in &self.data { 51 | for entry in entries { 52 | content.push_str(&format!( 53 | "[{}]: {}#{}\n", 54 | entry.name, 55 | chap_path.to_str().unwrap(), 56 | entry.name, 57 | )); 58 | } 59 | } 60 | 61 | Chapter::new(&self.title, content, "checklist.md", vec![]) 62 | } 63 | } 64 | 65 | struct CheckEntry { 66 | name: String, 67 | desc: String, 68 | } 69 | -------------------------------------------------------------------------------- /src/checklist_pre.rs: -------------------------------------------------------------------------------- 1 | use crate::checklist::Checklist; 2 | use mdbook::book::{Book, BookItem, Chapter}; 3 | use mdbook::errors::Error; 4 | use mdbook::preprocess::{Preprocessor, PreprocessorContext}; 5 | use regex::Regex; 6 | 7 | // A preprocessor for collecting the `{{#check | }}` marks 8 | // and generating a 'checklist' chapter. 9 | pub struct ChecklistPre; 10 | 11 | const NAME: &str = "checklist-preprocessor"; 12 | 13 | impl Preprocessor for ChecklistPre { 14 | fn name(&self) -> &str { 15 | NAME 16 | } 17 | 18 | fn run(&self, ctx: &PreprocessorContext, mut book: Book) -> Result { 19 | let mut checklist = Checklist::new(); 20 | if let Some(cfg) = ctx.config.get_preprocessor(NAME) { 21 | checklist.update_config(cfg); 22 | } 23 | 24 | book.for_each_mut(|section: &mut BookItem| { 25 | if let BookItem::Chapter(ref mut chapter) = *section { 26 | let content = collect_and_replace(chapter, &mut checklist); 27 | chapter.content = content; 28 | } 29 | }); 30 | 31 | let checklist_chapter = checklist.generate_chapter(); 32 | book.sections.push(BookItem::Chapter(checklist_chapter)); 33 | 34 | Ok(book) 35 | } 36 | } 37 | 38 | fn collect_and_replace(chapter: &Chapter, checklist: &mut Checklist) -> String { 39 | lazy_static! { 40 | static ref RE: Regex = Regex::new( 41 | r"(?x) 42 | \{\{\s* # opening parens and whitespace 43 | \#check # macro tag 44 | \s+ # separating whitespace 45 | (?P[a-zA-Z\-0-9]+) # ident 46 | \s*\|\s* # separator with whitespaces 47 | (?P[^\}]+) # description 48 | \}\} # whitespace and closing parens" 49 | ) 50 | .unwrap(); 51 | } 52 | 53 | let s = &chapter.content; 54 | let mut replaced = String::new(); 55 | let mut previous_end_index = 0; 56 | 57 | for cap in RE.captures_iter(&chapter.content) { 58 | let name = cap["name"].to_string(); 59 | let desc = cap["desc"].to_string(); 60 | let start_index = cap.get(0).unwrap().start(); 61 | let end_index = cap.get(0).unwrap().end(); 62 | 63 | replaced.push_str(&s[previous_end_index..start_index]); 64 | replaced.push_str(&format!("", name)); 65 | replaced.push_str(&name); 66 | previous_end_index = end_index; 67 | 68 | checklist.insert(&chapter.name, chapter.path.as_ref().unwrap(), name, desc); 69 | } 70 | 71 | replaced.push_str(&s[previous_end_index..]); 72 | replaced 73 | } 74 | -------------------------------------------------------------------------------- /LICENCE.md: -------------------------------------------------------------------------------- 1 | # OPEN LICENCE 2.0/LICENCE OUVERTE 2.0 2 | 3 | ## “Reuse” of the “Information” covered by this licence 4 | 5 | The “Grantor” grants the “Reuser” the free, non-exclusive right to “Reuse” the “Information” subject of this licence, for commercial or non-commercial purposes, worldwide and for an unlimited period, in accordance with the conditions stated below. 6 | 7 | **The “Reuser” is free to reuse the “Information”:** 8 | 9 | - To reproduce it, copy it. 10 | - To adapt, modify, retrieve and transform it in order to create “derived information”, products and services. 11 | - To share, disseminate, redistribute, publish and transmit it. 12 | - To exploit it for commercial purposes, e.g., by combining it with other information, or by including it in his/her own product or application. 13 | 14 | **Subject to:** 15 | 16 | - An acknowledgement of the authorship of the “Information”: its source (at least, the name of the “Grantor”) and the date of the most recent update of the reused “Information”. Specifically, the “Reuser” may satisfy this condition by pointing, via a hypertext link, to the source of “the Information” and so supplying an actual acknowledgement of its authorship. 17 | 18 | **For example:** 19 | 20 | > “Ministry of xxx—Original data downloaded from `http://www.data.gouv.fr/fr/datasets/xxx/`, updated on 14 February 2017”. 21 | 22 | This acknowledgement of authorship does not confer any official status on the “Reuse” of the “Information”, and must not suggest any sort of recognition or endorsement on the part of the “Grantor”, or any other public entity, of the “Reuser” or of their “Reuse”. 23 | 24 | ## Personal data 25 | 26 | The “Information” made available may contain “Personal data” that may be subject to “Reuse”. If this is the case, the “Grantor” informs the “Reuser” about its existence. The “Information” may be freely reused, within the rights granted by this licence, subject to compliance with the legal framework relating to personal data protection. 27 | 28 | ## Intellectual property rights 29 | 30 | It is guaranteed to The “Reuser” that potential “Intellectual property rights” held by third parties or by the “Grantor” on “Information” do not interfere with the rights granted by this licence. 31 | 32 | When the “Grantor” holds transferable “Intellectual property rights” on the “Information”, he/she assigns these to the “Reuser” on a non-exclusive basis, free of charge, worldwide, for the entire duration of the “Intellectual property rights”, and the “Reuser” is free to use the “Information” for any purpose that complies with the rights and conditions defined in this licence. 33 | 34 | ## Liability 35 | 36 | The “Information” is made available as it is produced or received by the “Grantor”, without any other express or tacit guarantee than those set out in this licence. The “Grantor” does not guarantee the absence of errors or inaccuracies in the “Information”, nor a continuous supply of the “Information”. He/she cannot be held responsible for any loss, prejudice or damage of any kind caused to third parties as a result of the “Reuse”. 37 | 38 | The “Reuser” is solely responsible for the “Reuse” of the “Information”. This “Reuse” must not mislead third parties as to the contents of the “Information”, its source or its date of update. 39 | 40 | ## Applicable legislation 41 | 42 | This licence is governed by French law. 43 | 44 | ### Compatibility of this licence 45 | 46 | This licence has been designed to be compatible with any free licence that at least requires an acknowledgement of authorship, and specifically with the previous version of this licence as well as with the following licences: United Kingdom’s “Open Government Licence” (OGL), Creative Commons’ “Creative Commons Attribution” (CC-BY) and Open Knowledge Foundation’s “Open Data Commons Attribution” (ODC-BY). 47 | 48 | ## Definitions 49 | 50 | Within the meaning of this licence, are to be considered as : 51 | 52 | - The “Grantor”: any person granting the right to “Reuse” “Information” under the rights and conditions set out in this licence. 53 | - The “Information”: 54 | - any public information contained in documents disclosed or published by any administration referred to in the first paragraph of Article L. 300-2 of the code des relations entre le public et l’administration (CRPA), 55 | - any information made available by any person under the terms and conditions of this licence. 56 | - The “Reuse”: the use of the “Information” for other purposes than those for which it was produced or received. 57 | - The“Reuser”: any person reusing the “Information” in accordance with the conditions of this licence. 58 | - “Personal data”: any information relating to an identified or identifiable natural person who may be identified directly or indirectly. Its “Reuse” is conditional on the respect of the existing legal framework. 59 | - “Derived information”: any new data or information created directly from the “Information” or from a combination of the “Information” and other data or information not subject to this licence. 60 | - “Intellectual property rights”: all rights identified as such under the code de la propriété intellectuelle (including copyright, rights related to copyright, sui generis rights of database producers, etc.). 61 | 62 | ## About this licence 63 | 64 | This licence is intended to be used by administrations for the reuse of their public information. It can also be used by any individual wishing to supply “Information” under the conditions defined in this licence. 65 | 66 | France has a comprehensive legal framework aiming at the spontaneous dissemination by the administrations of their public information in order to ensure the widest possible reuse of this information. 67 | 68 | The right to “Reuse” the administrations’ “Information” is governed by the code des relations entre le public et l’administration (CRPA). 69 | 70 | This licence facilitates the unrestricted and free of charge reuse of public information and is one of the licences which can be used by the administration pursuant to the decree issued under article L. 323-2 of the CRPA. 71 | 72 | Under the Prime Minister’s authority, the Etalab mission is mandated to open up the maximum amount of data held by State administrations and public institutions. Etalab has drawn up the Open Licence to facilitate the unrestricted and free of charge reuse of public information, as defined by article L. 321-1 of the CRPA. 73 | 74 | This licence is version 2.0 of the Open Licence. 75 | 76 | Etalab reserves the right to propose new versions of the Open Licence. Nevertheless, “Reusers” may continue to reuse information obtained under this licence should they so wish. 77 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "aho-corasick" 7 | version = "0.7.20" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" 10 | dependencies = [ 11 | "memchr", 12 | ] 13 | 14 | [[package]] 15 | name = "ammonia" 16 | version = "3.2.1" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "4b477377562f3086b7778d241786e9406b883ccfaa03557c0fe0924b9349f13a" 19 | dependencies = [ 20 | "html5ever", 21 | "maplit", 22 | "once_cell", 23 | "tendril", 24 | "url", 25 | ] 26 | 27 | [[package]] 28 | name = "android_system_properties" 29 | version = "0.1.5" 30 | source = "registry+https://github.com/rust-lang/crates.io-index" 31 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 32 | dependencies = [ 33 | "libc", 34 | ] 35 | 36 | [[package]] 37 | name = "anyhow" 38 | version = "1.0.66" 39 | source = "registry+https://github.com/rust-lang/crates.io-index" 40 | checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" 41 | 42 | [[package]] 43 | name = "atty" 44 | version = "0.2.14" 45 | source = "registry+https://github.com/rust-lang/crates.io-index" 46 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" 47 | dependencies = [ 48 | "hermit-abi", 49 | "libc", 50 | "winapi 0.3.9", 51 | ] 52 | 53 | [[package]] 54 | name = "autocfg" 55 | version = "1.1.0" 56 | source = "registry+https://github.com/rust-lang/crates.io-index" 57 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 58 | 59 | [[package]] 60 | name = "base64" 61 | version = "0.13.1" 62 | source = "registry+https://github.com/rust-lang/crates.io-index" 63 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 64 | 65 | [[package]] 66 | name = "bitflags" 67 | version = "1.3.2" 68 | source = "registry+https://github.com/rust-lang/crates.io-index" 69 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 70 | 71 | [[package]] 72 | name = "block-buffer" 73 | version = "0.10.3" 74 | source = "registry+https://github.com/rust-lang/crates.io-index" 75 | checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" 76 | dependencies = [ 77 | "generic-array", 78 | ] 79 | 80 | [[package]] 81 | name = "bstr" 82 | version = "0.2.17" 83 | source = "registry+https://github.com/rust-lang/crates.io-index" 84 | checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" 85 | dependencies = [ 86 | "lazy_static", 87 | "memchr", 88 | "regex-automata", 89 | ] 90 | 91 | [[package]] 92 | name = "bumpalo" 93 | version = "3.11.1" 94 | source = "registry+https://github.com/rust-lang/crates.io-index" 95 | checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" 96 | 97 | [[package]] 98 | name = "byteorder" 99 | version = "1.4.3" 100 | source = "registry+https://github.com/rust-lang/crates.io-index" 101 | checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" 102 | 103 | [[package]] 104 | name = "bytes" 105 | version = "1.3.0" 106 | source = "registry+https://github.com/rust-lang/crates.io-index" 107 | checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" 108 | 109 | [[package]] 110 | name = "cc" 111 | version = "1.0.77" 112 | source = "registry+https://github.com/rust-lang/crates.io-index" 113 | checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" 114 | 115 | [[package]] 116 | name = "cfg-if" 117 | version = "0.1.10" 118 | source = "registry+https://github.com/rust-lang/crates.io-index" 119 | checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" 120 | 121 | [[package]] 122 | name = "cfg-if" 123 | version = "1.0.0" 124 | source = "registry+https://github.com/rust-lang/crates.io-index" 125 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 126 | 127 | [[package]] 128 | name = "chrono" 129 | version = "0.4.23" 130 | source = "registry+https://github.com/rust-lang/crates.io-index" 131 | checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" 132 | dependencies = [ 133 | "iana-time-zone", 134 | "js-sys", 135 | "num-integer", 136 | "num-traits", 137 | "time", 138 | "wasm-bindgen", 139 | "winapi 0.3.9", 140 | ] 141 | 142 | [[package]] 143 | name = "clap" 144 | version = "3.2.23" 145 | source = "registry+https://github.com/rust-lang/crates.io-index" 146 | checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" 147 | dependencies = [ 148 | "atty", 149 | "bitflags", 150 | "clap_lex", 151 | "indexmap", 152 | "once_cell", 153 | "strsim", 154 | "termcolor", 155 | "textwrap", 156 | ] 157 | 158 | [[package]] 159 | name = "clap_complete" 160 | version = "3.2.5" 161 | source = "registry+https://github.com/rust-lang/crates.io-index" 162 | checksum = "3f7a2e0a962c45ce25afce14220bc24f9dade0a1787f185cecf96bfba7847cd8" 163 | dependencies = [ 164 | "clap", 165 | ] 166 | 167 | [[package]] 168 | name = "clap_lex" 169 | version = "0.2.4" 170 | source = "registry+https://github.com/rust-lang/crates.io-index" 171 | checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" 172 | dependencies = [ 173 | "os_str_bytes", 174 | ] 175 | 176 | [[package]] 177 | name = "codespan-reporting" 178 | version = "0.11.1" 179 | source = "registry+https://github.com/rust-lang/crates.io-index" 180 | checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" 181 | dependencies = [ 182 | "termcolor", 183 | "unicode-width", 184 | ] 185 | 186 | [[package]] 187 | name = "core-foundation-sys" 188 | version = "0.8.3" 189 | source = "registry+https://github.com/rust-lang/crates.io-index" 190 | checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" 191 | 192 | [[package]] 193 | name = "cpufeatures" 194 | version = "0.2.5" 195 | source = "registry+https://github.com/rust-lang/crates.io-index" 196 | checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" 197 | dependencies = [ 198 | "libc", 199 | ] 200 | 201 | [[package]] 202 | name = "crypto-common" 203 | version = "0.1.6" 204 | source = "registry+https://github.com/rust-lang/crates.io-index" 205 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 206 | dependencies = [ 207 | "generic-array", 208 | "typenum", 209 | ] 210 | 211 | [[package]] 212 | name = "cxx" 213 | version = "1.0.82" 214 | source = "registry+https://github.com/rust-lang/crates.io-index" 215 | checksum = "d4a41a86530d0fe7f5d9ea779916b7cadd2d4f9add748b99c2c029cbbdfaf453" 216 | dependencies = [ 217 | "cc", 218 | "cxxbridge-flags", 219 | "cxxbridge-macro", 220 | "link-cplusplus", 221 | ] 222 | 223 | [[package]] 224 | name = "cxx-build" 225 | version = "1.0.82" 226 | source = "registry+https://github.com/rust-lang/crates.io-index" 227 | checksum = "06416d667ff3e3ad2df1cd8cd8afae5da26cf9cec4d0825040f88b5ca659a2f0" 228 | dependencies = [ 229 | "cc", 230 | "codespan-reporting", 231 | "once_cell", 232 | "proc-macro2", 233 | "quote", 234 | "scratch", 235 | "syn", 236 | ] 237 | 238 | [[package]] 239 | name = "cxxbridge-flags" 240 | version = "1.0.82" 241 | source = "registry+https://github.com/rust-lang/crates.io-index" 242 | checksum = "820a9a2af1669deeef27cb271f476ffd196a2c4b6731336011e0ba63e2c7cf71" 243 | 244 | [[package]] 245 | name = "cxxbridge-macro" 246 | version = "1.0.82" 247 | source = "registry+https://github.com/rust-lang/crates.io-index" 248 | checksum = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470" 249 | dependencies = [ 250 | "proc-macro2", 251 | "quote", 252 | "syn", 253 | ] 254 | 255 | [[package]] 256 | name = "digest" 257 | version = "0.10.6" 258 | source = "registry+https://github.com/rust-lang/crates.io-index" 259 | checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" 260 | dependencies = [ 261 | "block-buffer", 262 | "crypto-common", 263 | ] 264 | 265 | [[package]] 266 | name = "elasticlunr-rs" 267 | version = "3.0.1" 268 | source = "registry+https://github.com/rust-lang/crates.io-index" 269 | checksum = "b94d9c8df0fe6879ca12e7633fdfe467c503722cc981fc463703472d2b876448" 270 | dependencies = [ 271 | "regex", 272 | "serde", 273 | "serde_derive", 274 | "serde_json", 275 | ] 276 | 277 | [[package]] 278 | name = "env_logger" 279 | version = "0.9.3" 280 | source = "registry+https://github.com/rust-lang/crates.io-index" 281 | checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" 282 | dependencies = [ 283 | "atty", 284 | "humantime", 285 | "log", 286 | "regex", 287 | "termcolor", 288 | ] 289 | 290 | [[package]] 291 | name = "fastrand" 292 | version = "1.8.0" 293 | source = "registry+https://github.com/rust-lang/crates.io-index" 294 | checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" 295 | dependencies = [ 296 | "instant", 297 | ] 298 | 299 | [[package]] 300 | name = "filetime" 301 | version = "0.2.18" 302 | source = "registry+https://github.com/rust-lang/crates.io-index" 303 | checksum = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3" 304 | dependencies = [ 305 | "cfg-if 1.0.0", 306 | "libc", 307 | "redox_syscall", 308 | "windows-sys", 309 | ] 310 | 311 | [[package]] 312 | name = "fnv" 313 | version = "1.0.7" 314 | source = "registry+https://github.com/rust-lang/crates.io-index" 315 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 316 | 317 | [[package]] 318 | name = "form_urlencoded" 319 | version = "1.1.0" 320 | source = "registry+https://github.com/rust-lang/crates.io-index" 321 | checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" 322 | dependencies = [ 323 | "percent-encoding", 324 | ] 325 | 326 | [[package]] 327 | name = "fsevent" 328 | version = "0.4.0" 329 | source = "registry+https://github.com/rust-lang/crates.io-index" 330 | checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" 331 | dependencies = [ 332 | "bitflags", 333 | "fsevent-sys", 334 | ] 335 | 336 | [[package]] 337 | name = "fsevent-sys" 338 | version = "2.0.1" 339 | source = "registry+https://github.com/rust-lang/crates.io-index" 340 | checksum = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0" 341 | dependencies = [ 342 | "libc", 343 | ] 344 | 345 | [[package]] 346 | name = "fuchsia-zircon" 347 | version = "0.3.3" 348 | source = "registry+https://github.com/rust-lang/crates.io-index" 349 | checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" 350 | dependencies = [ 351 | "bitflags", 352 | "fuchsia-zircon-sys", 353 | ] 354 | 355 | [[package]] 356 | name = "fuchsia-zircon-sys" 357 | version = "0.3.3" 358 | source = "registry+https://github.com/rust-lang/crates.io-index" 359 | checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 360 | 361 | [[package]] 362 | name = "futf" 363 | version = "0.1.5" 364 | source = "registry+https://github.com/rust-lang/crates.io-index" 365 | checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" 366 | dependencies = [ 367 | "mac", 368 | "new_debug_unreachable", 369 | ] 370 | 371 | [[package]] 372 | name = "futures-channel" 373 | version = "0.3.25" 374 | source = "registry+https://github.com/rust-lang/crates.io-index" 375 | checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" 376 | dependencies = [ 377 | "futures-core", 378 | "futures-sink", 379 | ] 380 | 381 | [[package]] 382 | name = "futures-core" 383 | version = "0.3.25" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" 386 | 387 | [[package]] 388 | name = "futures-macro" 389 | version = "0.3.25" 390 | source = "registry+https://github.com/rust-lang/crates.io-index" 391 | checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" 392 | dependencies = [ 393 | "proc-macro2", 394 | "quote", 395 | "syn", 396 | ] 397 | 398 | [[package]] 399 | name = "futures-sink" 400 | version = "0.3.25" 401 | source = "registry+https://github.com/rust-lang/crates.io-index" 402 | checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" 403 | 404 | [[package]] 405 | name = "futures-task" 406 | version = "0.3.25" 407 | source = "registry+https://github.com/rust-lang/crates.io-index" 408 | checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" 409 | 410 | [[package]] 411 | name = "futures-util" 412 | version = "0.3.25" 413 | source = "registry+https://github.com/rust-lang/crates.io-index" 414 | checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" 415 | dependencies = [ 416 | "futures-core", 417 | "futures-macro", 418 | "futures-sink", 419 | "futures-task", 420 | "pin-project-lite", 421 | "pin-utils", 422 | "slab", 423 | ] 424 | 425 | [[package]] 426 | name = "generic-array" 427 | version = "0.14.6" 428 | source = "registry+https://github.com/rust-lang/crates.io-index" 429 | checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" 430 | dependencies = [ 431 | "typenum", 432 | "version_check", 433 | ] 434 | 435 | [[package]] 436 | name = "getrandom" 437 | version = "0.2.8" 438 | source = "registry+https://github.com/rust-lang/crates.io-index" 439 | checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" 440 | dependencies = [ 441 | "cfg-if 1.0.0", 442 | "libc", 443 | "wasi 0.11.0+wasi-snapshot-preview1", 444 | ] 445 | 446 | [[package]] 447 | name = "gitignore" 448 | version = "1.0.7" 449 | source = "registry+https://github.com/rust-lang/crates.io-index" 450 | checksum = "78aa90e4620c1498ac434c06ba6e521b525794bbdacf085d490cc794b4a2f9a4" 451 | dependencies = [ 452 | "glob", 453 | ] 454 | 455 | [[package]] 456 | name = "glob" 457 | version = "0.3.0" 458 | source = "registry+https://github.com/rust-lang/crates.io-index" 459 | checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" 460 | 461 | [[package]] 462 | name = "h2" 463 | version = "0.3.15" 464 | source = "registry+https://github.com/rust-lang/crates.io-index" 465 | checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" 466 | dependencies = [ 467 | "bytes", 468 | "fnv", 469 | "futures-core", 470 | "futures-sink", 471 | "futures-util", 472 | "http", 473 | "indexmap", 474 | "slab", 475 | "tokio", 476 | "tokio-util", 477 | "tracing", 478 | ] 479 | 480 | [[package]] 481 | name = "handlebars" 482 | version = "4.3.5" 483 | source = "registry+https://github.com/rust-lang/crates.io-index" 484 | checksum = "433e4ab33f1213cdc25b5fa45c76881240cfe79284cf2b395e8b9e312a30a2fd" 485 | dependencies = [ 486 | "log", 487 | "pest", 488 | "pest_derive", 489 | "serde", 490 | "serde_json", 491 | "thiserror", 492 | ] 493 | 494 | [[package]] 495 | name = "hashbrown" 496 | version = "0.12.3" 497 | source = "registry+https://github.com/rust-lang/crates.io-index" 498 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 499 | 500 | [[package]] 501 | name = "headers" 502 | version = "0.3.8" 503 | source = "registry+https://github.com/rust-lang/crates.io-index" 504 | checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" 505 | dependencies = [ 506 | "base64", 507 | "bitflags", 508 | "bytes", 509 | "headers-core", 510 | "http", 511 | "httpdate", 512 | "mime", 513 | "sha1", 514 | ] 515 | 516 | [[package]] 517 | name = "headers-core" 518 | version = "0.2.0" 519 | source = "registry+https://github.com/rust-lang/crates.io-index" 520 | checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" 521 | dependencies = [ 522 | "http", 523 | ] 524 | 525 | [[package]] 526 | name = "hermit-abi" 527 | version = "0.1.19" 528 | source = "registry+https://github.com/rust-lang/crates.io-index" 529 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 530 | dependencies = [ 531 | "libc", 532 | ] 533 | 534 | [[package]] 535 | name = "html5ever" 536 | version = "0.26.0" 537 | source = "registry+https://github.com/rust-lang/crates.io-index" 538 | checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" 539 | dependencies = [ 540 | "log", 541 | "mac", 542 | "markup5ever", 543 | "proc-macro2", 544 | "quote", 545 | "syn", 546 | ] 547 | 548 | [[package]] 549 | name = "http" 550 | version = "0.2.8" 551 | source = "registry+https://github.com/rust-lang/crates.io-index" 552 | checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" 553 | dependencies = [ 554 | "bytes", 555 | "fnv", 556 | "itoa", 557 | ] 558 | 559 | [[package]] 560 | name = "http-body" 561 | version = "0.4.5" 562 | source = "registry+https://github.com/rust-lang/crates.io-index" 563 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 564 | dependencies = [ 565 | "bytes", 566 | "http", 567 | "pin-project-lite", 568 | ] 569 | 570 | [[package]] 571 | name = "httparse" 572 | version = "1.8.0" 573 | source = "registry+https://github.com/rust-lang/crates.io-index" 574 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 575 | 576 | [[package]] 577 | name = "httpdate" 578 | version = "1.0.2" 579 | source = "registry+https://github.com/rust-lang/crates.io-index" 580 | checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" 581 | 582 | [[package]] 583 | name = "humantime" 584 | version = "2.1.0" 585 | source = "registry+https://github.com/rust-lang/crates.io-index" 586 | checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" 587 | 588 | [[package]] 589 | name = "hyper" 590 | version = "0.14.23" 591 | source = "registry+https://github.com/rust-lang/crates.io-index" 592 | checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" 593 | dependencies = [ 594 | "bytes", 595 | "futures-channel", 596 | "futures-core", 597 | "futures-util", 598 | "h2", 599 | "http", 600 | "http-body", 601 | "httparse", 602 | "httpdate", 603 | "itoa", 604 | "pin-project-lite", 605 | "socket2", 606 | "tokio", 607 | "tower-service", 608 | "tracing", 609 | "want", 610 | ] 611 | 612 | [[package]] 613 | name = "iana-time-zone" 614 | version = "0.1.53" 615 | source = "registry+https://github.com/rust-lang/crates.io-index" 616 | checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" 617 | dependencies = [ 618 | "android_system_properties", 619 | "core-foundation-sys", 620 | "iana-time-zone-haiku", 621 | "js-sys", 622 | "wasm-bindgen", 623 | "winapi 0.3.9", 624 | ] 625 | 626 | [[package]] 627 | name = "iana-time-zone-haiku" 628 | version = "0.1.1" 629 | source = "registry+https://github.com/rust-lang/crates.io-index" 630 | checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" 631 | dependencies = [ 632 | "cxx", 633 | "cxx-build", 634 | ] 635 | 636 | [[package]] 637 | name = "idna" 638 | version = "0.3.0" 639 | source = "registry+https://github.com/rust-lang/crates.io-index" 640 | checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" 641 | dependencies = [ 642 | "unicode-bidi", 643 | "unicode-normalization", 644 | ] 645 | 646 | [[package]] 647 | name = "indexmap" 648 | version = "1.9.2" 649 | source = "registry+https://github.com/rust-lang/crates.io-index" 650 | checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" 651 | dependencies = [ 652 | "autocfg", 653 | "hashbrown", 654 | ] 655 | 656 | [[package]] 657 | name = "inotify" 658 | version = "0.7.1" 659 | source = "registry+https://github.com/rust-lang/crates.io-index" 660 | checksum = "4816c66d2c8ae673df83366c18341538f234a26d65a9ecea5c348b453ac1d02f" 661 | dependencies = [ 662 | "bitflags", 663 | "inotify-sys", 664 | "libc", 665 | ] 666 | 667 | [[package]] 668 | name = "inotify-sys" 669 | version = "0.1.5" 670 | source = "registry+https://github.com/rust-lang/crates.io-index" 671 | checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" 672 | dependencies = [ 673 | "libc", 674 | ] 675 | 676 | [[package]] 677 | name = "instant" 678 | version = "0.1.12" 679 | source = "registry+https://github.com/rust-lang/crates.io-index" 680 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 681 | dependencies = [ 682 | "cfg-if 1.0.0", 683 | ] 684 | 685 | [[package]] 686 | name = "iovec" 687 | version = "0.1.4" 688 | source = "registry+https://github.com/rust-lang/crates.io-index" 689 | checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" 690 | dependencies = [ 691 | "libc", 692 | ] 693 | 694 | [[package]] 695 | name = "itoa" 696 | version = "1.0.4" 697 | source = "registry+https://github.com/rust-lang/crates.io-index" 698 | checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" 699 | 700 | [[package]] 701 | name = "js-sys" 702 | version = "0.3.60" 703 | source = "registry+https://github.com/rust-lang/crates.io-index" 704 | checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" 705 | dependencies = [ 706 | "wasm-bindgen", 707 | ] 708 | 709 | [[package]] 710 | name = "kernel32-sys" 711 | version = "0.2.2" 712 | source = "registry+https://github.com/rust-lang/crates.io-index" 713 | checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 714 | dependencies = [ 715 | "winapi 0.2.8", 716 | "winapi-build", 717 | ] 718 | 719 | [[package]] 720 | name = "lazy_static" 721 | version = "1.4.0" 722 | source = "registry+https://github.com/rust-lang/crates.io-index" 723 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 724 | 725 | [[package]] 726 | name = "lazycell" 727 | version = "1.3.0" 728 | source = "registry+https://github.com/rust-lang/crates.io-index" 729 | checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" 730 | 731 | [[package]] 732 | name = "libc" 733 | version = "0.2.137" 734 | source = "registry+https://github.com/rust-lang/crates.io-index" 735 | checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" 736 | 737 | [[package]] 738 | name = "link-cplusplus" 739 | version = "1.0.7" 740 | source = "registry+https://github.com/rust-lang/crates.io-index" 741 | checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" 742 | dependencies = [ 743 | "cc", 744 | ] 745 | 746 | [[package]] 747 | name = "lock_api" 748 | version = "0.4.9" 749 | source = "registry+https://github.com/rust-lang/crates.io-index" 750 | checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" 751 | dependencies = [ 752 | "autocfg", 753 | "scopeguard", 754 | ] 755 | 756 | [[package]] 757 | name = "log" 758 | version = "0.4.17" 759 | source = "registry+https://github.com/rust-lang/crates.io-index" 760 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 761 | dependencies = [ 762 | "cfg-if 1.0.0", 763 | ] 764 | 765 | [[package]] 766 | name = "mac" 767 | version = "0.1.1" 768 | source = "registry+https://github.com/rust-lang/crates.io-index" 769 | checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" 770 | 771 | [[package]] 772 | name = "maplit" 773 | version = "1.0.2" 774 | source = "registry+https://github.com/rust-lang/crates.io-index" 775 | checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" 776 | 777 | [[package]] 778 | name = "markup5ever" 779 | version = "0.11.0" 780 | source = "registry+https://github.com/rust-lang/crates.io-index" 781 | checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" 782 | dependencies = [ 783 | "log", 784 | "phf", 785 | "phf_codegen", 786 | "string_cache", 787 | "string_cache_codegen", 788 | "tendril", 789 | ] 790 | 791 | [[package]] 792 | name = "mdbook" 793 | version = "0.4.21" 794 | source = "registry+https://github.com/rust-lang/crates.io-index" 795 | checksum = "23f3e133c6d515528745ffd3b9f0c7d975ae039f0b6abb099f2168daa2afb4f9" 796 | dependencies = [ 797 | "ammonia", 798 | "anyhow", 799 | "chrono", 800 | "clap", 801 | "clap_complete", 802 | "elasticlunr-rs", 803 | "env_logger", 804 | "futures-util", 805 | "gitignore", 806 | "handlebars", 807 | "lazy_static", 808 | "log", 809 | "memchr", 810 | "notify", 811 | "opener", 812 | "pulldown-cmark", 813 | "regex", 814 | "serde", 815 | "serde_json", 816 | "shlex", 817 | "tempfile", 818 | "tokio", 819 | "toml", 820 | "topological-sort", 821 | "warp", 822 | ] 823 | 824 | [[package]] 825 | name = "mdbook-checklist" 826 | version = "0.1.1" 827 | dependencies = [ 828 | "clap", 829 | "lazy_static", 830 | "mdbook", 831 | "regex", 832 | "serde_json", 833 | "toml", 834 | ] 835 | 836 | [[package]] 837 | name = "memchr" 838 | version = "2.5.0" 839 | source = "registry+https://github.com/rust-lang/crates.io-index" 840 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 841 | 842 | [[package]] 843 | name = "mime" 844 | version = "0.3.16" 845 | source = "registry+https://github.com/rust-lang/crates.io-index" 846 | checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" 847 | 848 | [[package]] 849 | name = "mime_guess" 850 | version = "2.0.4" 851 | source = "registry+https://github.com/rust-lang/crates.io-index" 852 | checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" 853 | dependencies = [ 854 | "mime", 855 | "unicase", 856 | ] 857 | 858 | [[package]] 859 | name = "mio" 860 | version = "0.6.23" 861 | source = "registry+https://github.com/rust-lang/crates.io-index" 862 | checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" 863 | dependencies = [ 864 | "cfg-if 0.1.10", 865 | "fuchsia-zircon", 866 | "fuchsia-zircon-sys", 867 | "iovec", 868 | "kernel32-sys", 869 | "libc", 870 | "log", 871 | "miow", 872 | "net2", 873 | "slab", 874 | "winapi 0.2.8", 875 | ] 876 | 877 | [[package]] 878 | name = "mio" 879 | version = "0.8.5" 880 | source = "registry+https://github.com/rust-lang/crates.io-index" 881 | checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" 882 | dependencies = [ 883 | "libc", 884 | "log", 885 | "wasi 0.11.0+wasi-snapshot-preview1", 886 | "windows-sys", 887 | ] 888 | 889 | [[package]] 890 | name = "mio-extras" 891 | version = "2.0.6" 892 | source = "registry+https://github.com/rust-lang/crates.io-index" 893 | checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" 894 | dependencies = [ 895 | "lazycell", 896 | "log", 897 | "mio 0.6.23", 898 | "slab", 899 | ] 900 | 901 | [[package]] 902 | name = "miow" 903 | version = "0.2.2" 904 | source = "registry+https://github.com/rust-lang/crates.io-index" 905 | checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" 906 | dependencies = [ 907 | "kernel32-sys", 908 | "net2", 909 | "winapi 0.2.8", 910 | "ws2_32-sys", 911 | ] 912 | 913 | [[package]] 914 | name = "net2" 915 | version = "0.2.38" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" 918 | dependencies = [ 919 | "cfg-if 0.1.10", 920 | "libc", 921 | "winapi 0.3.9", 922 | ] 923 | 924 | [[package]] 925 | name = "new_debug_unreachable" 926 | version = "1.0.4" 927 | source = "registry+https://github.com/rust-lang/crates.io-index" 928 | checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" 929 | 930 | [[package]] 931 | name = "notify" 932 | version = "4.0.17" 933 | source = "registry+https://github.com/rust-lang/crates.io-index" 934 | checksum = "ae03c8c853dba7bfd23e571ff0cff7bc9dceb40a4cd684cd1681824183f45257" 935 | dependencies = [ 936 | "bitflags", 937 | "filetime", 938 | "fsevent", 939 | "fsevent-sys", 940 | "inotify", 941 | "libc", 942 | "mio 0.6.23", 943 | "mio-extras", 944 | "walkdir", 945 | "winapi 0.3.9", 946 | ] 947 | 948 | [[package]] 949 | name = "num-integer" 950 | version = "0.1.45" 951 | source = "registry+https://github.com/rust-lang/crates.io-index" 952 | checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" 953 | dependencies = [ 954 | "autocfg", 955 | "num-traits", 956 | ] 957 | 958 | [[package]] 959 | name = "num-traits" 960 | version = "0.2.15" 961 | source = "registry+https://github.com/rust-lang/crates.io-index" 962 | checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" 963 | dependencies = [ 964 | "autocfg", 965 | ] 966 | 967 | [[package]] 968 | name = "num_cpus" 969 | version = "1.14.0" 970 | source = "registry+https://github.com/rust-lang/crates.io-index" 971 | checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" 972 | dependencies = [ 973 | "hermit-abi", 974 | "libc", 975 | ] 976 | 977 | [[package]] 978 | name = "once_cell" 979 | version = "1.16.0" 980 | source = "registry+https://github.com/rust-lang/crates.io-index" 981 | checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" 982 | 983 | [[package]] 984 | name = "opener" 985 | version = "0.5.0" 986 | source = "registry+https://github.com/rust-lang/crates.io-index" 987 | checksum = "4ea3ebcd72a54701f56345f16785a6d3ac2df7e986d273eb4395c0b01db17952" 988 | dependencies = [ 989 | "bstr", 990 | "winapi 0.3.9", 991 | ] 992 | 993 | [[package]] 994 | name = "os_str_bytes" 995 | version = "6.4.1" 996 | source = "registry+https://github.com/rust-lang/crates.io-index" 997 | checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" 998 | 999 | [[package]] 1000 | name = "parking_lot" 1001 | version = "0.12.1" 1002 | source = "registry+https://github.com/rust-lang/crates.io-index" 1003 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 1004 | dependencies = [ 1005 | "lock_api", 1006 | "parking_lot_core", 1007 | ] 1008 | 1009 | [[package]] 1010 | name = "parking_lot_core" 1011 | version = "0.9.4" 1012 | source = "registry+https://github.com/rust-lang/crates.io-index" 1013 | checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" 1014 | dependencies = [ 1015 | "cfg-if 1.0.0", 1016 | "libc", 1017 | "redox_syscall", 1018 | "smallvec", 1019 | "windows-sys", 1020 | ] 1021 | 1022 | [[package]] 1023 | name = "percent-encoding" 1024 | version = "2.2.0" 1025 | source = "registry+https://github.com/rust-lang/crates.io-index" 1026 | checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" 1027 | 1028 | [[package]] 1029 | name = "pest" 1030 | version = "2.5.0" 1031 | source = "registry+https://github.com/rust-lang/crates.io-index" 1032 | checksum = "5f400b0f7905bf702f9f3dc3df5a121b16c54e9e8012c082905fdf09a931861a" 1033 | dependencies = [ 1034 | "thiserror", 1035 | "ucd-trie", 1036 | ] 1037 | 1038 | [[package]] 1039 | name = "pest_derive" 1040 | version = "2.5.0" 1041 | source = "registry+https://github.com/rust-lang/crates.io-index" 1042 | checksum = "423c2ba011d6e27b02b482a3707c773d19aec65cc024637aec44e19652e66f63" 1043 | dependencies = [ 1044 | "pest", 1045 | "pest_generator", 1046 | ] 1047 | 1048 | [[package]] 1049 | name = "pest_generator" 1050 | version = "2.5.0" 1051 | source = "registry+https://github.com/rust-lang/crates.io-index" 1052 | checksum = "3e64e6c2c85031c02fdbd9e5c72845445ca0a724d419aa0bc068ac620c9935c1" 1053 | dependencies = [ 1054 | "pest", 1055 | "pest_meta", 1056 | "proc-macro2", 1057 | "quote", 1058 | "syn", 1059 | ] 1060 | 1061 | [[package]] 1062 | name = "pest_meta" 1063 | version = "2.5.0" 1064 | source = "registry+https://github.com/rust-lang/crates.io-index" 1065 | checksum = "57959b91f0a133f89a68be874a5c88ed689c19cd729ecdb5d762ebf16c64d662" 1066 | dependencies = [ 1067 | "once_cell", 1068 | "pest", 1069 | "sha1", 1070 | ] 1071 | 1072 | [[package]] 1073 | name = "phf" 1074 | version = "0.10.1" 1075 | source = "registry+https://github.com/rust-lang/crates.io-index" 1076 | checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" 1077 | dependencies = [ 1078 | "phf_shared", 1079 | ] 1080 | 1081 | [[package]] 1082 | name = "phf_codegen" 1083 | version = "0.10.0" 1084 | source = "registry+https://github.com/rust-lang/crates.io-index" 1085 | checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" 1086 | dependencies = [ 1087 | "phf_generator", 1088 | "phf_shared", 1089 | ] 1090 | 1091 | [[package]] 1092 | name = "phf_generator" 1093 | version = "0.10.0" 1094 | source = "registry+https://github.com/rust-lang/crates.io-index" 1095 | checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" 1096 | dependencies = [ 1097 | "phf_shared", 1098 | "rand", 1099 | ] 1100 | 1101 | [[package]] 1102 | name = "phf_shared" 1103 | version = "0.10.0" 1104 | source = "registry+https://github.com/rust-lang/crates.io-index" 1105 | checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" 1106 | dependencies = [ 1107 | "siphasher", 1108 | ] 1109 | 1110 | [[package]] 1111 | name = "pin-project" 1112 | version = "1.0.12" 1113 | source = "registry+https://github.com/rust-lang/crates.io-index" 1114 | checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" 1115 | dependencies = [ 1116 | "pin-project-internal", 1117 | ] 1118 | 1119 | [[package]] 1120 | name = "pin-project-internal" 1121 | version = "1.0.12" 1122 | source = "registry+https://github.com/rust-lang/crates.io-index" 1123 | checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" 1124 | dependencies = [ 1125 | "proc-macro2", 1126 | "quote", 1127 | "syn", 1128 | ] 1129 | 1130 | [[package]] 1131 | name = "pin-project-lite" 1132 | version = "0.2.9" 1133 | source = "registry+https://github.com/rust-lang/crates.io-index" 1134 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 1135 | 1136 | [[package]] 1137 | name = "pin-utils" 1138 | version = "0.1.0" 1139 | source = "registry+https://github.com/rust-lang/crates.io-index" 1140 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1141 | 1142 | [[package]] 1143 | name = "ppv-lite86" 1144 | version = "0.2.17" 1145 | source = "registry+https://github.com/rust-lang/crates.io-index" 1146 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 1147 | 1148 | [[package]] 1149 | name = "precomputed-hash" 1150 | version = "0.1.1" 1151 | source = "registry+https://github.com/rust-lang/crates.io-index" 1152 | checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" 1153 | 1154 | [[package]] 1155 | name = "proc-macro2" 1156 | version = "1.0.47" 1157 | source = "registry+https://github.com/rust-lang/crates.io-index" 1158 | checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" 1159 | dependencies = [ 1160 | "unicode-ident", 1161 | ] 1162 | 1163 | [[package]] 1164 | name = "pulldown-cmark" 1165 | version = "0.9.2" 1166 | source = "registry+https://github.com/rust-lang/crates.io-index" 1167 | checksum = "2d9cc634bc78768157b5cbfe988ffcd1dcba95cd2b2f03a88316c08c6d00ed63" 1168 | dependencies = [ 1169 | "bitflags", 1170 | "memchr", 1171 | "unicase", 1172 | ] 1173 | 1174 | [[package]] 1175 | name = "quote" 1176 | version = "1.0.21" 1177 | source = "registry+https://github.com/rust-lang/crates.io-index" 1178 | checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" 1179 | dependencies = [ 1180 | "proc-macro2", 1181 | ] 1182 | 1183 | [[package]] 1184 | name = "rand" 1185 | version = "0.8.5" 1186 | source = "registry+https://github.com/rust-lang/crates.io-index" 1187 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1188 | dependencies = [ 1189 | "libc", 1190 | "rand_chacha", 1191 | "rand_core", 1192 | ] 1193 | 1194 | [[package]] 1195 | name = "rand_chacha" 1196 | version = "0.3.1" 1197 | source = "registry+https://github.com/rust-lang/crates.io-index" 1198 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1199 | dependencies = [ 1200 | "ppv-lite86", 1201 | "rand_core", 1202 | ] 1203 | 1204 | [[package]] 1205 | name = "rand_core" 1206 | version = "0.6.4" 1207 | source = "registry+https://github.com/rust-lang/crates.io-index" 1208 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1209 | dependencies = [ 1210 | "getrandom", 1211 | ] 1212 | 1213 | [[package]] 1214 | name = "redox_syscall" 1215 | version = "0.2.16" 1216 | source = "registry+https://github.com/rust-lang/crates.io-index" 1217 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 1218 | dependencies = [ 1219 | "bitflags", 1220 | ] 1221 | 1222 | [[package]] 1223 | name = "regex" 1224 | version = "1.7.0" 1225 | source = "registry+https://github.com/rust-lang/crates.io-index" 1226 | checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" 1227 | dependencies = [ 1228 | "aho-corasick", 1229 | "memchr", 1230 | "regex-syntax", 1231 | ] 1232 | 1233 | [[package]] 1234 | name = "regex-automata" 1235 | version = "0.1.10" 1236 | source = "registry+https://github.com/rust-lang/crates.io-index" 1237 | checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 1238 | 1239 | [[package]] 1240 | name = "regex-syntax" 1241 | version = "0.6.28" 1242 | source = "registry+https://github.com/rust-lang/crates.io-index" 1243 | checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" 1244 | 1245 | [[package]] 1246 | name = "remove_dir_all" 1247 | version = "0.5.3" 1248 | source = "registry+https://github.com/rust-lang/crates.io-index" 1249 | checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" 1250 | dependencies = [ 1251 | "winapi 0.3.9", 1252 | ] 1253 | 1254 | [[package]] 1255 | name = "rustls-pemfile" 1256 | version = "0.2.1" 1257 | source = "registry+https://github.com/rust-lang/crates.io-index" 1258 | checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" 1259 | dependencies = [ 1260 | "base64", 1261 | ] 1262 | 1263 | [[package]] 1264 | name = "ryu" 1265 | version = "1.0.11" 1266 | source = "registry+https://github.com/rust-lang/crates.io-index" 1267 | checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" 1268 | 1269 | [[package]] 1270 | name = "same-file" 1271 | version = "1.0.6" 1272 | source = "registry+https://github.com/rust-lang/crates.io-index" 1273 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1274 | dependencies = [ 1275 | "winapi-util", 1276 | ] 1277 | 1278 | [[package]] 1279 | name = "scoped-tls" 1280 | version = "1.0.1" 1281 | source = "registry+https://github.com/rust-lang/crates.io-index" 1282 | checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 1283 | 1284 | [[package]] 1285 | name = "scopeguard" 1286 | version = "1.1.0" 1287 | source = "registry+https://github.com/rust-lang/crates.io-index" 1288 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 1289 | 1290 | [[package]] 1291 | name = "scratch" 1292 | version = "1.0.2" 1293 | source = "registry+https://github.com/rust-lang/crates.io-index" 1294 | checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" 1295 | 1296 | [[package]] 1297 | name = "serde" 1298 | version = "1.0.148" 1299 | source = "registry+https://github.com/rust-lang/crates.io-index" 1300 | checksum = "e53f64bb4ba0191d6d0676e1b141ca55047d83b74f5607e6d8eb88126c52c2dc" 1301 | dependencies = [ 1302 | "serde_derive", 1303 | ] 1304 | 1305 | [[package]] 1306 | name = "serde_derive" 1307 | version = "1.0.148" 1308 | source = "registry+https://github.com/rust-lang/crates.io-index" 1309 | checksum = "a55492425aa53521babf6137309e7d34c20bbfbbfcfe2c7f3a047fd1f6b92c0c" 1310 | dependencies = [ 1311 | "proc-macro2", 1312 | "quote", 1313 | "syn", 1314 | ] 1315 | 1316 | [[package]] 1317 | name = "serde_json" 1318 | version = "1.0.89" 1319 | source = "registry+https://github.com/rust-lang/crates.io-index" 1320 | checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db" 1321 | dependencies = [ 1322 | "itoa", 1323 | "ryu", 1324 | "serde", 1325 | ] 1326 | 1327 | [[package]] 1328 | name = "serde_urlencoded" 1329 | version = "0.7.1" 1330 | source = "registry+https://github.com/rust-lang/crates.io-index" 1331 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1332 | dependencies = [ 1333 | "form_urlencoded", 1334 | "itoa", 1335 | "ryu", 1336 | "serde", 1337 | ] 1338 | 1339 | [[package]] 1340 | name = "sha-1" 1341 | version = "0.10.1" 1342 | source = "registry+https://github.com/rust-lang/crates.io-index" 1343 | checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" 1344 | dependencies = [ 1345 | "cfg-if 1.0.0", 1346 | "cpufeatures", 1347 | "digest", 1348 | ] 1349 | 1350 | [[package]] 1351 | name = "sha1" 1352 | version = "0.10.5" 1353 | source = "registry+https://github.com/rust-lang/crates.io-index" 1354 | checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" 1355 | dependencies = [ 1356 | "cfg-if 1.0.0", 1357 | "cpufeatures", 1358 | "digest", 1359 | ] 1360 | 1361 | [[package]] 1362 | name = "shlex" 1363 | version = "1.1.0" 1364 | source = "registry+https://github.com/rust-lang/crates.io-index" 1365 | checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" 1366 | 1367 | [[package]] 1368 | name = "siphasher" 1369 | version = "0.3.10" 1370 | source = "registry+https://github.com/rust-lang/crates.io-index" 1371 | checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" 1372 | 1373 | [[package]] 1374 | name = "slab" 1375 | version = "0.4.7" 1376 | source = "registry+https://github.com/rust-lang/crates.io-index" 1377 | checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" 1378 | dependencies = [ 1379 | "autocfg", 1380 | ] 1381 | 1382 | [[package]] 1383 | name = "smallvec" 1384 | version = "1.10.0" 1385 | source = "registry+https://github.com/rust-lang/crates.io-index" 1386 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" 1387 | 1388 | [[package]] 1389 | name = "socket2" 1390 | version = "0.4.7" 1391 | source = "registry+https://github.com/rust-lang/crates.io-index" 1392 | checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" 1393 | dependencies = [ 1394 | "libc", 1395 | "winapi 0.3.9", 1396 | ] 1397 | 1398 | [[package]] 1399 | name = "string_cache" 1400 | version = "0.8.4" 1401 | source = "registry+https://github.com/rust-lang/crates.io-index" 1402 | checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08" 1403 | dependencies = [ 1404 | "new_debug_unreachable", 1405 | "once_cell", 1406 | "parking_lot", 1407 | "phf_shared", 1408 | "precomputed-hash", 1409 | "serde", 1410 | ] 1411 | 1412 | [[package]] 1413 | name = "string_cache_codegen" 1414 | version = "0.5.2" 1415 | source = "registry+https://github.com/rust-lang/crates.io-index" 1416 | checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" 1417 | dependencies = [ 1418 | "phf_generator", 1419 | "phf_shared", 1420 | "proc-macro2", 1421 | "quote", 1422 | ] 1423 | 1424 | [[package]] 1425 | name = "strsim" 1426 | version = "0.10.0" 1427 | source = "registry+https://github.com/rust-lang/crates.io-index" 1428 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 1429 | 1430 | [[package]] 1431 | name = "syn" 1432 | version = "1.0.104" 1433 | source = "registry+https://github.com/rust-lang/crates.io-index" 1434 | checksum = "4ae548ec36cf198c0ef7710d3c230987c2d6d7bd98ad6edc0274462724c585ce" 1435 | dependencies = [ 1436 | "proc-macro2", 1437 | "quote", 1438 | "unicode-ident", 1439 | ] 1440 | 1441 | [[package]] 1442 | name = "tempfile" 1443 | version = "3.3.0" 1444 | source = "registry+https://github.com/rust-lang/crates.io-index" 1445 | checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" 1446 | dependencies = [ 1447 | "cfg-if 1.0.0", 1448 | "fastrand", 1449 | "libc", 1450 | "redox_syscall", 1451 | "remove_dir_all", 1452 | "winapi 0.3.9", 1453 | ] 1454 | 1455 | [[package]] 1456 | name = "tendril" 1457 | version = "0.4.3" 1458 | source = "registry+https://github.com/rust-lang/crates.io-index" 1459 | checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" 1460 | dependencies = [ 1461 | "futf", 1462 | "mac", 1463 | "utf-8", 1464 | ] 1465 | 1466 | [[package]] 1467 | name = "termcolor" 1468 | version = "1.1.3" 1469 | source = "registry+https://github.com/rust-lang/crates.io-index" 1470 | checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" 1471 | dependencies = [ 1472 | "winapi-util", 1473 | ] 1474 | 1475 | [[package]] 1476 | name = "textwrap" 1477 | version = "0.16.0" 1478 | source = "registry+https://github.com/rust-lang/crates.io-index" 1479 | checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" 1480 | 1481 | [[package]] 1482 | name = "thiserror" 1483 | version = "1.0.37" 1484 | source = "registry+https://github.com/rust-lang/crates.io-index" 1485 | checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" 1486 | dependencies = [ 1487 | "thiserror-impl", 1488 | ] 1489 | 1490 | [[package]] 1491 | name = "thiserror-impl" 1492 | version = "1.0.37" 1493 | source = "registry+https://github.com/rust-lang/crates.io-index" 1494 | checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" 1495 | dependencies = [ 1496 | "proc-macro2", 1497 | "quote", 1498 | "syn", 1499 | ] 1500 | 1501 | [[package]] 1502 | name = "time" 1503 | version = "0.1.45" 1504 | source = "registry+https://github.com/rust-lang/crates.io-index" 1505 | checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" 1506 | dependencies = [ 1507 | "libc", 1508 | "wasi 0.10.0+wasi-snapshot-preview1", 1509 | "winapi 0.3.9", 1510 | ] 1511 | 1512 | [[package]] 1513 | name = "tinyvec" 1514 | version = "1.6.0" 1515 | source = "registry+https://github.com/rust-lang/crates.io-index" 1516 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 1517 | dependencies = [ 1518 | "tinyvec_macros", 1519 | ] 1520 | 1521 | [[package]] 1522 | name = "tinyvec_macros" 1523 | version = "0.1.0" 1524 | source = "registry+https://github.com/rust-lang/crates.io-index" 1525 | checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" 1526 | 1527 | [[package]] 1528 | name = "tokio" 1529 | version = "1.22.0" 1530 | source = "registry+https://github.com/rust-lang/crates.io-index" 1531 | checksum = "d76ce4a75fb488c605c54bf610f221cea8b0dafb53333c1a67e8ee199dcd2ae3" 1532 | dependencies = [ 1533 | "autocfg", 1534 | "bytes", 1535 | "libc", 1536 | "memchr", 1537 | "mio 0.8.5", 1538 | "num_cpus", 1539 | "pin-project-lite", 1540 | "socket2", 1541 | "tokio-macros", 1542 | "winapi 0.3.9", 1543 | ] 1544 | 1545 | [[package]] 1546 | name = "tokio-macros" 1547 | version = "1.8.0" 1548 | source = "registry+https://github.com/rust-lang/crates.io-index" 1549 | checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" 1550 | dependencies = [ 1551 | "proc-macro2", 1552 | "quote", 1553 | "syn", 1554 | ] 1555 | 1556 | [[package]] 1557 | name = "tokio-stream" 1558 | version = "0.1.11" 1559 | source = "registry+https://github.com/rust-lang/crates.io-index" 1560 | checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" 1561 | dependencies = [ 1562 | "futures-core", 1563 | "pin-project-lite", 1564 | "tokio", 1565 | ] 1566 | 1567 | [[package]] 1568 | name = "tokio-tungstenite" 1569 | version = "0.17.2" 1570 | source = "registry+https://github.com/rust-lang/crates.io-index" 1571 | checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" 1572 | dependencies = [ 1573 | "futures-util", 1574 | "log", 1575 | "tokio", 1576 | "tungstenite", 1577 | ] 1578 | 1579 | [[package]] 1580 | name = "tokio-util" 1581 | version = "0.7.4" 1582 | source = "registry+https://github.com/rust-lang/crates.io-index" 1583 | checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" 1584 | dependencies = [ 1585 | "bytes", 1586 | "futures-core", 1587 | "futures-sink", 1588 | "pin-project-lite", 1589 | "tokio", 1590 | "tracing", 1591 | ] 1592 | 1593 | [[package]] 1594 | name = "toml" 1595 | version = "0.5.9" 1596 | source = "registry+https://github.com/rust-lang/crates.io-index" 1597 | checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" 1598 | dependencies = [ 1599 | "serde", 1600 | ] 1601 | 1602 | [[package]] 1603 | name = "topological-sort" 1604 | version = "0.1.0" 1605 | source = "registry+https://github.com/rust-lang/crates.io-index" 1606 | checksum = "aa7c7f42dea4b1b99439786f5633aeb9c14c1b53f75e282803c2ec2ad545873c" 1607 | 1608 | [[package]] 1609 | name = "tower-service" 1610 | version = "0.3.2" 1611 | source = "registry+https://github.com/rust-lang/crates.io-index" 1612 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 1613 | 1614 | [[package]] 1615 | name = "tracing" 1616 | version = "0.1.37" 1617 | source = "registry+https://github.com/rust-lang/crates.io-index" 1618 | checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" 1619 | dependencies = [ 1620 | "cfg-if 1.0.0", 1621 | "log", 1622 | "pin-project-lite", 1623 | "tracing-core", 1624 | ] 1625 | 1626 | [[package]] 1627 | name = "tracing-core" 1628 | version = "0.1.30" 1629 | source = "registry+https://github.com/rust-lang/crates.io-index" 1630 | checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" 1631 | dependencies = [ 1632 | "once_cell", 1633 | ] 1634 | 1635 | [[package]] 1636 | name = "try-lock" 1637 | version = "0.2.3" 1638 | source = "registry+https://github.com/rust-lang/crates.io-index" 1639 | checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" 1640 | 1641 | [[package]] 1642 | name = "tungstenite" 1643 | version = "0.17.3" 1644 | source = "registry+https://github.com/rust-lang/crates.io-index" 1645 | checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" 1646 | dependencies = [ 1647 | "base64", 1648 | "byteorder", 1649 | "bytes", 1650 | "http", 1651 | "httparse", 1652 | "log", 1653 | "rand", 1654 | "sha-1", 1655 | "thiserror", 1656 | "url", 1657 | "utf-8", 1658 | ] 1659 | 1660 | [[package]] 1661 | name = "typenum" 1662 | version = "1.15.0" 1663 | source = "registry+https://github.com/rust-lang/crates.io-index" 1664 | checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" 1665 | 1666 | [[package]] 1667 | name = "ucd-trie" 1668 | version = "0.1.5" 1669 | source = "registry+https://github.com/rust-lang/crates.io-index" 1670 | checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" 1671 | 1672 | [[package]] 1673 | name = "unicase" 1674 | version = "2.6.0" 1675 | source = "registry+https://github.com/rust-lang/crates.io-index" 1676 | checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" 1677 | dependencies = [ 1678 | "version_check", 1679 | ] 1680 | 1681 | [[package]] 1682 | name = "unicode-bidi" 1683 | version = "0.3.8" 1684 | source = "registry+https://github.com/rust-lang/crates.io-index" 1685 | checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" 1686 | 1687 | [[package]] 1688 | name = "unicode-ident" 1689 | version = "1.0.5" 1690 | source = "registry+https://github.com/rust-lang/crates.io-index" 1691 | checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" 1692 | 1693 | [[package]] 1694 | name = "unicode-normalization" 1695 | version = "0.1.22" 1696 | source = "registry+https://github.com/rust-lang/crates.io-index" 1697 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 1698 | dependencies = [ 1699 | "tinyvec", 1700 | ] 1701 | 1702 | [[package]] 1703 | name = "unicode-width" 1704 | version = "0.1.10" 1705 | source = "registry+https://github.com/rust-lang/crates.io-index" 1706 | checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" 1707 | 1708 | [[package]] 1709 | name = "url" 1710 | version = "2.3.1" 1711 | source = "registry+https://github.com/rust-lang/crates.io-index" 1712 | checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" 1713 | dependencies = [ 1714 | "form_urlencoded", 1715 | "idna", 1716 | "percent-encoding", 1717 | ] 1718 | 1719 | [[package]] 1720 | name = "utf-8" 1721 | version = "0.7.6" 1722 | source = "registry+https://github.com/rust-lang/crates.io-index" 1723 | checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 1724 | 1725 | [[package]] 1726 | name = "version_check" 1727 | version = "0.9.4" 1728 | source = "registry+https://github.com/rust-lang/crates.io-index" 1729 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 1730 | 1731 | [[package]] 1732 | name = "walkdir" 1733 | version = "2.3.2" 1734 | source = "registry+https://github.com/rust-lang/crates.io-index" 1735 | checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" 1736 | dependencies = [ 1737 | "same-file", 1738 | "winapi 0.3.9", 1739 | "winapi-util", 1740 | ] 1741 | 1742 | [[package]] 1743 | name = "want" 1744 | version = "0.3.0" 1745 | source = "registry+https://github.com/rust-lang/crates.io-index" 1746 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 1747 | dependencies = [ 1748 | "log", 1749 | "try-lock", 1750 | ] 1751 | 1752 | [[package]] 1753 | name = "warp" 1754 | version = "0.3.3" 1755 | source = "registry+https://github.com/rust-lang/crates.io-index" 1756 | checksum = "ed7b8be92646fc3d18b06147664ebc5f48d222686cb11a8755e561a735aacc6d" 1757 | dependencies = [ 1758 | "bytes", 1759 | "futures-channel", 1760 | "futures-util", 1761 | "headers", 1762 | "http", 1763 | "hyper", 1764 | "log", 1765 | "mime", 1766 | "mime_guess", 1767 | "percent-encoding", 1768 | "pin-project", 1769 | "rustls-pemfile", 1770 | "scoped-tls", 1771 | "serde", 1772 | "serde_json", 1773 | "serde_urlencoded", 1774 | "tokio", 1775 | "tokio-stream", 1776 | "tokio-tungstenite", 1777 | "tokio-util", 1778 | "tower-service", 1779 | "tracing", 1780 | ] 1781 | 1782 | [[package]] 1783 | name = "wasi" 1784 | version = "0.10.0+wasi-snapshot-preview1" 1785 | source = "registry+https://github.com/rust-lang/crates.io-index" 1786 | checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" 1787 | 1788 | [[package]] 1789 | name = "wasi" 1790 | version = "0.11.0+wasi-snapshot-preview1" 1791 | source = "registry+https://github.com/rust-lang/crates.io-index" 1792 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1793 | 1794 | [[package]] 1795 | name = "wasm-bindgen" 1796 | version = "0.2.83" 1797 | source = "registry+https://github.com/rust-lang/crates.io-index" 1798 | checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" 1799 | dependencies = [ 1800 | "cfg-if 1.0.0", 1801 | "wasm-bindgen-macro", 1802 | ] 1803 | 1804 | [[package]] 1805 | name = "wasm-bindgen-backend" 1806 | version = "0.2.83" 1807 | source = "registry+https://github.com/rust-lang/crates.io-index" 1808 | checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" 1809 | dependencies = [ 1810 | "bumpalo", 1811 | "log", 1812 | "once_cell", 1813 | "proc-macro2", 1814 | "quote", 1815 | "syn", 1816 | "wasm-bindgen-shared", 1817 | ] 1818 | 1819 | [[package]] 1820 | name = "wasm-bindgen-macro" 1821 | version = "0.2.83" 1822 | source = "registry+https://github.com/rust-lang/crates.io-index" 1823 | checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" 1824 | dependencies = [ 1825 | "quote", 1826 | "wasm-bindgen-macro-support", 1827 | ] 1828 | 1829 | [[package]] 1830 | name = "wasm-bindgen-macro-support" 1831 | version = "0.2.83" 1832 | source = "registry+https://github.com/rust-lang/crates.io-index" 1833 | checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" 1834 | dependencies = [ 1835 | "proc-macro2", 1836 | "quote", 1837 | "syn", 1838 | "wasm-bindgen-backend", 1839 | "wasm-bindgen-shared", 1840 | ] 1841 | 1842 | [[package]] 1843 | name = "wasm-bindgen-shared" 1844 | version = "0.2.83" 1845 | source = "registry+https://github.com/rust-lang/crates.io-index" 1846 | checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" 1847 | 1848 | [[package]] 1849 | name = "winapi" 1850 | version = "0.2.8" 1851 | source = "registry+https://github.com/rust-lang/crates.io-index" 1852 | checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" 1853 | 1854 | [[package]] 1855 | name = "winapi" 1856 | version = "0.3.9" 1857 | source = "registry+https://github.com/rust-lang/crates.io-index" 1858 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 1859 | dependencies = [ 1860 | "winapi-i686-pc-windows-gnu", 1861 | "winapi-x86_64-pc-windows-gnu", 1862 | ] 1863 | 1864 | [[package]] 1865 | name = "winapi-build" 1866 | version = "0.1.1" 1867 | source = "registry+https://github.com/rust-lang/crates.io-index" 1868 | checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" 1869 | 1870 | [[package]] 1871 | name = "winapi-i686-pc-windows-gnu" 1872 | version = "0.4.0" 1873 | source = "registry+https://github.com/rust-lang/crates.io-index" 1874 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1875 | 1876 | [[package]] 1877 | name = "winapi-util" 1878 | version = "0.1.5" 1879 | source = "registry+https://github.com/rust-lang/crates.io-index" 1880 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" 1881 | dependencies = [ 1882 | "winapi 0.3.9", 1883 | ] 1884 | 1885 | [[package]] 1886 | name = "winapi-x86_64-pc-windows-gnu" 1887 | version = "0.4.0" 1888 | source = "registry+https://github.com/rust-lang/crates.io-index" 1889 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1890 | 1891 | [[package]] 1892 | name = "windows-sys" 1893 | version = "0.42.0" 1894 | source = "registry+https://github.com/rust-lang/crates.io-index" 1895 | checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" 1896 | dependencies = [ 1897 | "windows_aarch64_gnullvm", 1898 | "windows_aarch64_msvc", 1899 | "windows_i686_gnu", 1900 | "windows_i686_msvc", 1901 | "windows_x86_64_gnu", 1902 | "windows_x86_64_gnullvm", 1903 | "windows_x86_64_msvc", 1904 | ] 1905 | 1906 | [[package]] 1907 | name = "windows_aarch64_gnullvm" 1908 | version = "0.42.0" 1909 | source = "registry+https://github.com/rust-lang/crates.io-index" 1910 | checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" 1911 | 1912 | [[package]] 1913 | name = "windows_aarch64_msvc" 1914 | version = "0.42.0" 1915 | source = "registry+https://github.com/rust-lang/crates.io-index" 1916 | checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" 1917 | 1918 | [[package]] 1919 | name = "windows_i686_gnu" 1920 | version = "0.42.0" 1921 | source = "registry+https://github.com/rust-lang/crates.io-index" 1922 | checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" 1923 | 1924 | [[package]] 1925 | name = "windows_i686_msvc" 1926 | version = "0.42.0" 1927 | source = "registry+https://github.com/rust-lang/crates.io-index" 1928 | checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" 1929 | 1930 | [[package]] 1931 | name = "windows_x86_64_gnu" 1932 | version = "0.42.0" 1933 | source = "registry+https://github.com/rust-lang/crates.io-index" 1934 | checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" 1935 | 1936 | [[package]] 1937 | name = "windows_x86_64_gnullvm" 1938 | version = "0.42.0" 1939 | source = "registry+https://github.com/rust-lang/crates.io-index" 1940 | checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" 1941 | 1942 | [[package]] 1943 | name = "windows_x86_64_msvc" 1944 | version = "0.42.0" 1945 | source = "registry+https://github.com/rust-lang/crates.io-index" 1946 | checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" 1947 | 1948 | [[package]] 1949 | name = "ws2_32-sys" 1950 | version = "0.2.1" 1951 | source = "registry+https://github.com/rust-lang/crates.io-index" 1952 | checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" 1953 | dependencies = [ 1954 | "winapi 0.2.8", 1955 | "winapi-build", 1956 | ] 1957 | --------------------------------------------------------------------------------