[INFO] crate form-data 0.0.5 is already in cache [INFO] documenting form-data-0.0.5 against try#66dfc4e010913fbed0c4ea91fc2c010004b0f441 for pr-73566 [INFO] extracting crate form-data 0.0.5 into /workspace/builds/worker-9/source [INFO] validating manifest of crates.io crate form-data 0.0.5 on toolchain 66dfc4e010913fbed0c4ea91fc2c010004b0f441 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+66dfc4e010913fbed0c4ea91fc2c010004b0f441" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking crates.io crate form-data 0.0.5 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate form-data 0.0.5 [INFO] tweaked toml for crates.io crate form-data 0.0.5 written to /workspace/builds/worker-9/source/Cargo.toml [INFO] crate crates.io crate form-data 0.0.5 already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+66dfc4e010913fbed0c4ea91fc2c010004b0f441" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:819119df93c0f5eca3f29186f14981ef29945a311854d7222af07488600a2584" "/opt/rustwide/cargo-home/bin/cargo" "+66dfc4e010913fbed0c4ea91fc2c010004b0f441" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 07ce335f15ad492361035ed7fb9ce430157e70d8828415a8ca59f123e117df5e [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "07ce335f15ad492361035ed7fb9ce430157e70d8828415a8ca59f123e117df5e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "07ce335f15ad492361035ed7fb9ce430157e70d8828415a8ca59f123e117df5e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "07ce335f15ad492361035ed7fb9ce430157e70d8828415a8ca59f123e117df5e", kill_on_drop: false }` [INFO] [stdout] 07ce335f15ad492361035ed7fb9ce430157e70d8828415a8ca59f123e117df5e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:819119df93c0f5eca3f29186f14981ef29945a311854d7222af07488600a2584" "/opt/rustwide/cargo-home/bin/cargo" "+66dfc4e010913fbed0c4ea91fc2c010004b0f441" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] fbcd67bd92abdd83b80faba298c78e74f22cec8057143ab3029e5d002135be81 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "fbcd67bd92abdd83b80faba298c78e74f22cec8057143ab3029e5d002135be81", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Compiling proc-macro2 v1.0.18 [INFO] [stderr] Compiling syn v1.0.31 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Checking slab v0.4.2 [INFO] [stderr] Checking futures-core v0.3.5 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Checking futures-io v0.3.5 [INFO] [stderr] Compiling httparse v1.3.4 [INFO] [stderr] Checking unchecked-index v0.2.2 [INFO] [stderr] Checking scoped-tls-hkt v0.1.2 [INFO] [stderr] Checking itoa v0.4.5 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking mime-db v0.1.5 [INFO] [stderr] Checking anyhow v1.0.31 [INFO] [stderr] Checking log v0.4.8 [INFO] [stderr] Checking socket2 v0.3.12 [INFO] [stderr] Checking twoway v0.2.1 [INFO] [stderr] Checking http v0.2.1 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling memoffset v0.5.4 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Checking crossbeam-queue v0.2.3 [INFO] [stderr] Checking crossbeam-deque v0.7.3 [INFO] [stderr] Compiling pin-project-internal v0.4.20 [INFO] [stderr] Compiling thiserror-impl v1.0.19 [INFO] [stderr] Checking thiserror v1.0.19 [INFO] [stderr] Checking pin-project v0.4.20 [INFO] [stderr] Checking futures-util v0.3.5 [INFO] [stderr] Checking piper v0.1.3 [INFO] [stderr] Checking smol v0.1.11 [INFO] [stderr] Documenting form-data v0.0.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: missing documentation for a struct [INFO] [stdout] --> src/field.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Field { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | #![warn(missing_docs, missing_doc_code_examples, unreachable_pub)] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> src/field.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub name: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> src/field.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub index: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> src/field.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | pub filename: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> src/field.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub content_type: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> src/field.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub headers: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct field [INFO] [stdout] --> src/field.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub length: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/field.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn empty() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/field.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn headers_mut(&mut self) -> &mut Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/field.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn state_mut(&mut self) -> &mut Option>>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/field.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | pub fn state(&self) -> Result>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/field.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn consumed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct [INFO] [stdout] --> src/form.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct FormData { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/form.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new>(b: B, t: T) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/form.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn state(&self) -> Arc>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/form.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn set_max_buf_size(&mut self, max: usize) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct [INFO] [stdout] --> src/state.rs:81:1 [INFO] [stdout] | [INFO] [stdout] 81 | pub struct State { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/state.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn new>(b: B, io: T) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/state.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn set_max_buf_size(&mut self, max: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/state.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | pub fn io_mut(&mut self) -> &mut T { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/state.rs:125:5 [INFO] [stdout] | [INFO] [stdout] 125 | pub fn waker(&self) -> Option<&Waker> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/state.rs:129:5 [INFO] [stdout] | [INFO] [stdout] 129 | pub fn waker_mut(&mut self) -> &mut Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/state.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | pub fn buffer(&self) -> &BytesMut { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/state.rs:137:5 [INFO] [stdout] | [INFO] [stdout] 137 | pub fn buffer_mut(&mut self) -> &mut BytesMut { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/state.rs:141:5 [INFO] [stdout] | [INFO] [stdout] 141 | pub fn buffer_split(&mut self, n: usize) -> Bytes { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/state.rs:145:5 [INFO] [stdout] | [INFO] [stdout] 145 | pub fn buffer_drop(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/state.rs:151:5 [INFO] [stdout] | [INFO] [stdout] 151 | pub fn eof(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/state.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | pub fn incr_index(&mut self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/state.rs:162:5 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn len(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/state.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 166 | pub fn total(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a constant [INFO] [stdout] --> src/lib.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub const MAX_HEADERS: usize = 8 * 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/lib.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / //! Read/write `multipart/form-data`, implemented rfc7578 [INFO] [stdout] 2 | | //! Supports `Stream`, `Future`, `AsyncRead`, `AsyncWrite` [INFO] [stdout] 3 | | //! [INFO] [stdout] 4 | | //! AsyncRead limit 8KB. [INFO] [stdout] ... | [INFO] [stdout] 12 | | //! https://github.com/jaydenseric/graphql-multipart-request-spec [INFO] [stdout] 13 | | //! https://ec.haxx.se/http/http-multipart [INFO] [stdout] | |______________________________________________^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:17:23 [INFO] [stdout] | [INFO] [stdout] 17 | #![warn(missing_docs, missing_doc_code_examples, unreachable_pub)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | / pub struct Field { [INFO] [stdout] 20 | | pub name: String, [INFO] [stdout] 21 | | pub index: Option, [INFO] [stdout] 22 | | pub filename: Option, [INFO] [stdout] ... | [INFO] [stdout] 26 | | state: Option>>>, [INFO] [stdout] 27 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub name: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub index: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | pub filename: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub content_type: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub headers: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub length: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | state: Option>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/form.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | / pub struct FormData { [INFO] [stdout] 15 | | state: Arc>>, [INFO] [stdout] 16 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/form.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | state: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:81:1 [INFO] [stdout] | [INFO] [stdout] 81 | / pub struct State { [INFO] [stdout] 82 | | io: T, [INFO] [stdout] 83 | | eof: bool, [INFO] [stdout] 84 | | length: u64, [INFO] [stdout] ... | [INFO] [stdout] 90 | | max_buf_size: usize, [INFO] [stdout] 91 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | io: T, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | eof: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | length: u64, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | cursor: Cursor, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | boundary: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | index: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | waker: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | buffer: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | max_buf_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use std::fmt; [INFO] [stdout] 2 | | use std::fs::File; [INFO] [stdout] 3 | | use std::future::Future; [INFO] [stdout] 4 | | use std::io::{IoSlice, IoSliceMut, Write}; [INFO] [stdout] ... | [INFO] [stdout] 195 | | } [INFO] [stdout] 196 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | / impl Field { [INFO] [stdout] 30 | | pub fn empty() -> Self { [INFO] [stdout] 31 | | Self { [INFO] [stdout] 32 | | name: String::new(), [INFO] [stdout] ... | [INFO] [stdout] 114 | | } [INFO] [stdout] 115 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | / pub fn empty() -> Self { [INFO] [stdout] 31 | | Self { [INFO] [stdout] 32 | | name: String::new(), [INFO] [stdout] 33 | | content_type: None, [INFO] [stdout] ... | [INFO] [stdout] 39 | | } [INFO] [stdout] 40 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | / pub fn headers_mut(&mut self) -> &mut Option { [INFO] [stdout] 43 | | &mut self.headers [INFO] [stdout] 44 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / pub fn state_mut(&mut self) -> &mut Option>>> { [INFO] [stdout] 47 | | &mut self.state [INFO] [stdout] 48 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | / pub fn state(&self) -> Result>> { [INFO] [stdout] 51 | | self.state [INFO] [stdout] 52 | | .as_ref() [INFO] [stdout] 53 | | .unwrap() [INFO] [stdout] 54 | | .try_lock() [INFO] [stdout] 55 | | .map_err(|e| anyhow!(e.to_string())) [INFO] [stdout] 56 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | / pub fn consumed(&self) -> bool { [INFO] [stdout] 59 | | self.state.is_none() [INFO] [stdout] 60 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | /// Reads field data to bytes [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | / /// Copys large buffer to AsyncRead, hyper can support large buffer, [INFO] [stdout] 77 | | /// 8KB <= buffer <= 512KB, so if we want to handle large buffer. [INFO] [stdout] 78 | | /// `Form::set_max_buf_size(512 * 1024);` [INFO] [stdout] 79 | | /// 3~4x performance improvement over the 8KB limitation of AsyncRead. [INFO] [stdout] | |__________________________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | / /// Copys large buffer to File, hyper can support large buffer, [INFO] [stdout] 97 | | /// 8KB <= buffer <= 512KB, so if we want to handle large buffer. [INFO] [stdout] 98 | | /// `Form::set_max_buf_size(512 * 1024);` [INFO] [stdout] 99 | | /// 4x+ performance improvement over the 8KB limitation of AsyncRead. [INFO] [stdout] | |_________________________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/form.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use std::pin::Pin; [INFO] [stdout] 2 | | use std::sync::{Arc, Mutex}; [INFO] [stdout] 3 | | use std::task::{Context, Poll}; [INFO] [stdout] 4 | | [INFO] [stdout] ... | [INFO] [stdout] 93 | | } [INFO] [stdout] 94 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/form.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | / impl FormData { [INFO] [stdout] 19 | | pub fn new>(b: B, t: T) -> Self { [INFO] [stdout] 20 | | // @TODO: check boundary max size [INFO] [stdout] 21 | | Self { [INFO] [stdout] ... | [INFO] [stdout] 36 | | } [INFO] [stdout] 37 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/form.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | / pub fn new>(b: B, t: T) -> Self { [INFO] [stdout] 20 | | // @TODO: check boundary max size [INFO] [stdout] 21 | | Self { [INFO] [stdout] 22 | | state: Arc::new(Mutex::new(State::new(b, t))), [INFO] [stdout] 23 | | } [INFO] [stdout] 24 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/form.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / pub fn state(&self) -> Arc>> { [INFO] [stdout] 27 | | self.state.clone() [INFO] [stdout] 28 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/form.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | / pub fn set_max_buf_size(&mut self, max: usize) -> Result<()> { [INFO] [stdout] 31 | | self.state [INFO] [stdout] 32 | | .try_lock() [INFO] [stdout] 33 | | .map_err(|e| anyhow!(e.to_string()))? [INFO] [stdout] 34 | | .set_max_buf_size(max); [INFO] [stdout] 35 | | Ok(()) [INFO] [stdout] 36 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use std::fmt; [INFO] [stdout] 2 | | use std::pin::Pin; [INFO] [stdout] 3 | | use std::task::{Context, Poll, Waker}; [INFO] [stdout] 4 | | [INFO] [stdout] ... | [INFO] [stdout] 371 | | } [INFO] [stdout] 372 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | / struct Cursor { [INFO] [stdout] 18 | | z: bool, [INFO] [stdout] 19 | | flag: Flag, [INFO] [stdout] 20 | | x: Option, [INFO] [stdout] ... | [INFO] [stdout] 23 | | crlf_d_b_d_crlf: Vec, [INFO] [stdout] 24 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | z: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | flag: Flag, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | x: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | y: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | crlf_d_b_crlf: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | crlf_d_b_d_crlf: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | / enum Flag { [INFO] [stdout] 13 | | Header, [INFO] [stdout] 14 | | Body, [INFO] [stdout] 15 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | Header, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | Body, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | / impl Cursor { [INFO] [stdout] 27 | | pub(crate) fn new(boundary: Vec) -> Self { [INFO] [stdout] 28 | | // `\r\n--boundary\r\n` [INFO] [stdout] 29 | | let mut crlf_d_b_crlf = boundary.clone(); [INFO] [stdout] ... | [INFO] [stdout] 54 | | } [INFO] [stdout] 55 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | / pub(crate) fn new(boundary: Vec) -> Self { [INFO] [stdout] 28 | | // `\r\n--boundary\r\n` [INFO] [stdout] 29 | | let mut crlf_d_b_crlf = boundary.clone(); [INFO] [stdout] 30 | | crlf_d_b_crlf.insert(0, DASH); [INFO] [stdout] ... | [INFO] [stdout] 53 | | } [INFO] [stdout] 54 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:93:1 [INFO] [stdout] | [INFO] [stdout] 93 | / impl State { [INFO] [stdout] 94 | | pub fn new>(b: B, io: T) -> Self { [INFO] [stdout] 95 | | // `boundary` [INFO] [stdout] 96 | | let boundary = b.as_ref().to_owned(); [INFO] [stdout] ... | [INFO] [stdout] 195 | | } [INFO] [stdout] 196 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | / pub fn new>(b: B, io: T) -> Self { [INFO] [stdout] 95 | | // `boundary` [INFO] [stdout] 96 | | let boundary = b.as_ref().to_owned(); [INFO] [stdout] 97 | | let cursor = Cursor::new(boundary.to_owned()); [INFO] [stdout] ... | [INFO] [stdout] 109 | | } [INFO] [stdout] 110 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | / pub fn set_max_buf_size(&mut self, max: usize) { [INFO] [stdout] 113 | | assert!( [INFO] [stdout] 114 | | max >= DEFAULT_BUF_SIZE, [INFO] [stdout] 115 | | "The max_buf_size cannot be smaller than {}.", [INFO] [stdout] ... | [INFO] [stdout] 118 | | self.max_buf_size = max; [INFO] [stdout] 119 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | / pub fn io_mut(&mut self) -> &mut T { [INFO] [stdout] 122 | | &mut self.io [INFO] [stdout] 123 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:125:5 [INFO] [stdout] | [INFO] [stdout] 125 | / pub fn waker(&self) -> Option<&Waker> { [INFO] [stdout] 126 | | self.waker.as_ref() [INFO] [stdout] 127 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:129:5 [INFO] [stdout] | [INFO] [stdout] 129 | / pub fn waker_mut(&mut self) -> &mut Option { [INFO] [stdout] 130 | | &mut self.waker [INFO] [stdout] 131 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | / pub fn buffer(&self) -> &BytesMut { [INFO] [stdout] 134 | | self.buffer.as_ref().unwrap() [INFO] [stdout] 135 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:137:5 [INFO] [stdout] | [INFO] [stdout] 137 | / pub fn buffer_mut(&mut self) -> &mut BytesMut { [INFO] [stdout] 138 | | self.buffer.as_mut().unwrap() [INFO] [stdout] 139 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:141:5 [INFO] [stdout] | [INFO] [stdout] 141 | / pub fn buffer_split(&mut self, n: usize) -> Bytes { [INFO] [stdout] 142 | | self.buffer_mut().split_to(n).freeze() [INFO] [stdout] 143 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:145:5 [INFO] [stdout] | [INFO] [stdout] 145 | / pub fn buffer_drop(&mut self) { [INFO] [stdout] 146 | | if let Some(b) = self.buffer.take() { [INFO] [stdout] 147 | | drop(b); [INFO] [stdout] 148 | | } [INFO] [stdout] 149 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:151:5 [INFO] [stdout] | [INFO] [stdout] 151 | / pub fn eof(&self) -> bool { [INFO] [stdout] 152 | | self.eof [INFO] [stdout] 153 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | / pub fn incr_index(&mut self) -> usize { [INFO] [stdout] 156 | | let total = self.index.get_or_insert_with(|| 0); [INFO] [stdout] 157 | | let index = *total; [INFO] [stdout] 158 | | *total += 1; [INFO] [stdout] 159 | | index [INFO] [stdout] 160 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:162:5 [INFO] [stdout] | [INFO] [stdout] 162 | / pub fn len(&self) -> u64 { [INFO] [stdout] 163 | | self.length [INFO] [stdout] 164 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 166 | / pub fn total(&self) -> usize { [INFO] [stdout] 167 | | self.index.unwrap_or_default() [INFO] [stdout] 168 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:170:5 [INFO] [stdout] | [INFO] [stdout] 170 | /// `boundary` [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:175:5 [INFO] [stdout] | [INFO] [stdout] 175 | /// `\r\n--boundary\r\n` [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:180:5 [INFO] [stdout] | [INFO] [stdout] 180 | /// 6: `\r\n--\r\n` [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:186:5 [INFO] [stdout] | [INFO] [stdout] 186 | /// `\r\n--boundary--\r\n` [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 191 | /// 8: `\r\n----\r\n` [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/utils.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use anyhow::{anyhow, Result}; [INFO] [stdout] 2 | | [INFO] [stdout] 3 | | use http::header::{HeaderMap, HeaderName, HeaderValue}; [INFO] [stdout] 4 | | use httparse::{parse_headers, Status, EMPTY_HEADER}; [INFO] [stdout] ... | [INFO] [stdout] 138 | | Err(anyhow!("invalid content disposition")) [INFO] [stdout] 139 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/utils.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | / pub(crate) fn read_until(b: &[u8], sub: &[u8]) -> Option { [INFO] [stdout] 19 | | twoway::find_bytes(b, sub) [INFO] [stdout] 20 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/utils.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / pub(crate) fn parse_content_type(header: Option<&http::HeaderValue>) -> Option { [INFO] [stdout] 23 | | header [INFO] [stdout] 24 | | .and_then(|val| val.to_str().ok()) [INFO] [stdout] 25 | | .and_then(|val| val.parse::().ok()) [INFO] [stdout] 26 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/utils.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | / pub(crate) fn parse_part_headers(bytes: &[u8]) -> Result { [INFO] [stdout] 29 | | let mut headers = [EMPTY_HEADER; crate::MAX_HEADERS]; [INFO] [stdout] 30 | | match parse_headers(&bytes, &mut headers) { [INFO] [stdout] 31 | | Ok(Status::Complete((_, hs))) => { [INFO] [stdout] ... | [INFO] [stdout] 44 | | } [INFO] [stdout] 45 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/utils.rs:47:1 [INFO] [stdout] | [INFO] [stdout] 47 | / pub(crate) fn parse_content_disposition(hv: &[u8]) -> Result<(String, Option)> { [INFO] [stdout] 48 | | if hv.len() < 20 { [INFO] [stdout] 49 | | return Err(anyhow!("invalid content disposition")); [INFO] [stdout] 50 | | } [INFO] [stdout] ... | [INFO] [stdout] 138 | | Err(anyhow!("invalid content disposition")) [INFO] [stdout] 139 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/utils.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | const NAME: &[u8; 4] = b"name"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/utils.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | const FILE_NAME: &[u8; 8] = b"filename"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/utils.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | const FORM_DATA: &[u8; 9] = b"form-data"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/utils.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) const CR: u8 = b'\r'; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/utils.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub(crate) const LF: u8 = b'\n'; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/utils.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub(crate) const DASH: u8 = b'-'; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/utils.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub(crate) const CRLF: &[u8; 2] = &[CR, LF]; // `\r\n` [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/utils.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | pub(crate) const CRLFCRLF: &[u8; 4] = &[CR, LF, CR, LF]; // `\r\n\r\n` [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/utils.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | pub(crate) const CRLF_DASH_DASH: &[u8; 4] = &[CR, LF, DASH, DASH]; // `\r\n--` [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/utils.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | pub(crate) const DEFAULT_BUF_SIZE: usize = 8 * 1024; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/lib.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub const MAX_HEADERS: usize = 8 * 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:117:1 [INFO] [stdout] | [INFO] [stdout] 117 | / impl fmt::Debug for Field { [INFO] [stdout] 118 | | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 119 | | f.debug_struct("Field") [INFO] [stdout] 120 | | .field("name", &self.name) [INFO] [stdout] ... | [INFO] [stdout] 128 | | } [INFO] [stdout] 129 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 118 | / fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 119 | | f.debug_struct("Field") [INFO] [stdout] 120 | | .field("name", &self.name) [INFO] [stdout] 121 | | .field("filename", &self.filename) [INFO] [stdout] ... | [INFO] [stdout] 127 | | .finish() [INFO] [stdout] 128 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:57:1 [INFO] [stdout] | [INFO] [stdout] 57 | / impl fmt::Debug for Cursor { [INFO] [stdout] 58 | | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 59 | | f.debug_struct("Cursor") [INFO] [stdout] 60 | | .field("flag", &self.flag) [INFO] [stdout] ... | [INFO] [stdout] 78 | | } [INFO] [stdout] 79 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | / fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 59 | | f.debug_struct("Cursor") [INFO] [stdout] 60 | | .field("flag", &self.flag) [INFO] [stdout] 61 | | .field("x", &self.x) [INFO] [stdout] ... | [INFO] [stdout] 77 | | .finish() [INFO] [stdout] 78 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:198:1 [INFO] [stdout] | [INFO] [stdout] 198 | / impl fmt::Debug for State { [INFO] [stdout] 199 | | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 200 | | f.debug_struct("State") [INFO] [stdout] 201 | | .field("boundary", &String::from_utf8_lossy(self.boundary())) [INFO] [stdout] ... | [INFO] [stdout] 207 | | } [INFO] [stdout] 208 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:199:5 [INFO] [stdout] | [INFO] [stdout] 199 | / fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 200 | | f.debug_struct("State") [INFO] [stdout] 201 | | .field("boundary", &String::from_utf8_lossy(self.boundary())) [INFO] [stdout] 202 | | .field("eof", &self.eof) [INFO] [stdout] ... | [INFO] [stdout] 206 | | .finish() [INFO] [stdout] 207 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:152:1 [INFO] [stdout] | [INFO] [stdout] 152 | /// Reads payload data from part, then yields them [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:159:5 [INFO] [stdout] | [INFO] [stdout] 159 | type Item = Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | / fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { [INFO] [stdout] 162 | | log::debug!( [INFO] [stdout] 163 | | "polling {} {}", [INFO] [stdout] 164 | | self.index.unwrap_or_default(), [INFO] [stdout] ... | [INFO] [stdout] 194 | | } [INFO] [stdout] 195 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/form.rs:39:1 [INFO] [stdout] | [INFO] [stdout] 39 | /// Reads form-data from request payload body, then yields `Field` [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/form.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | type Item = Result>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/form.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | / fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { [INFO] [stdout] 49 | | let state = self.state(); [INFO] [stdout] 50 | | let mut state = state.try_lock().map_err(|e| anyhow!(e.to_string()))?; [INFO] [stdout] 51 | | [INFO] [stdout] ... | [INFO] [stdout] 92 | | } [INFO] [stdout] 93 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:210:1 [INFO] [stdout] | [INFO] [stdout] 210 | / impl Stream for State [INFO] [stdout] 211 | | where [INFO] [stdout] 212 | | T: Stream> + Unpin + Send + 'static, [INFO] [stdout] 213 | | O: Into, [INFO] [stdout] ... | [INFO] [stdout] 371 | | } [INFO] [stdout] 372 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | type Item = Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/state.rs:221:5 [INFO] [stdout] | [INFO] [stdout] 221 | / fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { [INFO] [stdout] 222 | | log::debug!("poll stream"); [INFO] [stdout] 223 | | [INFO] [stdout] 224 | | if self.buffer.is_none() { [INFO] [stdout] ... | [INFO] [stdout] 370 | | } [INFO] [stdout] 371 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:131:1 [INFO] [stdout] | [INFO] [stdout] 131 | /// Reads payload data from part, then puts them to anywhere [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/field.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 138 | / fn poll_read( [INFO] [stdout] 139 | | self: Pin<&mut Self>, [INFO] [stdout] 140 | | cx: &mut Context<'_>, [INFO] [stdout] 141 | | mut buf: &mut [u8], [INFO] [stdout] ... | [INFO] [stdout] 148 | | } [INFO] [stdout] 149 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 132 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 33.71s [INFO] running `Command { std: "docker" "inspect" "fbcd67bd92abdd83b80faba298c78e74f22cec8057143ab3029e5d002135be81", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fbcd67bd92abdd83b80faba298c78e74f22cec8057143ab3029e5d002135be81", kill_on_drop: false }` [INFO] [stdout] fbcd67bd92abdd83b80faba298c78e74f22cec8057143ab3029e5d002135be81