mirror of
https://github.com/rust-lang-nursery/rust-cookbook
synced 2024-11-21 19:13:07 +00:00
[Upkeep] updated deps fixed build-breaks and sorted links
This commit is contained in:
parent
5a77148d32
commit
38d59c3e92
10 changed files with 128 additions and 130 deletions
12
Cargo.toml
12
Cargo.toml
|
@ -15,17 +15,17 @@ cc = "1.0.0"
|
|||
chrono = "0.4"
|
||||
clap = "2.26"
|
||||
crossbeam = "0.3"
|
||||
csv = "1.0.0-beta.4"
|
||||
csv = "1.0.0-beta.5"
|
||||
data-encoding = "2.0.0-rc.1"
|
||||
env_logger = "0.4"
|
||||
error-chain = "0.11"
|
||||
flate2 = "0.2"
|
||||
glob = "0.2"
|
||||
image = "0.16"
|
||||
image = "0.17"
|
||||
lazy_static = "0.2"
|
||||
log = "0.3"
|
||||
log4rs = "0.7"
|
||||
memmap = "0.5"
|
||||
memmap = "0.6"
|
||||
num = "0.1"
|
||||
num_cpus = "1.5"
|
||||
petgraph = "0.4"
|
||||
|
@ -34,9 +34,9 @@ rayon = "0.8"
|
|||
regex = "0.2"
|
||||
reqwest = "0.8"
|
||||
ring = "0.12.0"
|
||||
same-file = "0.1"
|
||||
same-file = "1.0"
|
||||
select = "0.4"
|
||||
semver = "0.8.0"
|
||||
semver = "0.9"
|
||||
serde = "1.0"
|
||||
serde_derive = "1.0"
|
||||
serde_json = "1.0"
|
||||
|
@ -45,7 +45,7 @@ tempdir = "0.3.5"
|
|||
threadpool = "1.6"
|
||||
toml = "0.4"
|
||||
url = "1.5"
|
||||
walkdir = "1.0.7"
|
||||
walkdir = "2.0"
|
||||
|
||||
[target.'cfg(target_os = "linux")'.dependencies]
|
||||
syslog = "3.3.0"
|
||||
|
|
24
src/app.md
24
src/app.md
|
@ -449,14 +449,14 @@ fn run() -> Result<()> {
|
|||
|
||||
[![walkdir-badge]][walkdir] [![cat-filesystem-badge]][cat-filesystem]
|
||||
|
||||
Uses [`WalkDirIterator::filter_entry`] to descend recursively into entries passing the `is_not_hidden` predicate thus skipping hidden files and directories whereas [`Iterator::filter`] would be applied to each [`WalkDir::DirEntry`] even if the parent is a hidden directory.
|
||||
Uses [`filter_entry`] to descend recursively into entries passing the `is_not_hidden` predicate thus skipping hidden files and directories whereas [`Iterator::filter`] would be applied to each [`WalkDir::DirEntry`] even if the parent is a hidden directory.
|
||||
|
||||
Root dir `"."` is yielded due to [`WalkDir::depth`] usage in `is_not_hidden` predicate.
|
||||
|
||||
```rust,no_run
|
||||
extern crate walkdir;
|
||||
|
||||
use walkdir::{DirEntry, WalkDir, WalkDirIterator};
|
||||
use walkdir::{DirEntry, WalkDir};
|
||||
|
||||
fn is_not_hidden(entry: &DirEntry) -> bool {
|
||||
entry
|
||||
|
@ -789,28 +789,28 @@ fn run() -> Result<()> {
|
|||
[`Default`]: https://doc.rust-lang.org/std/default/trait.Default.html
|
||||
[`Entry::unpack`]: https://docs.rs/tar/*/tar/struct.Entry.html#method.unpack
|
||||
[`File`]: https://doc.rust-lang.org/std/fs/struct.File.html
|
||||
[`filter_entry`]: https://docs.rs/walkdir/*/walkdir/struct.IntoIter.html#method.filter_entry
|
||||
[`follow_links`]: https://docs.rs/walkdir/*/walkdir/struct.WalkDir.html#method.follow_links
|
||||
[`glob_with`]: https://docs.rs/glob/*/glob/fn.glob_with.html
|
||||
[`GzDecoder`]: https://docs.rs/flate2/*/flate2/read/struct.GzDecoder.html
|
||||
[`GzEncoder`]: https://docs.rs/flate2/*/flate2/write/struct.GzEncoder.html
|
||||
[`is_prerelease`]: https://docs.rs/semver/*/semver/struct.Version.html#method.is_prerelease
|
||||
[`Iterator::filter`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.filter
|
||||
[`MatchOptions`]: https://docs.rs/glob/*/glob/struct.MatchOptions.html
|
||||
[`Path::strip_prefix`]: https://doc.rust-lang.org/std/path/struct.Path.html#method.strip_prefix
|
||||
[`same_file::is_same_file`]: https://docs.rs/same-file/*/same_file/fn.is_same_file.html#method.is_same_file
|
||||
[`same_file::Handle`]: https://docs.rs/same-file/*/same_file/struct.Handle.html
|
||||
[`same_file::is_same_file`]: https://docs.rs/same-file/*/same_file/fn.is_same_file.html#method.is_same_file
|
||||
[`semver::Version`]: https://docs.rs/semver/*/semver/struct.Version.html
|
||||
[`semver::VersionReq`]: https://docs.rs/semver/*/semver/struct.VersionReq.html
|
||||
[`Version::parse`]: https://docs.rs/semver/*/semver/struct.Version.html#method.parse
|
||||
[`WalkDir::DirEntry`]: https://docs.rs/walkdir/*/walkdir/struct.DirEntry.html
|
||||
[`WalkDir::depth`]: https://docs.rs/walkdir/*/walkdir/struct.DirEntry.html#method.depth
|
||||
[`WalkDir::max_depth`]: https://docs.rs/walkdir/*/walkdir/struct.WalkDir.html#method.max_depth
|
||||
[`WalkDir::min_depth`]: https://docs.rs/walkdir/*/walkdir/struct.WalkDir.html#method.min_depth
|
||||
[`WalkDirIterator::filter_entry`]: https://docs.rs/walkdir/*/walkdir/trait.WalkDirIterator.html#method.filter_entry
|
||||
[`follow_links`]: https://docs.rs/walkdir/*/walkdir/struct.WalkDir.html#method.follow_links
|
||||
[`glob_with`]: https://docs.rs/glob/*/glob/fn.glob_with.html
|
||||
[`is_prerelease`]: https://docs.rs/semver/*/semver/struct.Version.html#method.is_prerelease
|
||||
[`tar::Archive`]: https://docs.rs/tar/*/tar/struct.Archive.html
|
||||
[`tar::Builder`]: https://docs.rs/tar/*/tar/struct.Builder.html
|
||||
[`tar::Entries`]: https://docs.rs/tar/*/tar/struct.Entries.html
|
||||
[`tar::Entry`]: https://docs.rs/tar/*/tar/struct.Entry.html
|
||||
[`Version::parse`]: https://docs.rs/semver/*/semver/struct.Version.html#method.parse
|
||||
[`WalkDir::depth`]: https://docs.rs/walkdir/*/walkdir/struct.DirEntry.html#method.depth
|
||||
[`WalkDir::DirEntry`]: https://docs.rs/walkdir/*/walkdir/struct.DirEntry.html
|
||||
[`WalkDir::max_depth`]: https://docs.rs/walkdir/*/walkdir/struct.WalkDir.html#method.max_depth
|
||||
[`WalkDir::min_depth`]: https://docs.rs/walkdir/*/walkdir/struct.WalkDir.html#method.min_depth
|
||||
|
||||
<!-- Other Reference -->
|
||||
|
||||
|
|
|
@ -1086,7 +1086,7 @@ Creates a memory map of a file using [memmap] and simulates some non-sequential
|
|||
reads from the file. Using a memory map means you just index into a slice rather
|
||||
than dealing with [`seek`]ing around in a File.
|
||||
|
||||
The [`Mmap::as_slice`] function is only safe if we can guarantee that the file
|
||||
The [`Mmap::map`] function is only safe if we can guarantee that the file
|
||||
behind the memory map is not being modified at the same time by another process,
|
||||
as this would be a [race condition][race-condition-file].
|
||||
|
||||
|
@ -1095,7 +1095,7 @@ as this would be a [race condition][race-condition-file].
|
|||
# extern crate error_chain;
|
||||
extern crate memmap;
|
||||
|
||||
use memmap::{Mmap, Protection};
|
||||
use memmap::Mmap;
|
||||
# use std::fs::File;
|
||||
# use std::io::Write;
|
||||
#
|
||||
|
@ -1108,18 +1108,16 @@ use memmap::{Mmap, Protection};
|
|||
fn run() -> Result<()> {
|
||||
# write!(File::create("content.txt")?, "My hovercraft is full of eels!")?;
|
||||
#
|
||||
let map = Mmap::open_path("content.txt", Protection::Read)?;
|
||||
let file = File::open("content.txt")?;
|
||||
let map = unsafe { Mmap::map(&file)? };
|
||||
|
||||
let random_indexes = [0, 1, 2, 19, 22, 10, 11, 29];
|
||||
// This is only safe if no other code is modifying the file at the same time
|
||||
unsafe {
|
||||
let map = map.as_slice();
|
||||
assert_eq!(&map[3..13], b"hovercraft");
|
||||
// I'm using an iterator here to change indexes to bytes
|
||||
let random_bytes: Vec<u8> = random_indexes.iter()
|
||||
.map(|&idx| map[idx])
|
||||
.collect();
|
||||
assert_eq!(&random_bytes[..], b"My loaf!");
|
||||
}
|
||||
assert_eq!(&map[3..13], b"hovercraft");
|
||||
// I'm using an iterator here to change indexes to bytes
|
||||
let random_bytes: Vec<u8> = random_indexes.iter()
|
||||
.map(|&idx| map[idx])
|
||||
.collect();
|
||||
assert_eq!(&random_bytes[..], b"My loaf!");
|
||||
Ok(())
|
||||
}
|
||||
#
|
||||
|
@ -1301,29 +1299,29 @@ fn main() {
|
|||
[`BufReader`]: https://doc.rust-lang.org/std/io/struct.BufReader.html
|
||||
[`chain_err`]: https://docs.rs/error-chain/*/error_chain/index.html#chaining-errors
|
||||
[`Command`]: https://doc.rust-lang.org/std/process/struct.Command.html
|
||||
[`DateTime::format`]: https://docs.rs/chrono/*/chrono/struct.DateTime.html#method.format
|
||||
[`DateTime::to_rfc2822`]: https://docs.rs/chrono/*/chrono/struct.DateTime.html#method.to_rfc2822
|
||||
[`DateTime::to_rfc3339`]: https://docs.rs/chrono/*/chrono/struct.DateTime.html#method.to_rfc3339
|
||||
[`digest::Context`]: https://docs.rs/ring/*/ring/digest/struct.Context.html
|
||||
[`digest::Digest`]: https://docs.rs/ring/*/ring/digest/struct.Digest.html
|
||||
[`ring::hmac`]: https://docs.rs/ring/*/ring/hmac/
|
||||
[`hmac::Signature`]: https://docs.rs/ring/*/ring/hmac/struct.Signature.html
|
||||
[`Display`]: https://doc.rust-lang.org/std/fmt/trait.Display.html
|
||||
[`File::create`]: https://doc.rust-lang.org/std/fs/struct.File.html#method.create
|
||||
[`File::open`]: https://doc.rust-lang.org/std/fs/struct.File.html#method.open
|
||||
[`File::try_clone`]: https://doc.rust-lang.org/std/fs/struct.File.html#method.try_clone
|
||||
[`File`]: https://doc.rust-lang.org/std/fs/struct.File.html
|
||||
[`HashMap`]: https://doc.rust-lang.org/std/collections/struct.HashMap.html
|
||||
[`hmac::Signature`]: https://docs.rs/ring/*/ring/hmac/struct.Signature.html
|
||||
[`IndependentSample::ind_sample`]: https://doc.rust-lang.org/rand/rand/distributions/trait.IndependentSample.html#tymethod.ind_sample
|
||||
[`Lines`]: https://doc.rust-lang.org/std/io/struct.Lines.html
|
||||
[`Mmap::as_slice`]: https://docs.rs/memmap/*/memmap/struct.Mmap.html#method.as_slice
|
||||
[`Mmap::map`]: https://docs.rs/memmap/*/memmap/struct.Mmap.html#method.map
|
||||
[`Mutex`]: https://doc.rust-lang.org/std/sync/struct.Mutex.html
|
||||
[`MutexGuard`]: https://doc.rust-lang.org/std/sync/struct.MutexGuard.html
|
||||
[`Normal`]: https://doc.rust-lang.org/rand/rand/distributions/normal/struct.Normal.html
|
||||
[`num_cpus::get`]: https://docs.rs/num_cpus/*/num_cpus/fn.get.html
|
||||
[`time::Instant::now`]: https://doc.rust-lang.org/std/time/struct.Instant.html#method.now
|
||||
[`time::Duration`]: https://doc.rust-lang.org/std/time/struct.Duration.html
|
||||
[`time::Instant`]:https://doc.rust-lang.org/std/time/struct.Instant.html
|
||||
[`time::Instant::elapsed`]: https://doc.rust-lang.org/std/time/struct.Instant.html#method.elapsed
|
||||
[`Output`]: https://doc.rust-lang.org/std/process/struct.Output.html
|
||||
[`pbkdf2::derive`]: https://docs.rs/ring/*/ring/pbkdf2/fn.derive.html
|
||||
[`pbkdf2::verify`]: https://docs.rs/ring/*/ring/pbkdf2/fn.verify.html
|
||||
[`process::Stdio`]: https://doc.rust-lang.org/std/process/struct.Stdio.html
|
||||
[`rand::Rand`]: https://doc.rust-lang.org/rand/rand/trait.Rand.html
|
||||
[`rand::Rand`]: https://doc.rust-lang.org/rand/rand/trait.Rand.html
|
||||
[`rand::Rng`]: https://doc.rust-lang.org/rand/rand/trait.Rng.html
|
||||
|
@ -1335,18 +1333,18 @@ fn main() {
|
|||
[`regex::RegexSetBuilder`]: https://doc.rust-lang.org/regex/regex/struct.RegexSetBuilder.html
|
||||
[`Regex::replace_all`]: https://docs.rs/regex/*/regex/struct.Regex.html#method.replace_all
|
||||
[`Regex`]: https://doc.rust-lang.org/regex/regex/struct.Regex.html
|
||||
[`ring::hmac`]: https://docs.rs/ring/*/ring/hmac/
|
||||
[`ring::pbkdf2`]: https://docs.rs/ring/*/ring/pbkdf2/index.html
|
||||
[`Rng::gen_range`]: https://doc.rust-lang.org/rand/rand/trait.Rng.html#method.gen_range
|
||||
[`RwLock`]: https://doc.rust-lang.org/std/sync/struct.RwLock.html
|
||||
[`SecureRandom::fill`]: https://docs.rs/ring/*/ring/rand/trait.SecureRandom.html#tymethod.fill
|
||||
[`seek`]: https://doc.rust-lang.org/std/fs/struct.File.html#method.seek
|
||||
[`Stdio::piped`]: https://doc.rust-lang.org/std/process/struct.Stdio.html
|
||||
[`process::Stdio`]: https://doc.rust-lang.org/std/process/struct.Stdio.html
|
||||
[`File::try_clone`]: https://doc.rust-lang.org/std/fs/struct.File.html#method.try_clone
|
||||
[`time::Duration`]: https://doc.rust-lang.org/std/time/struct.Duration.html
|
||||
[`time::Instant::elapsed`]: https://doc.rust-lang.org/std/time/struct.Instant.html#method.elapsed
|
||||
[`time::Instant::now`]: https://doc.rust-lang.org/std/time/struct.Instant.html#method.now
|
||||
[`time::Instant`]:https://doc.rust-lang.org/std/time/struct.Instant.html
|
||||
[`Utc::now`]: https://docs.rs/chrono/*/chrono/offset/struct.Utc.html#method.now
|
||||
[`DateTime::to_rfc2822`]: https://docs.rs/chrono/*/chrono/struct.DateTime.html#method.to_rfc2822
|
||||
[`DateTime::to_rfc3339`]: https://docs.rs/chrono/*/chrono/struct.DateTime.html#method.to_rfc3339
|
||||
[`DateTime::format`]: https://docs.rs/chrono/*/chrono/struct.DateTime.html#method.format
|
||||
[rand-distributions]: https://doc.rust-lang.org/rand/rand/distributions/index.html
|
||||
[replacement string syntax]: https://docs.rs/regex/*/regex/struct.Regex.html#replacement-string-syntax
|
||||
|
||||
|
|
|
@ -242,13 +242,13 @@ fn main(){
|
|||
|
||||
<!-- Other Reference -->
|
||||
|
||||
[build-script-docs]: http://doc.crates.io/build-script.html
|
||||
[playground]: https://play.rust-lang.org
|
||||
[cc-build]: https://docs.rs/cc/*/cc/struct.Build.html
|
||||
[`cc::Build::define`]: https://docs.rs/cc/*/cc/struct.Build.html#method.define
|
||||
[cc-build-include]: https://docs.rs/cc/*/cc/struct.Build.html#method.include
|
||||
[cc-build-flag]: https://docs.rs/cc/*/cc/struct.Build.html#method.flag
|
||||
[`Option`]: https://doc.rust-lang.org/std/option/enum.Option.html
|
||||
[build-script-docs]: http://doc.crates.io/build-script.html
|
||||
[cargo-env]: http://doc.crates.io/environment-variables.html#environment-variables-cargo-sets-for-crates
|
||||
[cc-build-compile]: https://docs.rs/cc/*/cc/struct.Build.html#method.compile
|
||||
[cc-build-cpp]: https://docs.rs/cc/*/cc/struct.Build.html#method.cpp
|
||||
[`Option`]: https://doc.rust-lang.org/std/option/enum.Option.html
|
||||
[cargo-env]: http://doc.crates.io/environment-variables.html#environment-variables-cargo-sets-for-crates
|
||||
[cc-build-flag]: https://docs.rs/cc/*/cc/struct.Build.html#method.flag
|
||||
[cc-build-include]: https://docs.rs/cc/*/cc/struct.Build.html#method.include
|
||||
[cc-build]: https://docs.rs/cc/*/cc/struct.Build.html
|
||||
[playground]: https://play.rust-lang.org
|
||||
|
|
|
@ -525,37 +525,37 @@ fn run() -> Result<()> {
|
|||
|
||||
<!-- API Reference -->
|
||||
|
||||
[`crossbeam::scope`]: https://docs.rs/crossbeam/*/crossbeam/fn.scope.html
|
||||
[`DynamicImage::resize`]: https://docs.rs/image/*/image/enum.DynamicImage.html#method.resize
|
||||
[`glob::glob_with`]: https://docs.rs/glob/*/glob/fn.glob_with.html
|
||||
[`ImageBuffer::new`]: https://docs.rs/image/*/image/struct.ImageBuffer.html#method.new
|
||||
[`ImageBuffer::put_pixel`]: https://docs.rs/image/*/image/struct.ImageBuffer.html#method.put_pixel
|
||||
[`ImageBuffer::save`]: https://docs.rs/image/*/image/struct.ImageBuffer.html#method.save
|
||||
[`Receiver::recv`]: https://doc.rust-lang.org/std/sync/mpsc/struct.Receiver.html#method.recv
|
||||
[`Rgb::from_channels`]: https://docs.rs/image/*/image/struct.Rgb.html#method.from_channels
|
||||
[`Scope::spawn`]: https://docs.rs/crossbeam/0.*/crossbeam/struct.Scope.html#method.spawn
|
||||
[`stable sorting`]: https://docs.rs/rayon/*/rayon/slice/trait.ParallelSliceMut.html#method.par_sort
|
||||
[`ThreadPool::execute`]: https://docs.rs/threadpool/*/threadpool/struct.ThreadPool.html#method.execute
|
||||
[`ThreadPool`]: https://docs.rs/threadpool/*/threadpool/struct.ThreadPool.html
|
||||
[`crossbeam::scope`]: https://docs.rs/crossbeam/0.*/crossbeam/fn.scope.html
|
||||
[`Iterator`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html
|
||||
[`mpsc::channel`]: https://doc.rust-lang.org/std/sync/mpsc/fn.channel.html
|
||||
[`multiple options`]: https://docs.rs/rayon/*/rayon/slice/trait.ParallelSliceMut.html
|
||||
[`num_cpus::get`]: https://docs.rs/num_cpus/*/num_cpus/fn.get.html
|
||||
[`par_iter`]: https://docs.rs/rayon/*/rayon/iter/trait.IntoParallelRefIterator.html#tymethod.par_iter
|
||||
[`par_iter_mut`]: https://docs.rs/rayon/*/rayon/iter/trait.IntoParallelRefMutIterator.html#tymethod.par_iter_mut
|
||||
[`par_iter`]: https://docs.rs/rayon/*/rayon/iter/trait.IntoParallelRefIterator.html#tymethod.par_iter
|
||||
[`par_sort_unstable`]: https://docs.rs/rayon/*/rayon/slice/trait.ParallelSliceMut.html#method.par_sort_unstable
|
||||
[`ParallelIterator`]: https://docs.rs/rayon/*/rayon/iter/trait.ParallelIterator.html
|
||||
[`rayon::all`]: https://docs.rs/rayon/*/rayon/iter/trait.ParallelIterator.html#method.all
|
||||
[`rayon::any`]: https://docs.rs/rayon/*/rayon/iter/trait.ParallelIterator.html#method.any
|
||||
[`rayon::filter`]: https://docs.rs/rayon/*/rayon/iter/trait.ParallelIterator.html#method.filter
|
||||
[`rayon::find_any`]: https://docs.rs/rayon/*/rayon/iter/trait.ParallelIterator.html#method.find_any
|
||||
[`rayon::map`]: https://docs.rs/rayon/*/rayon/iter/trait.ParallelIterator.html#method.map
|
||||
[`rayon::reduce`]: https://docs.rs/rayon/*/rayon/iter/trait.ParallelIterator.html#method.reduce
|
||||
[`rayon::sum`]: https://docs.rs/rayon/*/rayon/iter/trait.ParallelIterator.html#method.sum
|
||||
[`std::find`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.find
|
||||
[`Walkdir::new`]: https://docs.rs/walkdir/1.0.7/walkdir/struct.WalkDir.html#method.new
|
||||
[`ParallelIterator`]: https://docs.rs/rayon/*/rayon/iter/trait.ParallelIterator.html
|
||||
[`Iterator`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html
|
||||
[`rayon::any`]: https://docs.rs/rayon/*/rayon/iter/trait.ParallelIterator.html#method.any
|
||||
[`rayon::all`]: https://docs.rs/rayon/*/rayon/iter/trait.ParallelIterator.html#method.all
|
||||
[`std::any`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.any
|
||||
[`Receiver::recv`]: https://doc.rust-lang.org/std/sync/mpsc/struct.Receiver.html#method.recv
|
||||
[`Rgb::from_channels`]: https://docs.rs/image/*/image/struct.Rgb.html#method.from_channels
|
||||
[`Scope::spawn`]: https://docs.rs/crossbeam/*/crossbeam/struct.Scope.html#method.spawn
|
||||
[`stable sorting`]: https://docs.rs/rayon/*/rayon/slice/trait.ParallelSliceMut.html#method.par_sort
|
||||
[`std::all`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.all
|
||||
[`std::any`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.any
|
||||
[`std::find`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.find
|
||||
[`ThreadPool::execute`]: https://docs.rs/threadpool/*/threadpool/struct.ThreadPool.html#method.execute
|
||||
[`ThreadPool`]: https://docs.rs/threadpool/*/threadpool/struct.ThreadPool.html
|
||||
[`Walkdir::new`]: https://docs.rs/walkdir/*/walkdir/struct.WalkDir.html#method.new
|
||||
|
||||
<!-- Other Reference -->
|
||||
|
||||
|
|
|
@ -698,11 +698,11 @@ fn run() -> Result<()> {
|
|||
[`csv::StringRecord`]: https://docs.rs/csv/*/csv/struct.StringRecord.html
|
||||
[`csv::Writer`]: https://docs.rs/csv/*/csv/struct.Writer.html
|
||||
[`flush`]: https://docs.rs/csv/*/csv/struct.Writer.html#method.flush
|
||||
[`form_urlencoded::byte_serialize`]: https://docs.rs/url/1.4.0/url/form_urlencoded/fn.byte_serialize.html
|
||||
[`form_urlencoded::byte_serialize`]: https://docs.rs/url/*/url/form_urlencoded/fn.byte_serialize.html
|
||||
[`form_urlencoded::parse`]: https://docs.rs/url/*/url/form_urlencoded/fn.parse.html
|
||||
[`percent_decode`]: https://docs.rs/url/1.*/url/percent_encoding/fn.percent_decode.html
|
||||
[`percent_decode`]: https://docs.rs/url/*/url/percent_encoding/fn.percent_decode.html
|
||||
[`serialize`]: https://docs.rs/csv/*/csv/struct.Writer.html#method.serialize
|
||||
[`utf8_percent_encode`]: https://docs.rs/url/1.*/url/percent_encoding/fn.utf8_percent_encode.html
|
||||
[`utf8_percent_encode`]: https://docs.rs/url/*/url/percent_encoding/fn.utf8_percent_encode.html
|
||||
[`write_record`]: https://docs.rs/csv/*/csv/struct.Writer.html#method.write_record
|
||||
|
||||
<!-- Other Reference -->
|
||||
|
|
48
src/intro.md
48
src/intro.md
|
@ -152,34 +152,34 @@ community. It needs and welcomes help. For details see
|
|||
[ex-base64]: encoding.html#ex-base64
|
||||
[ex-bitflags]: basics.html#ex-bitflags
|
||||
[ex-byteorder-le]: basics.html#ex-byteorder-le
|
||||
[ex-cc-static-bundled]: build_tools.html#ex-cc-static-bundled
|
||||
[ex-cc-static-bundled-cpp]: build_tools.html#ex-cc-static-bundled-cpp
|
||||
[ex-cc-custom-defines]: build_tools.html#ex-cc-custom-defines
|
||||
[ex-cc-static-bundled-cpp]: build_tools.html#ex-cc-static-bundled-cpp
|
||||
[ex-cc-static-bundled]: build_tools.html#ex-cc-static-bundled
|
||||
[ex-check-broken-links]: net.html#ex-check-broken-links
|
||||
[ex-check-cpu-cores]: basics.html#ex-check-cpu-cores
|
||||
[ex-clap-basic]: app.html#ex-clap-basic
|
||||
[ex-crossbeam-spawn]: concurrency.html#ex-crossbeam-spawn
|
||||
[ex-csv-serde]: encoding.html#ex-csv-serde
|
||||
[ex-csv-read]: encoding.html#ex-csv-read
|
||||
[ex-csv-delimiter]: encoding.html#ex-csv-delimiter
|
||||
[ex-format-datetime]: basics.html#ex-format-datetime
|
||||
[ex-threadpool-fractal]: concurrency.html#ex-threadpool-fractal
|
||||
[ex-threadpool-walk]: concurrency.html#ex-threadpool-walk
|
||||
[ex-csv-filter]: encoding.html#ex-csv-filter
|
||||
[ex-csv-read]: encoding.html#ex-csv-read
|
||||
[ex-csv-serde]: encoding.html#ex-csv-serde
|
||||
[ex-dedup-filenames]: app.html#ex-dedup-filenames
|
||||
[ex-error-chain-backtrace]: basics.html#ex-error-chain-backtrace
|
||||
[ex-measure-elapsed-time]: basics.html#ex-measure-elapsed-time
|
||||
[ex-extract-links-webpage]: net.html#ex-extract-links-webpage
|
||||
[ex-extract-hashtags]: basics.html#ex-extract-hashtags
|
||||
[ex-extract-links-webpage]: net.html#ex-extract-links-webpage
|
||||
[ex-extract-mediawiki-links]: net.html#ex-extract-mediawiki-links
|
||||
[ex-file-post]: net.html#ex-file-post
|
||||
[ex-file-predicate]: app.html#ex-file-predicate
|
||||
[ex-file-skip-dot]: app.html#ex-file-skip-dot
|
||||
[ex-file-sizes]: app.html#ex-file-sizes
|
||||
[ex-file-skip-dot]: app.html#ex-file-skip-dot
|
||||
[ex-find-file-loops]: app.html#ex-find-file-loops
|
||||
[ex-global-mut-state]: basics.html#ex-global-mut-state
|
||||
[ex-format-datetime]: basics.html#ex-format-datetime
|
||||
[ex-glob-recursive]: app.html#ex-glob-recursive
|
||||
[ex-glob-with]: app.html#ex-glob-with
|
||||
[ex-global-mut-state]: basics.html#ex-global-mut-state
|
||||
[ex-hex-encode-decode]: encoding.html#ex-hex-encode-decode
|
||||
[ex-hmac]: basics.html#ex-hmac
|
||||
[ex-invalid-csv]: encoding.html#ex-invalid-csv
|
||||
[ex-json-value]: encoding.html#ex-json-value
|
||||
[ex-lazy-constant]: basics.html#ex-lazy-constant
|
||||
[ex-log-custom-logger]: logging.html#ex-log-custom-logger
|
||||
|
@ -188,46 +188,49 @@ community. It needs and welcomes help. For details see
|
|||
[ex-log-env-variable]: logging.html#ex-log-env-variable
|
||||
[ex-log-error]: logging.html#ex-log-error
|
||||
[ex-log-mod]: logging.html#ex-log-mod
|
||||
[ex-log-stdout]: logging.html#ex-log-stdout
|
||||
[ex-log-syslog]: logging.html#ex-log-syslog
|
||||
[ex-log-timestamp]: logging.html#ex-log-timestamp
|
||||
[ex-log-stdout]: logging.html#ex-log-stdout
|
||||
[ex-invalid-csv]: encoding.html#ex-invalid-csv
|
||||
[ex-measure-elapsed-time]: basics.html#ex-measure-elapsed-time
|
||||
[ex-paginated-api]: net.html#ex-paginated-api
|
||||
[ex-parse-subprocess-output]: basics.html#ex-parse-subprocess-output
|
||||
[ex-parse-subprocess-input]: basics.html#ex-parse-subprocess-input
|
||||
[ex-parse-subprocess-output]: basics.html#ex-parse-subprocess-output
|
||||
[ex-pbkdf2]: basics.html#ex-pbkdf2
|
||||
[ex-run-piped-external-commands]: basics.html#ex-run-piped-external-commands
|
||||
[ex-redirect-stdout-stderr-same-file]: basics.html#ex-redirect-stdout-stderr-same-file
|
||||
[ex-verify-extract-email]: basics.html#ex-verify-extract-email
|
||||
[ex-percent-encode]: encoding.html#ex-percent-encode
|
||||
[ex-phone]: basics.html#ex-phone
|
||||
[ex-progress-with-range]: net.html#ex-progress-with-range
|
||||
[ex-rand-custom]: basics.html#ex-rand-custom
|
||||
[ex-rand-dist]: basics.html#ex-rand-dist
|
||||
[ex-rand]: basics.html#ex-rand
|
||||
[ex-rand-range]: basics.html#ex-rand-range
|
||||
[ex-rand]: basics.html#ex-rand
|
||||
[ex-random-file-access]: basics.html#ex-random-file-access
|
||||
[ex-random-port-tcp]: net.html#ex-random-port-tcp
|
||||
[ex-rayon-iter-mut]: concurrency.html#ex-rayon-iter-mut
|
||||
[ex-rayon-any-all]: concurrency.html#ex-rayon-any-all
|
||||
[ex-rayon-iter-mut]: concurrency.html#ex-rayon-iter-mut
|
||||
[ex-rayon-map-reduce]: concurrency.html#ex-rayon-map-reduce
|
||||
[ex-rayon-parallel-search]: concurrency.html#ex-rayon-parallel-search
|
||||
[ex-rayon-parallel-sort]: concurrency.html#ex-rayon-parallel-sort
|
||||
[ex-rayon-thumbnails]: concurrency.html#ex-rayon-thumbnails
|
||||
[ex-redirect-stdout-stderr-same-file]: basics.html#ex-redirect-stdout-stderr-same-file
|
||||
[ex-regex-filter-log]: basics.html#ex-regex-filter-log
|
||||
[ex-regex-replace-named]: basics.html#ex-regex-replace-named
|
||||
[ex-rest-custom-params]: net.html#ex-rest-custom-params
|
||||
[ex-rest-get]: net.html#ex-rest-get
|
||||
[ex-rest-head]: net.html#ex-rest-head
|
||||
[ex-rest-post]: net.html#ex-rest-post
|
||||
[ex-run-piped-external-commands]: basics.html#ex-run-piped-external-commands
|
||||
[ex-semver-command]: app.html#ex-semver-command
|
||||
[ex-semver-complex]: app.html#ex-semver-complex
|
||||
[ex-semver-increment]: app.html#ex-semver-increment
|
||||
[ex-semver-prerelease]: app.html#ex-semver-prerelease
|
||||
[ex-serialize-csv]: encoding.html#ex-serialize-csv
|
||||
[ex-sha-digest]: basics.html#ex-sha-digest
|
||||
[ex-hmac]: basics.html#ex-hmac
|
||||
[ex-std-read-lines]: basics.html#ex-std-read-lines
|
||||
[ex-tar-compress]: app.html#ex-tar-compress
|
||||
[ex-tar-decompress]: app.html#ex-tar-decompress
|
||||
[ex-tar-strip-prefix]: app.html#ex-tar-strip-prefix
|
||||
[ex-threadpool-fractal]: concurrency.html#ex-threadpool-fractal
|
||||
[ex-threadpool-walk]: concurrency.html#ex-threadpool-walk
|
||||
[ex-toml-config]: encoding.html#ex-toml-config
|
||||
[ex-url-base]: net.html#ex-url-base
|
||||
[ex-url-basic]: net.html#ex-url-basic
|
||||
|
@ -237,7 +240,4 @@ community. It needs and welcomes help. For details see
|
|||
[ex-url-parse]: net.html#ex-url-parse
|
||||
[ex-url-rm-frag]: net.html#ex-url-rm-frag
|
||||
[ex-urlencoded]: encoding.html#ex-urlencoded
|
||||
[ex-progress-with-range]: net.html#ex-progress-with-range
|
||||
[ex-random-file-access]: basics.html#ex-random-file-access
|
||||
[ex-regex-replace-named]: basics.html#ex-regex-replace-named
|
||||
[ex-csv-filter]: encoding.html#ex-csv-filter
|
||||
[ex-verify-extract-email]: basics.html#ex-verify-extract-email
|
||||
|
|
|
@ -11,10 +11,10 @@ Keep lines sorted.
|
|||
[cat-command-line]: https://crates.io/categories/command-line-interface
|
||||
[cat-compression-badge]: https://badge-cache.kominick.com/badge/compression--x.svg?style=social
|
||||
[cat-compression]: https://crates.io/categories/compression
|
||||
[cat-config-badge]: https://badge-cache.kominick.com/badge/config--x.svg?style=social
|
||||
[cat-config]: https://crates.io/categories/config
|
||||
[cat-concurrency-badge]: https://badge-cache.kominick.com/badge/concurrency--x.svg?style=social
|
||||
[cat-concurrency]: https://crates.io/categories/concurrency
|
||||
[cat-config-badge]: https://badge-cache.kominick.com/badge/config--x.svg?style=social
|
||||
[cat-config]: https://crates.io/categories/config
|
||||
[cat-cryptography-badge]: https://badge-cache.kominick.com/badge/cryptography--x.svg?style=social
|
||||
[cat-cryptography]: https://crates.io/categories/cryptography
|
||||
[cat-date-and-time-badge]: https://badge-cache.kominick.com/badge/date_and_time--x.svg?style=social
|
||||
|
@ -39,12 +39,12 @@ Keep lines sorted.
|
|||
[cat-rendering]: https://crates.io/categories/rendering
|
||||
[cat-rust-patterns-badge]: https://badge-cache.kominick.com/badge/rust_patterns--x.svg?style=social
|
||||
[cat-rust-patterns]: https://crates.io/categories/rust-patterns
|
||||
[cat-time-badge]: https://badge-cache.kominick.com/badge/time--x.svg?style=social
|
||||
[cat-time]: https://crates.io/categories/date-and-time
|
||||
[cat-science-badge]: https://badge-cache.kominick.com/badge/science--x.svg?style=social
|
||||
[cat-science]: https://crates.io/categories/science
|
||||
[cat-text-processing-badge]: https://badge-cache.kominick.com/badge/text_processing--x.svg?style=social
|
||||
[cat-text-processing]: https://crates.io/categories/text-processing
|
||||
[cat-time-badge]: https://badge-cache.kominick.com/badge/time--x.svg?style=social
|
||||
[cat-time]: https://crates.io/categories/date-and-time
|
||||
|
||||
<!-- Crates -->
|
||||
|
||||
|
|
|
@ -485,7 +485,15 @@ fn run() -> Result<()> {
|
|||
|
||||
[`DateTime::format`]: https://docs.rs/chrono/*/chrono/datetime/struct.DateTime.html#method.format
|
||||
[`DateTime`]: https://docs.rs/chrono/*/chrono/datetime/struct.DateTime.html
|
||||
[`env_logger::init`]: https://doc.rust-lang.org/log/env_logger/fn.init.html
|
||||
[`Local::now`]: https://docs.rs/chrono/*/chrono/offset/local/struct.Local.html#method.now
|
||||
[`log4rs::append::file::FileAppender`]: https://docs.rs/log4rs/*/log4rs/append/file/struct.FileAppender.html
|
||||
[`log4rs::config::Config`]: https://docs.rs/log4rs/*/log4rs/config/struct.Config.html
|
||||
[`log4rs::encode::pattern`]: https://docs.rs/log4rs/*/log4rs/encode/pattern/index.html
|
||||
[`log::Log`]: https://doc.rust-lang.org/log/log/trait.Log.html
|
||||
[`log::LogLevel`]: https://doc.rust-lang.org/log/log/enum.LogLevel.html
|
||||
[`log::LogLevelFilter`]: https://doc.rust-lang.org/log/log/enum.LogLevelFilter.html
|
||||
[`log::set_logger`]: https://doc.rust-lang.org/log/log/fn.set_logger.html
|
||||
[`LogBuilder::format`]: https://doc.rust-lang.org/log/env_logger/struct.LogBuilder.html#method.format
|
||||
[`LogBuilder::init`]: https://doc.rust-lang.org/log/env_logger/struct.LogBuilder.html#method.init
|
||||
[`LogBuilder::parse`]: https://doc.rust-lang.org/log/env_logger/struct.LogBuilder.html#method.parse
|
||||
|
@ -494,18 +502,10 @@ fn run() -> Result<()> {
|
|||
[`LogRecord::args`]: https://doc.rust-lang.org/log/log/struct.LogRecord.html#method.args
|
||||
[`LogRecord::level`]: https://doc.rust-lang.org/log/log/struct.LogRecord.html#method.level
|
||||
[`RUST_LOG`]: https://doc.rust-lang.org/log/env_logger/#enabling-logging
|
||||
[`Target::Stdout`]: https://doc.rust-lang.org/log/env_logger/enum.Target.html
|
||||
[`env_logger::init`]: https://doc.rust-lang.org/log/env_logger/fn.init.html
|
||||
[`log4rs::append::file::FileAppender`]: https://docs.rs/log4rs/*/log4rs/append/file/struct.FileAppender.html
|
||||
[`log4rs::config::Config`]: https://docs.rs/log4rs/*/log4rs/config/struct.Config.html
|
||||
[`log4rs::encode::pattern`]: https://docs.rs/log4rs/*/log4rs/encode/pattern/index.html
|
||||
[`log::LogLevelFilter`]: https://doc.rust-lang.org/log/log/enum.LogLevelFilter.html
|
||||
[`log::LogLevel`]: https://doc.rust-lang.org/log/log/enum.LogLevel.html
|
||||
[`log::Log`]: https://doc.rust-lang.org/log/log/trait.Log.html
|
||||
[`log::set_logger`]: https://doc.rust-lang.org/log/log/fn.set_logger.html
|
||||
[`strftime::specifiers`]: https://docs.rs/chrono/*/chrono/format/strftime/index.html#specifiers
|
||||
[`syslog::Facility`]: https://docs.rs/syslog/*/syslog/enum.Facility.html
|
||||
[`syslog::init`]: https://docs.rs/syslog/*/syslog/fn.init.html
|
||||
[`Target::Stdout`]: https://doc.rust-lang.org/log/env_logger/enum.Target.html
|
||||
|
||||
<!-- Other Reference -->
|
||||
|
||||
|
|
50
src/net.md
50
src/net.md
|
@ -1124,6 +1124,7 @@ fn run() -> Result<()> {
|
|||
|
||||
<!-- API Reference -->
|
||||
|
||||
[`attr`]: https://docs.rs/select/*/select/node/struct.Node.html#method.attr
|
||||
[`Client::delete`]: https://docs.rs/reqwest/*/reqwest/struct.Client.html#method.delete
|
||||
[`Client::head`]: https://docs.rs/reqwest/*/reqwest/struct.Client.html#method.head
|
||||
[`Client::post`]: https://docs.rs/reqwest/*/reqwest/struct.Client.html#method.post
|
||||
|
@ -1131,19 +1132,39 @@ fn run() -> Result<()> {
|
|||
[`Cow`]: https://doc.rust-lang.org/std/borrow/enum.Cow.html
|
||||
[`Document::from_read`]: https://docs.rs/select/*/select/document/struct.Document.html#method.from_read
|
||||
[`File`]: https://doc.rust-lang.org/std/fs/struct.File.html
|
||||
[`filter_map`]: https://doc.rust-lang.org/core/iter/trait.Iterator.html#method.filter_map
|
||||
[`find`]: https://docs.rs/select/*/select/document/struct.Document.html#method.find
|
||||
[`header::Authorization`]: https://docs.rs/hyper/*/hyper/header/struct.Authorization.html
|
||||
[`header::UserAgent`]: https://docs.rs/hyper/*/hyper/header/struct.UserAgent.html
|
||||
[`hyper::header!`]: https://docs.rs/hyper/*/hyper/macro.header.html
|
||||
[`io::copy`]: https://doc.rust-lang.org/std/io/fn.copy.html
|
||||
[`Ipv4Addr`]: https://doc.rust-lang.org/std/net/struct.Ipv4Addr.html
|
||||
[`join`]: https://docs.rs/url/*/url/struct.Url.html#method.join
|
||||
[`Name`]: https://docs.rs/select/*/select/predicate/struct.Name.html
|
||||
[`origin`]: https://docs.rs/url/*/url/struct.Url.html#method.origin
|
||||
[`parse`]: https://docs.rs/url/*/url/struct.Url.html#method.parse
|
||||
[`Position::BeforePath`]: https://docs.rs/url/*/url/enum.Position.html#variant.BeforePath
|
||||
[`read_to_string`]: https://doc.rust-lang.org/std/io/trait.Read.html#method.read_to_string
|
||||
[`Regex::captures_iter`]: https://doc.rust-lang.org/regex/regex/struct.Regex.html#method.captures_iter
|
||||
[`RequestBuilder::basic_auth`]: https://docs.rs/reqwest/*/reqwest/struct.RequestBuilder.html#method.basic_auth
|
||||
[`RequestBuilder::body`]: https://docs.rs/reqwest/*/reqwest/struct.RequestBuilder.html#method.body
|
||||
[`RequestBuilder::header`]: https://docs.rs/reqwest/*/reqwest/struct.RequestBuilder.html#method.header
|
||||
[`RequestBuilder::json`]: https://docs.rs/reqwest/*/reqwest/struct.RequestBuilder.html#method.json
|
||||
[`RequestBuilder::send`]: https://docs.rs/reqwest/*/reqwest/struct.RequestBuilder.html#method.send
|
||||
[`reqwest::Client::head`]: https://docs.rs/reqwest/*/reqwest/struct.Client.html#method.head
|
||||
[`reqwest::Client`]: https://docs.rs/reqwest/*/reqwest/struct.Client.html
|
||||
[`reqwest::get`]: https://docs.rs/reqwest/*/reqwest/fn.get.html
|
||||
[`reqwest::header::ContentRange`]: https://docs.rs/reqwest/*/reqwest/header/struct.ContentRange.htm
|
||||
[`reqwest::header::Range`]: https://docs.rs/reqwest/*/reqwest/header/enum.Range.html
|
||||
[`reqwest::RequestBuilder`]: https://docs.rs/reqwest/*/reqwest/struct.RequestBuilder.html
|
||||
[`reqwest::Response`]: https://docs.rs/reqwest/*/reqwest/struct.Response.html
|
||||
[`Response::json`]: https://docs.rs/reqwest/*/reqwest/struct.Response.html#method.json
|
||||
[`Response::url`]: https://docs.rs/reqwest/*/reqwest/struct.Response.html#method.url
|
||||
[`Selection`]: https://docs.rs/select/*/select/selection/struct.Selection.html
|
||||
[`serde::Deserialize`]: https://docs.rs/serde/*/serde/trait.Deserialize.html
|
||||
[`serde_json::json!`]: https://docs.rs/serde_json/*/serde_json/macro.json.html
|
||||
[`SocketAddrV4`]: https://doc.rust-lang.org/std/net/struct.SocketAddrV4.html
|
||||
[`std::iter::Iterator`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html
|
||||
[`String`]: https://doc.rust-lang.org/std/string/struct.String.html
|
||||
[`TcpListener::accept`]: https://doc.rust-lang.org/std/net/struct.TcpListener.html#method.accept
|
||||
[`TcpListener::bind`]: https://doc.rust-lang.org/std/net/struct.TcpListener.html#method.bind
|
||||
|
@ -1151,37 +1172,16 @@ fn run() -> Result<()> {
|
|||
[`TcpStream`]: https://doc.rust-lang.org/std/net/struct.TcpStream.html
|
||||
[`TempDir::new`]: https://docs.rs/tempdir/*/tempdir/struct.TempDir.html#method.new
|
||||
[`TempDir::path`]: https://docs.rs/tempdir/*/tempdir/struct.TempDir.html#method.path
|
||||
[`Url::parse_with_params`]: https://docs.rs/url/1.*/url/struct.Url.html#method.parse_with_params
|
||||
[`Url`]: https://docs.rs/url/1.*/url/struct.Url.html
|
||||
[`attr`]: https://docs.rs/select/*/select/node/struct.Node.html#method.attr
|
||||
[`filter_map`]: https://doc.rust-lang.org/core/iter/trait.Iterator.html#method.filter_map
|
||||
[`find`]: https://docs.rs/select/*/select/document/struct.Document.html#method.find
|
||||
[`header::Authorization`]: https://docs.rs/hyper/*/hyper/header/struct.Authorization.html
|
||||
[`header::UserAgent`]: https://docs.rs/hyper/*/hyper/header/struct.UserAgent.html
|
||||
[`hyper::header!`]: https://docs.rs/hyper/*/hyper/macro.header.html
|
||||
[`io::copy`]: https://doc.rust-lang.org/std/io/fn.copy.html
|
||||
[`join`]: https://docs.rs/url/1.*/url/struct.Url.html#method.join
|
||||
[`origin`]: https://docs.rs/url/1.*/url/struct.Url.html#method.origin
|
||||
[`parse`]: https://docs.rs/url/1.*/url/struct.Url.html#method.parse
|
||||
[`read_to_string`]: https://doc.rust-lang.org/std/io/trait.Read.html#method.read_to_string
|
||||
[`reqwest::Client`]: https://docs.rs/reqwest/*/reqwest/struct.Client.html
|
||||
[`reqwest::RequestBuilder`]: https://docs.rs/reqwest/*/reqwest/struct.RequestBuilder.html
|
||||
[`reqwest::Response`]: https://docs.rs/reqwest/*/reqwest/struct.Response.html
|
||||
[`reqwest::get`]: https://docs.rs/reqwest/*/reqwest/fn.get.html
|
||||
[`reqwest::Client::head`]: https://docs.rs/reqwest/*/reqwest/struct.Client.html#method.head
|
||||
[`reqwest::header::Range`]: https://docs.rs/reqwest/*/reqwest/header/enum.Range.html
|
||||
[`reqwest::header::ContentRange`]: https://docs.rs/reqwest/*/reqwest/header/struct.ContentRange.htm
|
||||
[`serde::Deserialize`]: https://docs.rs/serde/*/serde/trait.Deserialize.html
|
||||
[`serde_json::json!`]: https://docs.rs/serde_json/*/serde_json/macro.json.html
|
||||
[`std::iter::Iterator`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html
|
||||
[`url::Position`]: https://docs.rs/url/*/url/enum.Position.html
|
||||
[`Url::parse_with_params`]: https://docs.rs/url/*/url/struct.Url.html#method.parse_with_params
|
||||
[`url::Parse`]: https://docs.rs/url/*/url/struct.Url.html#method.parse
|
||||
[`url::ParseOptions`]: https://docs.rs/url/*/url/struct.ParseOptions.html
|
||||
[`url::Position`]: https://docs.rs/url/*/url/enum.Position.html
|
||||
[`Url`]: https://docs.rs/url/*/url/struct.Url.html
|
||||
|
||||
<!-- Other Reference -->
|
||||
|
||||
[GitHub API]: https://developer.github.com/v3/auth/
|
||||
[HTTP Basic Auth]: https://tools.ietf.org/html/rfc2617
|
||||
[HTTP Range RFC7233]: https://tools.ietf.org/html/rfc7233#section-3.1
|
||||
[MediaWiki link syntax]: https://www.mediawiki.org/wiki/Help:Links
|
||||
[OAuth]: https://oauth.net/getting-started/
|
||||
[HTTP Range RFC7233]: https://tools.ietf.org/html/rfc7233#section-3.1
|
||||
|
|
Loading…
Reference in a new issue