Housekeeping, add RequestType

[?]
Jan 14, 2021, 6:55 AM
LSYI2TXC2N33NQF4MG2RNBETSPSO7BRTJVUVVO7P3XN4SRJDEWLAC

Dependencies

  • [2] XZ6Z2D6H DRY parser impls
  • [3] BOFUYB6I Add documentation and implement some feedback from Discord (https://discord.com/channels/273534239310479360/354038657075904544/796256815024701480)
  • [4] 5II6T7YE Add gemini library
  • [5] RTDVYLFT Give gemtext parser a more uniform interface wrt other parsers
  • [6] JBZGFYVO Add nom parsers for main types
  • [7] AOSTKTLO Licensing
  • [8] 55JQX7NF Add sputnik

Change contents

  • edit in shell.nix at line 5
    [3.71][3.71:121]()
    LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
  • replacement in shell.nix at line 17
    [3.317][3.317:330]()
    libressl
    [3.317]
    [3.330]
    openssl
    pkg-config
  • edit in shell.nix at line 20
    [3.339][3.339:424]()
    llvmPackages.libclang
    llvmPackages.libcxxClang
    llvmPackages.libcxxStdenv
  • edit in gemini/src/status.rs at line 23
    [3.809]
    [3.118]
    use std::{convert::TryFrom, fmt::Display};
  • replacement in gemini/src/status.rs at line 26
    [3.119][3.119:146]()
    use std::convert::TryFrom;
    [3.119]
    [3.146]
    use thiserror::Error;
  • replacement in gemini/src/status.rs at line 41
    [3.1146][3.1146:1176]()
    #[derive(Debug, Copy, Clone)]
    [3.1146]
    [3.272]
    #[derive(Debug, Copy, Clone, Error)]
  • edit in gemini/src/status.rs at line 44
    [3.318]
    [3.318]
    }
    impl Display for InvalidStatusCode {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
    write!(f, "invalid status code")
    }
  • replacement in gemini/src/request.rs at line 7
    [3.12754][3.6279:6301](),[3.6278][3.6279:6301]()
    use std::borrow::Cow;
    [3.12754]
    [3.6301]
    use std::{borrow::Cow, fmt::Display, marker::PhantomData};
  • edit in gemini/src/request.rs at line 9
    [3.6302]
    [3.6302]
    use thiserror::Error;
  • edit in gemini/src/request.rs at line 12
    [3.6321]
    [3.12755]
    mod request_type;
  • replacement in gemini/src/request.rs at line 20
    [3.6377][3.6377:6398]()
    pub struct Request {
    [3.6377]
    [3.6398]
    pub struct Request<T: request_type::RequestType> {
  • edit in gemini/src/request.rs at line 22
    [3.6412]
    [3.6412]
    _phantom: PhantomData<T>,
  • edit in gemini/src/request.rs at line 24
    [3.6414]
    [3.6414]
    /// A request that may be for any scheme.
    pub type AnyRequest = Request<request_type::Any>;
    /// A request that is known to be a valid Gemini URL.
    pub type GeminiRequest = Request<request_type::Gemini>;
  • replacement in gemini/src/request.rs at line 34
    [3.13220][3.13220:13250]()
    #[derive(Debug, Copy, Clone)]
    [3.13220]
    [3.6432]
    #[derive(Debug, Copy, Clone, Error)]
  • edit in gemini/src/request.rs at line 37
    [3.6475]
    [3.6475]
    }
    impl Display for InvalidRequest {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
    write!(f, "invalid request")
    }
  • replacement in gemini/src/request.rs at line 51
    [3.6569][3.6569:6584]()
    impl Request {
    [3.6569]
    [3.13251]
    impl<T: request_type::RequestType> Request<T> {
  • replacement in gemini/src/request.rs at line 62
    [3.13693][3.6708:6776](),[3.6708][3.6708:6776]()
    pub fn from_uri(uri: &str) -> Result<Request, InvalidRequest> {
    [3.13693]
    [3.6776]
    pub fn from_uri(uri: &str) -> Result<AnyRequest, InvalidRequest> {
  • replacement in gemini/src/request.rs at line 72
    [3.7045][3.13694:13755]()
    /// Attempt to construct a `Request` from a given `Url`.
    [3.7045]
    [3.13755]
    /// Attempt to construct an `AnyRequest` from a given `Url`.
  • replacement in gemini/src/request.rs at line 75
    [3.13837][3.7045:7112](),[3.7045][3.7045:7112]()
    pub fn from_url(url: Url) -> Result<Request, InvalidRequest> {
    [3.13837]
    [3.7112]
    pub fn from_url(url: Url) -> Result<AnyRequest, InvalidRequest> {
    if url.as_str().len() > Self::MAX_URL_LEN {
    Err(InvalidRequest::new())
    } else {
    Ok(Request {
    url,
    _phantom: PhantomData,
    })
    }
    }
    /// Construct a `GeminiRequest` from the necessary components.
    pub fn gemini_request(
    host: &str,
    port: Option<u16>,
    path: &str,
    ) -> Result<GeminiRequest, InvalidRequest> {
    let url = format!(
    "{}://{}:{}/{}",
    Self::GEMINI_SCHEME,
    host,
    port.unwrap_or(1965),
    path
    );
    let url = Url::parse(url.as_str()).map_err(|_| InvalidRequest::new())?;
  • replacement in gemini/src/request.rs at line 103
    [3.7220][3.7220:7252]()
    Ok(Request { url })
    [3.7220]
    [3.7252]
    Ok(Request {
    url,
    _phantom: PhantomData,
    })
  • edit in gemini/src/request.rs at line 120
    [3.7586]
    [3.7586]
    }
  • edit in gemini/src/request.rs at line 122
    [3.7587]
    [3.13968]
    impl AnyRequest {
  • replacement in gemini/src/request.rs at line 125
    [3.14090][3.7587:7662](),[3.7587][3.7587:7662]()
    pub fn into_gemini_request(mut self) -> Result<Self, InvalidRequest> {
    [3.14090]
    [3.7662]
    pub fn into_gemini_request(mut self) -> Result<GeminiRequest, InvalidRequest> {
  • replacement in gemini/src/request.rs at line 130
    [3.7827][3.7827:7848]()
    Ok(self)
    [3.7827]
    [3.7848]
    Ok(Request {
    url: self.url,
    _phantom: PhantomData,
    })
  • replacement in gemini/src/request.rs at line 157
    [3.1799][3.1799:1861]()
    pub fn request(input: &[u8]) -> IResult<&[u8], Request> {
    [3.1799]
    [3.1861]
    pub fn request(input: &[u8]) -> IResult<&[u8], AnyRequest> {
  • replacement in gemini/src/request.rs at line 162
    [3.2053][3.2053:2090]()
    Request::from_uri(s)
    [3.2053]
    [3.2090]
    AnyRequest::from_uri(s)
  • file addition: request (dxwrx-rx-r)
    [3.16]
  • file addition: request_type.rs (-xw-x--x--)
    [0.2255]
    pub trait RequestType: private::Sealed {}
    /// Marker for requests which may be any type.
    #[derive(Debug, Copy, Clone)]
    pub struct Any;
    /// Marker for requests which are known to be valid Gemini URLs.
    #[derive(Debug, Copy, Clone)]
    pub struct Gemini;
    mod private {
    pub trait Sealed {}
    impl Sealed for super::Any {}
    impl Sealed for super::Gemini {}
    }
    impl RequestType for Any {}
    impl RequestType for Gemini {}
  • replacement in gemini/src/lib.rs at line 30
    [3.2165][2.0:46]()
    use nom::{error::Error, Finish, IResult};
    [3.2165]
    [3.2202]
    use nom::{error::Error, Finish};
  • edit in gemini/src/lib.rs at line 35
    [2.48][2.48:369](),[2.369][3.2277:2278](),[3.61][3.2277:2278](),[3.2277][3.2277:2278]()
    fn handle<I: ToOwned + ?Sized, O>(res: IResult<&I, O>) -> Result<O, Error<I::Owned>> {
    match res.finish() {
    Ok((_, res)) => Ok(res),
    Err(Error { input, code }) => Err({
    let input = input.to_owned();
    Error { input, code }
    }),
    }
    }
  • replacement in gemini/src/lib.rs at line 43
    [3.2473][3.62:175]()
    pub fn [< parse_ $name >](input: impl AsRef<[u8]>) -> Result<$name::$type, Error<Vec<u8>>> {
    [3.2473]
    [3.2595]
    pub fn [< parse_ $name >](input: impl AsRef<[u8]>) -> Result<$name::$type, Error<String>> {
  • replacement in gemini/src/lib.rs at line 45
    [3.2647][2.370:429]()
    handle($name::parse::$name(bytes))
    [3.2647]
    [3.3005]
    match $name::parse::$name(bytes).finish() {
    Ok((_, res)) => Ok(res),
    Err(Error { input, code }) => Err({
    let bytes = input.to_owned();
    let input = String::from_utf8_lossy(&bytes).to_string();
    Error { input, code }
    })
    }
  • replacement in gemini/src/lib.rs at line 63
    [3.3199][3.3199:3225]()
    request: Request,
    [3.3199]
    [3.3225]
    request: AnyRequest,
  • replacement in gemini/src/lib.rs at line 73
    [3.357][2.430:478]()
    handle(gemtext::parse::document(input))
    [3.357]
    [3.606]
    match gemtext::parse::document(input).finish() {
    Ok((_, res)) => Ok(res),
    Err(Error { input, code }) => Err({
    let input = input.to_string();
    Error { input, code }
    }),
    }
  • replacement in gemini/Cargo.toml at line 20
    [3.9966][3.9966:9980]()
    url = "2.2.0"
    [3.9966]
    [3.4312]
    thiserror = "1.0.23"
    url = "2.2.0"
  • replacement in Cargo.toml at line 3
    [3.466][3.9981:10017]()
    members = ["./gemini", "./sputnik"]
    [3.466]
    members = [
    "./gemini",
    # "./sputnik",
    "./voskhod",
    ]
  • edit in Cargo.lock at line 3
    [3.10123][3.10123:10350]()
    [[package]]
    name = "aho-corasick"
    version = "0.7.15"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
    dependencies = [
    "memchr",
    ]
  • edit in Cargo.lock at line 4
    [3.10362][3.10362:10586]()
    name = "ansi_term"
    version = "0.11.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
    dependencies = [
    "winapi",
    ]
    [[package]]
  • replacement in Cargo.lock at line 5
    [3.10602][3.10602:10621]()
    version = "1.0.37"
    [3.10602]
    [3.10621]
    version = "1.0.38"
  • replacement in Cargo.lock at line 7
    [3.10686][3.10686:10764]()
    checksum = "ee67c11feeac938fae061b232e38e0b6d94f97a9df10e6271319325ac4c56a86"
    [3.10686]
    [3.4408]
    checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1"
  • replacement in Cargo.lock at line 16
    [3.10777][3.10777:10810]()
    name = "atty"
    version = "0.2.14"
    [3.10777]
    [3.10810]
    name = "autocfg"
    version = "1.0.1"
  • replacement in Cargo.lock at line 19
    [3.10875][3.10875:11007]()
    checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
    dependencies = [
    "hermit-abi",
    "libc",
    "winapi",
    ]
    [3.10875]
    [3.11007]
    checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
  • edit in Cargo.lock at line 22
    [3.11020][3.11020:11434]()
    name = "bindgen"
    version = "0.53.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5"
    dependencies = [
    "bitflags",
    "cexpr",
    "cfg-if",
    "clang-sys",
    "clap",
    "env_logger",
    "lazy_static",
    "lazycell",
    "log",
    "peeking_take_while",
    "proc-macro2",
    "quote",
    "regex",
    "rustc-hash",
    "shlex",
    "which",
    ]
    [[package]]
  • edit in Cargo.lock at line 40
    [3.4848]
    [3.11626]
    name = "bytes"
    version = "1.0.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040"
    [[package]]
  • replacement in Cargo.lock at line 52
    [3.11813][3.11813:11846]()
    name = "cexpr"
    version = "0.4.0"
    [3.11813]
    [3.11846]
    name = "cfg-if"
    version = "0.1.10"
  • replacement in Cargo.lock at line 55
    [3.11911][3.11911:12006](),[3.12006][3.4849:4863](),[3.4863][3.12014:12016](),[3.12014][3.12014:12016]()
    checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
    dependencies = [
    "nom 5.1.2",
    ]
    [3.11911]
    [3.12016]
    checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
  • replacement in Cargo.lock at line 59
    [3.12045][3.12045:12064]()
    version = "0.1.10"
    [3.12045]
    [3.12064]
    version = "1.0.0"
  • replacement in Cargo.lock at line 61
    [3.12129][3.12129:12207]()
    checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
    [3.12129]
    [3.12207]
    checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
  • replacement in Cargo.lock at line 64
    [3.12220][3.12220:12258]()
    name = "clang-sys"
    version = "0.29.3"
    [3.12220]
    [3.12258]
    name = "core-foundation"
    version = "0.9.1"
  • replacement in Cargo.lock at line 67
    [3.12323][3.12323:12401]()
    checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a"
    [3.12323]
    [3.12401]
    checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62"
  • replacement in Cargo.lock at line 69
    [3.12418][3.12418:12427]()
    "glob",
    [3.12418]
    [3.12427]
    "core-foundation-sys",
  • edit in Cargo.lock at line 71
    [3.12436][3.12436:12451]()
    "libloading",
  • replacement in Cargo.lock at line 74
    [3.12466][3.12466:12499]()
    name = "clap"
    version = "2.33.3"
    [3.12466]
    [3.12499]
    name = "core-foundation-sys"
    version = "0.8.2"
  • replacement in Cargo.lock at line 77
    [3.12564][3.12564:12751]()
    checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
    dependencies = [
    "ansi_term",
    "atty",
    "bitflags",
    "strsim",
    "textwrap",
    "unicode-width",
    "vec_map",
    ]
    [3.12564]
    [3.12751]
    checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
  • replacement in Cargo.lock at line 80
    [3.12764][3.12764:12802]()
    name = "env_logger"
    version = "0.7.1"
    [3.12764]
    [3.12802]
    name = "foreign-types"
    version = "0.3.2"
  • replacement in Cargo.lock at line 83
    [3.12867][3.12867:12945]()
    checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
    [3.12867]
    [3.12945]
    checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
  • replacement in Cargo.lock at line 85
    [3.12962][3.12962:13017]()
    "atty",
    "humantime",
    "log",
    "regex",
    "termcolor",
    [3.12962]
    [3.13017]
    "foreign-types-shared",
  • edit in Cargo.lock at line 87
    [3.13019]
    [3.13019]
    [[package]]
    name = "foreign-types-shared"
    version = "0.1.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
  • replacement in Cargo.lock at line 114
    [3.13334][3.5054:5068]()
    "nom 6.0.1",
    [3.13334]
    [3.5068]
    "nom",
  • edit in Cargo.lock at line 116
    [3.5078]
    [3.13334]
    "thiserror",
  • replacement in Cargo.lock at line 121
    [3.13357][3.13357:13389]()
    name = "glob"
    version = "0.3.0"
    [3.13357]
    [3.13389]
    name = "getrandom"
    version = "0.2.1"
  • replacement in Cargo.lock at line 124
    [3.13454][3.13454:13532]()
    checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
    [3.13454]
    [3.13532]
    checksum = "4060f4657be78b8e766215b02b18a2e862d83745545de804638e2b545e81aee6"
    dependencies = [
    "cfg-if 1.0.0",
    "libc",
    "wasi",
    ]
  • edit in Cargo.lock at line 138
    [3.13753][3.13753:13981]()
    ]
    [[package]]
    name = "humantime"
    version = "1.3.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
    dependencies = [
    "quick-error",
  • replacement in Cargo.lock at line 152
    [3.14258][3.14258:14297]()
    name = "lazy_static"
    version = "1.4.0"
    [3.14258]
    [3.14297]
    name = "instant"
    version = "0.1.9"
  • replacement in Cargo.lock at line 155
    [3.14362][3.14362:14440]()
    checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
    [3.14362]
    [3.14440]
    checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
    dependencies = [
    "cfg-if 1.0.0",
    ]
  • replacement in Cargo.lock at line 161
    [3.14453][3.14453:14489]()
    name = "lazycell"
    version = "1.3.0"
    [3.14453]
    [3.14489]
    name = "lazy_static"
    version = "1.4.0"
  • replacement in Cargo.lock at line 164
    [3.14554][3.14554:14632]()
    checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
    [3.14554]
    [3.5079]
    checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
  • replacement in Cargo.lock at line 174
    [3.5318][3.5318:5329]()
    "cfg-if",
    [3.5318]
    [3.5329]
    "cfg-if 0.1.10",
  • replacement in Cargo.lock at line 186
    [3.14834][3.14834:14872]()
    name = "libloading"
    version = "0.5.2"
    [3.14834]
    [3.14872]
    name = "lock_api"
    version = "0.4.2"
  • replacement in Cargo.lock at line 189
    [3.14937][3.14937:15015]()
    checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"
    [3.14937]
    [3.15015]
    checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
  • replacement in Cargo.lock at line 191
    [3.15032][3.15032:15274]()
    "cc",
    "winapi",
    ]
    [[package]]
    name = "libtls"
    version = "1.2.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "321368d0bb1bce5124e2bfde2f1693849447be341bcb921b91d3531ebfbb9872"
    dependencies = [
    "libtls-sys",
    [3.15032]
    [3.15274]
    "scopeguard",
  • edit in Cargo.lock at line 195
    [3.15289][3.15289:15542]()
    name = "libtls-sys"
    version = "1.2.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "f8647e4be4fb67c175cad46ad528c196beab539398dbccbf060ba22e8762b069"
    dependencies = [
    "bindgen",
    "num_cpus",
    "pkg-config",
    ]
    [[package]]
  • replacement in Cargo.lock at line 200
    [3.15734][3.15734:15745]()
    "cfg-if",
    [3.15734]
    [3.15745]
    "cfg-if 0.1.10",
  • replacement in Cargo.lock at line 216
    [3.16141][3.16141:16172]()
    name = "nom"
    version = "5.1.2"
    [3.16141]
    [3.16172]
    name = "mio"
    version = "0.7.7"
  • replacement in Cargo.lock at line 219
    [3.16237][3.16237:16315]()
    checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
    [3.16237]
    [3.16315]
    checksum = "e50ae3f04d169fcc9bde0b547d1c205219b7157e07ded9c5aff03e0637cb3ed7"
    dependencies = [
    "libc",
    "log",
    "miow",
    "ntapi",
    "winapi",
    ]
    [[package]]
    name = "miow"
    version = "0.3.6"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897"
    dependencies = [
    "socket2",
    "winapi",
    ]
    [[package]]
    name = "native-tls"
    version = "0.2.7"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "b8d96b2e1c8da3957d58100b09f102c6d9cfdfced01b7ec5a8974044bb09dbd4"
  • replacement in Cargo.lock at line 244
    [3.16332][3.16332:16361]()
    "memchr",
    "version_check",
    [3.16332]
    [3.16361]
    "lazy_static",
    "libc",
    "log",
    "openssl",
    "openssl-probe",
    "openssl-sys",
    "schannel",
    "security-framework",
    "security-framework-sys",
    "tempfile",
  • edit in Cargo.lock at line 266
    [3.5610]
    [3.5610]
    ]
    [[package]]
    name = "ntapi"
    version = "0.3.6"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44"
    dependencies = [
    "winapi",
  • replacement in Cargo.lock at line 288
    [3.5639][3.5639:5672]()
    name = "paste"
    version = "1.0.4"
    [3.5639]
    [3.5672]
    name = "once_cell"
    version = "1.5.2"
  • replacement in Cargo.lock at line 291
    [3.5737][3.5737:5815]()
    checksum = "c5d65c4d95931acda4498f675e332fcbdc9a06705cd07086c510e9b6009cd1c1"
    [3.5737]
    [3.16599]
    checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
  • replacement in Cargo.lock at line 294
    [3.16612][3.16612:16640]()
    name = "peeking_take_while"
    [3.16612]
    [3.16640]
    name = "openssl"
    version = "0.10.32"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "038d43985d1ddca7a9900630d8cd031b56e4794eecc2e9ea39dd17aa04399a70"
    dependencies = [
    "bitflags",
    "cfg-if 1.0.0",
    "foreign-types",
    "lazy_static",
    "libc",
    "openssl-sys",
    ]
    [[package]]
    name = "openssl-probe"
  • edit in Cargo.lock at line 310
    [3.16658]
    [3.16658]
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
    [[package]]
    name = "openssl-sys"
    version = "0.9.60"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "921fc71883267538946025deffb622905ecad223c28efbfdef9bb59a0175f3e6"
    dependencies = [
    "autocfg",
    "cc",
    "libc",
    "pkg-config",
    "vcpkg",
    ]
    [[package]]
    name = "parking_lot"
    version = "0.11.1"
  • replacement in Cargo.lock at line 330
    [3.16723][3.16723:16801]()
    checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
    [3.16723]
    [3.16801]
    checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
    dependencies = [
    "instant",
    "lock_api",
    "parking_lot_core",
    ]
    [[package]]
    name = "parking_lot_core"
    version = "0.8.2"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272"
    dependencies = [
    "cfg-if 1.0.0",
    "instant",
    "libc",
    "redox_syscall 0.1.57",
    "smallvec",
    "winapi",
    ]
    [[package]]
    name = "paste"
    version = "1.0.4"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "c5d65c4d95931acda4498f675e332fcbdc9a06705cd07086c510e9b6009cd1c1"
  • replacement in Cargo.lock at line 364
    [3.17014][3.17014:17051]()
    name = "pico-args"
    version = "0.3.4"
    [3.17014]
    [3.17051]
    name = "pin-project-lite"
    version = "0.2.4"
  • replacement in Cargo.lock at line 367
    [3.17116][3.17116:17194]()
    checksum = "28b9b4df73455c861d7cbf8be42f01d3b373ed7f02e378d55fa84eafc6f638b1"
    [3.17116]
    [3.17194]
    checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827"
  • edit in Cargo.lock at line 374
    [3.17389]
    [3.17389]
    [[package]]
    name = "ppv-lite86"
    version = "0.2.10"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
  • edit in Cargo.lock at line 391
    [3.17633][3.17633:17828]()
    name = "quick-error"
    version = "1.2.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
    [[package]]
  • replacement in Cargo.lock at line 406
    [3.6006][3.18052:18085](),[3.18052][3.18052:18085]()
    name = "regex"
    version = "1.4.2"
    [3.6006]
    [3.18085]
    name = "rand"
    version = "0.8.2"
  • replacement in Cargo.lock at line 409
    [3.18150][3.18150:18228]()
    checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
    [3.18150]
    [3.18228]
    checksum = "18519b42a40024d661e1714153e9ad0c3de27cd495760ceb09710920f1098b1e"
    dependencies = [
    "libc",
    "rand_chacha",
    "rand_core",
    "rand_hc",
    ]
    [[package]]
    name = "rand_chacha"
    version = "0.3.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
    dependencies = [
    "ppv-lite86",
    "rand_core",
    ]
    [[package]]
    name = "rand_core"
    version = "0.6.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "c026d7df8b298d90ccbbc5190bd04d85e159eaf5576caeacf8741da93ccbd2e5"
    dependencies = [
    "getrandom",
    ]
    [[package]]
    name = "rand_hc"
    version = "0.3.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
  • replacement in Cargo.lock at line 442
    [3.18245][3.18245:18307]()
    "aho-corasick",
    "memchr",
    "regex-syntax",
    "thread_local",
    [3.18245]
    [3.18307]
    "rand_core",
  • replacement in Cargo.lock at line 446
    [3.18322][3.18322:18363]()
    name = "regex-syntax"
    version = "0.6.21"
    [3.18322]
    [3.18363]
    name = "redox_syscall"
    version = "0.1.57"
  • replacement in Cargo.lock at line 449
    [3.18428][3.18428:18506]()
    checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
    [3.18428]
    [3.18506]
    checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
  • replacement in Cargo.lock at line 452
    [3.18519][3.18519:18557]()
    name = "rustc-hash"
    version = "1.1.0"
    [3.18519]
    [3.18557]
    name = "redox_syscall"
    version = "0.2.4"
  • replacement in Cargo.lock at line 455
    [3.18622][3.18622:18700]()
    checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
    [3.18622]
    [3.6007]
    checksum = "05ec8ca9416c5ea37062b502703cd7fcb207736bc294f6e0cf367ac6fc234570"
    dependencies = [
    "bitflags",
    ]
    [[package]]
    name = "remove_dir_all"
    version = "0.5.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
    dependencies = [
    "winapi",
    ]
  • edit in Cargo.lock at line 474
    [3.6194]
    [3.18700]
    [[package]]
    name = "schannel"
    version = "0.1.19"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
    dependencies = [
    "lazy_static",
    "winapi",
    ]
    [[package]]
    name = "scopeguard"
    version = "1.1.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
    [[package]]
    name = "security-framework"
    version = "2.0.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "c1759c2e3c8580017a484a7ac56d3abc5a6c1feadf88db2f3633f12ae4268c69"
    dependencies = [
    "bitflags",
    "core-foundation",
    "core-foundation-sys",
    "libc",
    "security-framework-sys",
    ]
    [[package]]
    name = "security-framework-sys"
    version = "2.0.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "f99b9d5e26d2a71633cc4f2ebae7cc9f874044e0c351a27e17892d76dce5678b"
    dependencies = [
    "core-foundation-sys",
    "libc",
    ]
  • replacement in Cargo.lock at line 515
    [3.18713][3.18713:18746]()
    name = "shlex"
    version = "0.1.1"
    [3.18713]
    [3.18746]
    name = "signal-hook-registry"
    version = "1.3.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "16f1d0fef1604ba8f7a073c7e701f213e056707210e9020af4528e0101ce11a6"
    dependencies = [
    "libc",
    ]
    [[package]]
    name = "smallvec"
    version = "1.6.1"
  • replacement in Cargo.lock at line 527
    [3.18811][3.18811:18889]()
    checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
    [3.18811]
    [3.18889]
    checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
  • replacement in Cargo.lock at line 530
    [3.18902][3.18902:18937]()
    name = "sputnik"
    version = "0.1.0"
    [3.18902]
    [3.18937]
    name = "socket2"
    version = "0.3.19"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e"
  • replacement in Cargo.lock at line 535
    [3.18954][3.18954:18998]()
    "anyhow",
    "libtls",
    "pico-args",
    "url",
    [3.18954]
    [3.18998]
    "cfg-if 1.0.0",
    "libc",
    "winapi",
  • replacement in Cargo.lock at line 547
    [3.6396][3.19013:19047](),[3.19013][3.19013:19047]()
    name = "strsim"
    version = "0.8.0"
    [3.6396]
    [3.19047]
    name = "syn"
    version = "1.0.58"
  • replacement in Cargo.lock at line 550
    [3.19112][3.19112:19190]()
    checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
    [3.19112]
    [3.6397]
    checksum = "cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5"
    dependencies = [
    "proc-macro2",
    "quote",
    "unicode-xid",
    ]
  • replacement in Cargo.lock at line 564
    [3.19203][3.19203:19240]()
    name = "termcolor"
    version = "1.1.2"
    [3.19203]
    [3.19240]
    name = "tempfile"
    version = "3.2.0"
  • replacement in Cargo.lock at line 567
    [3.19305][3.19305:19383]()
    checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
    [3.19305]
    [3.19383]
    checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
  • replacement in Cargo.lock at line 569
    [3.19400][3.19400:19416]()
    "winapi-util",
    [3.19400]
    [3.19416]
    "cfg-if 1.0.0",
    "libc",
    "rand",
    "redox_syscall 0.2.4",
    "remove_dir_all",
    "winapi",
  • replacement in Cargo.lock at line 578
    [3.19431][3.19431:19468]()
    name = "textwrap"
    version = "0.11.0"
    [3.19431]
    [3.19468]
    name = "thiserror"
    version = "1.0.23"
  • replacement in Cargo.lock at line 581
    [3.19533][3.19533:19611]()
    checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
    [3.19533]
    [3.19611]
    checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146"
  • replacement in Cargo.lock at line 583
    [3.19628][3.19628:19646]()
    "unicode-width",
    [3.19628]
    [3.19646]
    "thiserror-impl",
  • replacement in Cargo.lock at line 587
    [3.19661][3.19661:19701]()
    name = "thread_local"
    version = "1.0.1"
    [3.19661]
    [3.19701]
    name = "thiserror-impl"
    version = "1.0.23"
  • replacement in Cargo.lock at line 590
    [3.19766][3.19766:19844]()
    checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
    [3.19766]
    [3.19844]
    checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1"
  • replacement in Cargo.lock at line 592
    [3.19861][3.19861:19877]()
    "lazy_static",
    [3.19861]
    [3.19877]
    "proc-macro2",
    "quote",
    "syn",
  • edit in Cargo.lock at line 611
    [3.20306]
    [3.20306]
    [[package]]
    name = "tokio"
    version = "1.0.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "d258221f566b6c803c7b4714abadc080172b272090cdc5e244a6d4dd13c3a6bd"
    dependencies = [
    "autocfg",
    "bytes",
    "libc",
    "memchr",
    "mio",
    "num_cpus",
    "once_cell",
    "parking_lot",
    "pin-project-lite",
    "signal-hook-registry",
    "tokio-macros",
    "winapi",
    ]
    [[package]]
    name = "tokio-macros"
    version = "1.0.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "42517d2975ca3114b22a16192634e8241dc5cc1f130be194645970cc1c371494"
    dependencies = [
    "proc-macro2",
    "quote",
    "syn",
    ]
    [[package]]
    name = "tokio-native-tls"
    version = "0.3.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b"
    dependencies = [
    "native-tls",
    "tokio",
    ]
  • edit in Cargo.lock at line 670
    [3.20770][3.20770:20967]()
    [[package]]
    name = "unicode-width"
    version = "0.1.8"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
  • replacement in Cargo.lock at line 690
    [3.21443][3.21443:21478]()
    name = "vec_map"
    version = "0.8.2"
    [3.21443]
    [3.21478]
    name = "vcpkg"
    version = "0.2.11"
  • replacement in Cargo.lock at line 693
    [3.21543][3.21543:21621]()
    checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
    [3.21543]
    [3.21621]
    checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb"
  • replacement in Cargo.lock at line 702
    [3.21831][3.21831:22007]()
    name = "which"
    version = "3.1.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"
    [3.21831]
    [3.22007]
    name = "voskhod"
    version = "0.1.0"
  • replacement in Cargo.lock at line 705
    [3.22024][3.22024:22033]()
    "libc",
    [3.22024]
    [3.22033]
    "anyhow",
    "gemini",
    "tokio",
    "tokio-native-tls",
  • edit in Cargo.lock at line 710
    [3.22035]
    [3.22035]
    [[package]]
    name = "wasi"
    version = "0.10.1+wasi-snapshot-preview1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "93c6c3420963c5c64bca373b25e77acb562081b9bb4dd5bb864187742186cea9"
  • edit in Cargo.lock at line 734
    [3.22531][3.22531:22756]()
    name = "winapi-util"
    version = "0.1.5"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
    dependencies = [
    "winapi",
    ]
    [[package]]
  • edit in .ignore at line 2
    [3.22965]
    .envrc.secret
  • edit in .envrc at line 2
    [3.554]
    if [[ -f .envrc.secret ]]; then
    source .envrc.secret
    fi
  • replacement in .cargo/config.toml at line 2
    [3.23003][3.23003:23017]()
    vcs = "pijul"
    [3.23003]
    vcs = "none"