fastcgi 1.0.0

FastCGI library written in pure Rust
Documentation
Build #2394982 2025-08-09 02:51:35
# rustc version
rustc 1.91.0-nightly (de3efa79f 2025-08-08)# docs.rs version
docsrs 0.6.0 (e18d034e 2025-07-29)# build log
[INFO] running `Command { std: "docker" "create" "-v" "/home/cratesfyi/workspace/builds/fastcgi-1.0.0/target:/opt/rustwide/target:rw,Z" "-v" "/home/cratesfyi/workspace/builds/fastcgi-1.0.0/source:/opt/rustwide/workdir:ro,Z" "-v" "/home/cratesfyi/workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/home/cratesfyi/workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "6442450944" "--cpus" "6" "--user" "1001:1001" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ae6f63d130afcfff7f91f5ba9fdb2a74d52830289c6a2ea2d23a94dcfb480a0d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20250808-1.91.0-nightly-de3efa79f\", \"--static-root-path\", \"/-/rustdoc.static/\", \"--cap-lints\", \"warn\", \"--extern-html-root-takes-precedence\"]" "--offline" "-Zunstable-options" "--config=doc.extern-map.registries.crates-io=\"https://docs.rs/{pkg_name}/{version}/x86_64-unknown-linux-gnu\"" "-Zrustdoc-scrape-examples" "-j6" "--target" "x86_64-unknown-linux-gnu", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] bcdeb9a73e68f130f854bd3817073e3b37920c907a16c672b58ffd6ddb0800d4
[INFO] running `Command { std: "docker" "start" "-a" "bcdeb9a73e68f130f854bd3817073e3b37920c907a16c672b58ffd6ddb0800d4", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/lib.rs:92:5
[INFO] [stderr]    |
[INFO] [stderr] 92 |     try!((&mut r).take(1).read_to_end(&mut buf));
[INFO] [stderr]    |     ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/lib.rs:95:21
[INFO] [stderr]    |
[INFO] [stderr] 95 |             assert!(try!((&mut r).take(3).read_to_end(&mut buf)) == 3);
[INFO] [stderr]    |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:111:19
[INFO] [stderr]     |
[INFO] [stderr] 111 |     let key_len = try!(read_len(r));
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:112:21
[INFO] [stderr]     |
[INFO] [stderr] 112 |     let value_len = try!(read_len(r));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:114:13
[INFO] [stderr]     |
[INFO] [stderr] 114 |     assert!(try!((&mut r).take(key_len as u64).read_to_string(&mut key)) == key_len as usize);
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:116:13
[INFO] [stderr]     |
[INFO] [stderr] 116 |     assert!(try!((&mut r).take(value_len as u64).read_to_string(&mut value)) == value_len as usize);
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:125:27
[INFO] [stderr]     |
[INFO] [stderr] 125 |             params.extend(try!(read_pairs(r)).into_iter());
[INFO] [stderr]     |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:134:9
[INFO] [stderr]     |
[INFO] [stderr] 134 |         try!(w.write_all(&[n as u8]));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:140:9
[INFO] [stderr]     |
[INFO] [stderr] 140 |         try!(w.write_all(&buf));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:147:9
[INFO] [stderr]     |
[INFO] [stderr] 147 |         try!(write_len(w, key.len() as u32));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:148:9
[INFO] [stderr]     |
[INFO] [stderr] 148 |         try!(write_len(w, value.len() as u32));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:149:9
[INFO] [stderr]     |
[INFO] [stderr] 149 |         try!(write!(w, "{}{}", key, value));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:163:5
[INFO] [stderr]     |
[INFO] [stderr] 163 |     try!(w.write_all(&[
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:167:5
[INFO] [stderr]     |
[INFO] [stderr] 167 |     try!(w.write_all(content));
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:174:13
[INFO] [stderr]     |
[INFO] [stderr] 174 |     assert!(try!(r.take(HEADER_LEN as u64).read_to_end(&mut header)) == HEADER_LEN);
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:181:13
[INFO] [stderr]     |
[INFO] [stderr] 181 |     assert!(try!(r.take(content_length as u64).read_to_end(&mut content)) == content_length as usize);
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:182:13
[INFO] [stderr]     |
[INFO] [stderr] 182 |     assert!(try!(r.take(padding_length as u64).read_to_end(&mut Vec::with_capacity(padding_length as usize))) == padding_length as usize);
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:203:17
[INFO] [stderr]     |
[INFO] [stderr] 203 |                 try!(write_record(w, 3, request_id, &content));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:206:17
[INFO] [stderr]     |
[INFO] [stderr] 206 |                 try!(write_record(w, 6, request_id, &content));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:209:17
[INFO] [stderr]     |
[INFO] [stderr] 209 |                 try!(write_record(w, 7, request_id, &content));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:213:17
[INFO] [stderr]     |
[INFO] [stderr] 213 |                 try!(write_pairs(&mut content, items));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:214:17
[INFO] [stderr]     |
[INFO] [stderr] 214 |                 try!(write_record(w, 10, 0, &content.into_inner()));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:218:17
[INFO] [stderr]     |
[INFO] [stderr] 218 |                 try!(write_record(w, 11, 0, &content));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:226:50
[INFO] [stderr]     |
[INFO] [stderr] 226 |         let (record_type, request_id, content) = try!(read_record(r));
[INFO] [stderr]     |                                                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:250:29
[INFO] [stderr]     |
[INFO] [stderr] 250 |                 let items = try!(read_pairs(&mut Cursor::new(content)));
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:287:24
[INFO] [stderr]     |
[INFO] [stderr] 287 |                 match (try!(Record::receive(&mut sock)), self.req.filter_data) {
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:289:25
[INFO] [stderr]     |
[INFO] [stderr] 289 |                         try!(Record::UnknownType(rec_type).send(&mut sock));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:292:25
[INFO] [stderr]     |
[INFO] [stderr] 292 |                         try!(
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:298:25
[INFO] [stderr]     |
[INFO] [stderr] 298 |                         try!(Record::EndRequest {
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:341:13
[INFO] [stderr]     |
[INFO] [stderr] 341 |             try!(chunk.read(buf))
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:340:29
[INFO] [stderr]     |
[INFO] [stderr] 340 |             let mut chunk = try!(self.fill_buf());
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:367:25
[INFO] [stderr]     |
[INFO] [stderr] 367 |                         try!(rec.send(&mut &*self.req.sock));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] ...
[INFO] [stderr] 380 | writer!(Stdout);
[INFO] [stderr]     | --------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:367:25
[INFO] [stderr]     |
[INFO] [stderr] 367 |                         try!(rec.send(&mut &*self.req.sock));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] ...
[INFO] [stderr] 382 | writer!(Stderr);
[INFO] [stderr]     | --------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:419:19
[INFO] [stderr]     |
[INFO] [stderr] 419 |             match try!(Record::receive(&mut sock)) {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:421:21
[INFO] [stderr]     |
[INFO] [stderr] 421 |                     try!(Record::UnknownType(rec_type).send(&mut sock));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:424:21
[INFO] [stderr]     |
[INFO] [stderr] 424 |                     try!(Record::GetValuesResult(get_values(keys)).send(&mut sock));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:430:21
[INFO] [stderr]     |
[INFO] [stderr] 430 |                     try!(Record::EndRequest {
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:446:19
[INFO] [stderr]     |
[INFO] [stderr] 446 |             match try!(Record::receive(&mut &*sock)) {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:448:21
[INFO] [stderr]     |
[INFO] [stderr] 448 |                     try!(Record::UnknownType(rec_type).send(&mut &*sock));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:451:21
[INFO] [stderr]     |
[INFO] [stderr] 451 |                     try!(
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:457:21
[INFO] [stderr]     |
[INFO] [stderr] 457 |                     try!(Record::EndRequest {
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:477:39
[INFO] [stderr]     |
[INFO] [stderr] 477 |                         params.extend(try!(read_pairs(&mut Cursor::new(&buf))));
[INFO] [stderr]     |                                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:403:27
[INFO] [stderr]     |
[INFO] [stderr] 403 | pub type Params<'a> = Box<Iterator<Item = (String, String)> + 'a>;
[INFO] [stderr]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 403 | pub type Params<'a> = Box<dyn Iterator<Item = (String, String)> + 'a>;
[INFO] [stderr]     |                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/lib.rs:132:24
[INFO] [stderr]     |
[INFO] [stderr] 132 | fn write_len<W: Write>(mut w: &mut W, n: u32) -> io::Result<()> {
[INFO] [stderr]     |                        ----^
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/lib.rs:138:13
[INFO] [stderr]     |
[INFO] [stderr] 138 |             mem::transmute::<u32, [u8; 4]>((0x80000000 & n).to_be())
[INFO] [stderr]     |             ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: replace this with: `u32::to_ne_bytes`
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stderr]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/lib.rs:158:9
[INFO] [stderr]     |
[INFO] [stderr] 158 |         mem::transmute::<_, [u8; 2]>(request_id.to_be())
[INFO] [stderr]     |         ----------------------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: replace this with: `u16::to_ne_bytes`
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/lib.rs:161:9
[INFO] [stderr]     |
[INFO] [stderr] 161 |         mem::transmute::<_, [u8; 2]>((content.len() as u16).to_be())
[INFO] [stderr]     |         ----------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: replace this with: `u16::to_ne_bytes`
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/lib.rs:177:44
[INFO] [stderr]     |
[INFO] [stderr] 177 |     let request_id = unsafe { u16::from_be(mem::transmute([header[2], header[3]])) };
[INFO] [stderr]     |                                            --------------^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                                            |
[INFO] [stderr]     |                                            help: replace this with: `u16::from_ne_bytes`
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/lib.rs:178:48
[INFO] [stderr]     |
[INFO] [stderr] 178 |     let content_length = unsafe { u16::from_be(mem::transmute([header[4], header[5]])) };
[INFO] [stderr]     |                                                --------------^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                                                |
[INFO] [stderr]     |                                                help: replace this with: `u16::from_ne_bytes`
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/lib.rs:191:21
[INFO] [stderr]     |
[INFO] [stderr] 191 |                     mem::transmute::<_, [u8; 4]>(app_status.to_be())
[INFO] [stderr]     |                     ----------------------------^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: replace this with: `i32::to_ne_bytes`
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/lib.rs:230:34
[INFO] [stderr]     |
[INFO] [stderr] 230 |                     u16::from_be(mem::transmute([content[0], content[1]]))
[INFO] [stderr]     |                                  --------------^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                                  |
[INFO] [stderr]     |                                  help: replace this with: `u16::from_ne_bytes`
[INFO] [stderr]     |
[INFO] [stderr]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/lib.rs:510:19
[INFO] [stderr]     |
[INFO] [stderr] 510 |     pub fn params(&self) -> Params {
[INFO] [stderr]     |                   ^^^^^     ------ the same lifetime is hidden here
[INFO] [stderr]     |                   |
[INFO] [stderr]     |                   the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 510 |     pub fn params(&self) -> Params<'_> {
[INFO] [stderr]     |                                   ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/lib.rs:515:18
[INFO] [stderr]     |
[INFO] [stderr] 515 |     pub fn stdin(&mut self) -> Stdin {
[INFO] [stderr]     |                  ^^^^^^^^^     ----- the same lifetime is hidden here
[INFO] [stderr]     |                  |
[INFO] [stderr]     |                  the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 515 |     pub fn stdin(&mut self) -> Stdin<'_> {
[INFO] [stderr]     |                                     ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/lib.rs:520:19
[INFO] [stderr]     |
[INFO] [stderr] 520 |     pub fn stdout(&mut self) -> Stdout {
[INFO] [stderr]     |                   ^^^^^^^^^     ------ the same lifetime is hidden here
[INFO] [stderr]     |                   |
[INFO] [stderr]     |                   the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 520 |     pub fn stdout(&mut self) -> Stdout<'_> {
[INFO] [stderr]     |                                       ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/lib.rs:525:19
[INFO] [stderr]     |
[INFO] [stderr] 525 |     pub fn stderr(&mut self) -> Stderr {
[INFO] [stderr]     |                   ^^^^^^^^^     ------ the same lifetime is hidden here
[INFO] [stderr]     |                   |
[INFO] [stderr]     |                   the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 525 |     pub fn stderr(&mut self) -> Stderr<'_> {
[INFO] [stderr]     |                                       ++++
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/lib.rs:578:30
[INFO] [stderr]     |
[INFO] [stderr] 578 |             Err(e) => panic!(e.to_string()),
[INFO] [stderr]     |                              ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stderr] help: add a "{}" format string to `Display` the message
[INFO] [stderr]     |
[INFO] [stderr] 578 |             Err(e) => panic!("{}", e.to_string()),
[INFO] [stderr]     |                              +++++
[INFO] [stderr] 
[INFO] [stderr] warning: `fastcgi` (lib) generated 56 warnings (run `cargo fix --lib -p fastcgi` to apply 14 suggestions)
[INFO] [stderr]     Scraping fastcgi v1.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]  Documenting fastcgi v1.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.64s
[INFO] [stderr]    Generated /opt/rustwide/target/x86_64-unknown-linux-gnu/doc/fastcgi/index.html
[INFO] running `Command { std: "docker" "inspect" "bcdeb9a73e68f130f854bd3817073e3b37920c907a16c672b58ffd6ddb0800d4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bcdeb9a73e68f130f854bd3817073e3b37920c907a16c672b58ffd6ddb0800d4", kill_on_drop: false }`
[INFO] [stdout] bcdeb9a73e68f130f854bd3817073e3b37920c907a16c672b58ffd6ddb0800d4