Housekeeping, add RequestType
[?]
Jan 14, 2021, 6:55 AM
LSYI2TXC2N33NQF4MG2RNBETSPSO7BRTJVUVVO7P3XN4SRJDEWLACDependencies
- [2]
XZ6Z2D6HDRY parser impls - [3]
BOFUYB6IAdd documentation and implement some feedback from Discord (https://discord.com/channels/273534239310479360/354038657075904544/796256815024701480) - [4]
5II6T7YEAdd gemini library - [5]
RTDVYLFTGive gemtext parser a more uniform interface wrt other parsers - [6]
JBZGFYVOAdd nom parsers for main types - [7]
AOSTKTLOLicensing - [8]
55JQX7NFAdd sputnik
Change contents
- edit in shell.nix at line 5
LIBCLANG_PATH = "${llvmPackages.libclang}/lib"; - replacement in shell.nix at line 17
libresslopensslpkg-config - edit in shell.nix at line 20
llvmPackages.libclangllvmPackages.libcxxClangllvmPackages.libcxxStdenv - edit in gemini/src/status.rs at line 23
use std::{convert::TryFrom, fmt::Display}; - replacement in gemini/src/status.rs at line 26
use std::convert::TryFrom;use thiserror::Error; - replacement in gemini/src/status.rs at line 41
#[derive(Debug, Copy, Clone)]#[derive(Debug, Copy, Clone, Error)] - edit in gemini/src/status.rs at line 44
}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
use std::borrow::Cow;use std::{borrow::Cow, fmt::Display, marker::PhantomData}; - edit in gemini/src/request.rs at line 9
use thiserror::Error; - edit in gemini/src/request.rs at line 12
mod request_type; - replacement in gemini/src/request.rs at line 20
pub struct Request {pub struct Request<T: request_type::RequestType> { - edit in gemini/src/request.rs at line 22
_phantom: PhantomData<T>, - edit in gemini/src/request.rs at line 24
/// 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
#[derive(Debug, Copy, Clone)]#[derive(Debug, Copy, Clone, Error)] - edit in gemini/src/request.rs at line 37
}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
impl Request {impl<T: request_type::RequestType> Request<T> { - replacement in gemini/src/request.rs at line 62
pub fn from_uri(uri: &str) -> Result<Request, InvalidRequest> {pub fn from_uri(uri: &str) -> Result<AnyRequest, InvalidRequest> { - replacement in gemini/src/request.rs at line 72
/// Attempt to construct a `Request` from a given `Url`./// Attempt to construct an `AnyRequest` from a given `Url`. - replacement in gemini/src/request.rs at line 75
pub fn from_url(url: Url) -> Result<Request, InvalidRequest> {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
Ok(Request { url })Ok(Request {url,_phantom: PhantomData,}) - edit in gemini/src/request.rs at line 120
} - edit in gemini/src/request.rs at line 122
impl AnyRequest { - replacement in gemini/src/request.rs at line 125
pub fn into_gemini_request(mut self) -> Result<Self, InvalidRequest> {pub fn into_gemini_request(mut self) -> Result<GeminiRequest, InvalidRequest> { - replacement in gemini/src/request.rs at line 130
Ok(self)Ok(Request {url: self.url,_phantom: PhantomData,}) - replacement in gemini/src/request.rs at line 157
pub fn request(input: &[u8]) -> IResult<&[u8], Request> {pub fn request(input: &[u8]) -> IResult<&[u8], AnyRequest> { - replacement in gemini/src/request.rs at line 162
Request::from_uri(s)AnyRequest::from_uri(s) - file addition: request[3.16]
- file addition: request_type.rs[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
use nom::{error::Error, Finish, IResult};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
pub fn [< parse_ $name >](input: impl AsRef<[u8]>) -> Result<$name::$type, Error<Vec<u8>>> {pub fn [< parse_ $name >](input: impl AsRef<[u8]>) -> Result<$name::$type, Error<String>> { - replacement in gemini/src/lib.rs at line 45
handle($name::parse::$name(bytes))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
request: Request,request: AnyRequest, - replacement in gemini/src/lib.rs at line 73
handle(gemtext::parse::document(input))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
url = "2.2.0"thiserror = "1.0.23"url = "2.2.0" - replacement in Cargo.toml at line 3
members = ["./gemini", "./sputnik"][3.466]members = ["./gemini",# "./sputnik","./voskhod",] - edit in Cargo.lock at line 3
[[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
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
version = "1.0.37"version = "1.0.38" - replacement in Cargo.lock at line 7
checksum = "ee67c11feeac938fae061b232e38e0b6d94f97a9df10e6271319325ac4c56a86"checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1" - replacement in Cargo.lock at line 16
name = "atty"version = "0.2.14"name = "autocfg"version = "1.0.1" - replacement in Cargo.lock at line 19
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"dependencies = ["hermit-abi","libc","winapi",]checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" - edit in Cargo.lock at line 22
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
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
name = "cexpr"version = "0.4.0"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",]checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - replacement in Cargo.lock at line 59
version = "0.1.10"version = "1.0.0" - replacement in Cargo.lock at line 61
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - replacement in Cargo.lock at line 64
name = "clang-sys"version = "0.29.3"name = "core-foundation"version = "0.9.1" - replacement in Cargo.lock at line 67
checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a"checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62" - replacement in Cargo.lock at line 69
"glob","core-foundation-sys", - edit in Cargo.lock at line 71
"libloading", - replacement in Cargo.lock at line 74
name = "clap"version = "2.33.3"name = "core-foundation-sys"version = "0.8.2" - replacement in Cargo.lock at line 77
checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"dependencies = ["ansi_term","atty","bitflags","strsim","textwrap","unicode-width","vec_map",]checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" - replacement in Cargo.lock at line 80
name = "env_logger"version = "0.7.1"name = "foreign-types"version = "0.3.2" - replacement in Cargo.lock at line 83
checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" - replacement in Cargo.lock at line 85
"atty","humantime","log","regex","termcolor","foreign-types-shared", - edit in Cargo.lock at line 87
[[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
"nom 6.0.1","nom", - edit in Cargo.lock at line 116
"thiserror", - replacement in Cargo.lock at line 121
name = "glob"version = "0.3.0"name = "getrandom"version = "0.2.1" - replacement in Cargo.lock at line 124
checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"checksum = "4060f4657be78b8e766215b02b18a2e862d83745545de804638e2b545e81aee6"dependencies = ["cfg-if 1.0.0","libc","wasi",] - edit in Cargo.lock at line 138
][[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
name = "lazy_static"version = "1.4.0"name = "instant"version = "0.1.9" - replacement in Cargo.lock at line 155
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"dependencies = ["cfg-if 1.0.0",] - replacement in Cargo.lock at line 161
name = "lazycell"version = "1.3.0"name = "lazy_static"version = "1.4.0" - replacement in Cargo.lock at line 164
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - replacement in Cargo.lock at line 174
"cfg-if","cfg-if 0.1.10", - replacement in Cargo.lock at line 186
name = "libloading"version = "0.5.2"name = "lock_api"version = "0.4.2" - replacement in Cargo.lock at line 189
checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312" - replacement in Cargo.lock at line 191
"cc","winapi",][[package]]name = "libtls"version = "1.2.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "321368d0bb1bce5124e2bfde2f1693849447be341bcb921b91d3531ebfbb9872"dependencies = ["libtls-sys","scopeguard", - edit in Cargo.lock at line 195
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
"cfg-if","cfg-if 0.1.10", - replacement in Cargo.lock at line 216
name = "nom"version = "5.1.2"name = "mio"version = "0.7.7" - replacement in Cargo.lock at line 219
checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"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
"memchr","version_check","lazy_static","libc","log","openssl","openssl-probe","openssl-sys","schannel","security-framework","security-framework-sys","tempfile", - edit in Cargo.lock at line 266
][[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
name = "paste"version = "1.0.4"name = "once_cell"version = "1.5.2" - replacement in Cargo.lock at line 291
checksum = "c5d65c4d95931acda4498f675e332fcbdc9a06705cd07086c510e9b6009cd1c1"checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" - replacement in Cargo.lock at line 294
name = "peeking_take_while"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
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
checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"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
name = "pico-args"version = "0.3.4"name = "pin-project-lite"version = "0.2.4" - replacement in Cargo.lock at line 367
checksum = "28b9b4df73455c861d7cbf8be42f01d3b373ed7f02e378d55fa84eafc6f638b1"checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827" - edit in Cargo.lock at line 374
[[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
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
name = "regex"version = "1.4.2"name = "rand"version = "0.8.2" - replacement in Cargo.lock at line 409
checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"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
"aho-corasick","memchr","regex-syntax","thread_local","rand_core", - replacement in Cargo.lock at line 446
name = "regex-syntax"version = "0.6.21"name = "redox_syscall"version = "0.1.57" - replacement in Cargo.lock at line 449
checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - replacement in Cargo.lock at line 452
name = "rustc-hash"version = "1.1.0"name = "redox_syscall"version = "0.2.4" - replacement in Cargo.lock at line 455
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"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
[[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
name = "shlex"version = "0.1.1"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
checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" - replacement in Cargo.lock at line 530
name = "sputnik"version = "0.1.0"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
"anyhow","libtls","pico-args","url","cfg-if 1.0.0","libc","winapi", - replacement in Cargo.lock at line 547
name = "strsim"version = "0.8.0"name = "syn"version = "1.0.58" - replacement in Cargo.lock at line 550
checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"checksum = "cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5"dependencies = ["proc-macro2","quote","unicode-xid",] - replacement in Cargo.lock at line 564
name = "termcolor"version = "1.1.2"name = "tempfile"version = "3.2.0" - replacement in Cargo.lock at line 567
checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" - replacement in Cargo.lock at line 569
"winapi-util","cfg-if 1.0.0","libc","rand","redox_syscall 0.2.4","remove_dir_all","winapi", - replacement in Cargo.lock at line 578
name = "textwrap"version = "0.11.0"name = "thiserror"version = "1.0.23" - replacement in Cargo.lock at line 581
checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146" - replacement in Cargo.lock at line 583
"unicode-width","thiserror-impl", - replacement in Cargo.lock at line 587
name = "thread_local"version = "1.0.1"name = "thiserror-impl"version = "1.0.23" - replacement in Cargo.lock at line 590
checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1" - replacement in Cargo.lock at line 592
"lazy_static","proc-macro2","quote","syn", - edit in Cargo.lock at line 611
[[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
[[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
name = "vec_map"version = "0.8.2"name = "vcpkg"version = "0.2.11" - replacement in Cargo.lock at line 693
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" - replacement in Cargo.lock at line 702
name = "which"version = "3.1.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"name = "voskhod"version = "0.1.0" - replacement in Cargo.lock at line 705
"libc","anyhow","gemini","tokio","tokio-native-tls", - edit in Cargo.lock at line 710
[[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
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 ]]; thensource .envrc.secretfi - replacement in .cargo/config.toml at line 2
vcs = "pijul"[3.23003]vcs = "none"