[INFO] updating cached repository https://github.com/andysalerno/toygrep [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune", kill_on_drop: false }` [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 88b72c60212b64a7380fa6342c962de65870b1d1 [INFO] documenting andysalerno/toygrep against try#66dfc4e010913fbed0c4ea91fc2c010004b0f441 for pr-73566 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandysalerno%2Ftoygrep" "/workspace/builds/worker-2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/andysalerno/toygrep 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 git repo https://github.com/andysalerno/toygrep [INFO] finished tweaking git repo https://github.com/andysalerno/toygrep [INFO] tweaked toml for git repo https://github.com/andysalerno/toygrep written to /workspace/builds/worker-2/source/Cargo.toml [INFO] crate git repo https://github.com/andysalerno/toygrep 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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] ad61b6735ae61855531a292ba2580e75628ee2c6645be883bf949b0601137aa9 [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" "ad61b6735ae61855531a292ba2580e75628ee2c6645be883bf949b0601137aa9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ad61b6735ae61855531a292ba2580e75628ee2c6645be883bf949b0601137aa9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ad61b6735ae61855531a292ba2580e75628ee2c6645be883bf949b0601137aa9", kill_on_drop: false }` [INFO] [stdout] ad61b6735ae61855531a292ba2580e75628ee2c6645be883bf949b0601137aa9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] b8bf045caec0fb52acc4689437781eecd9f3b08bd8505f7d8e99078f16fc662a [INFO] running `Command { std: "docker" "start" "-a" "b8bf045caec0fb52acc4689437781eecd9f3b08bd8505f7d8e99078f16fc662a", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.18 [INFO] [stderr] Compiling unicode-xid v0.2.0 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Checking once_cell v1.4.0 [INFO] [stderr] Checking futures-io v0.3.5 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Checking slab v0.4.2 [INFO] [stderr] Checking futures-sink v0.3.5 [INFO] [stderr] Checking scoped-tls-hkt v0.1.2 [INFO] [stderr] Checking termcolor v1.1.0 [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] Checking log v0.4.8 [INFO] [stderr] Checking aho-corasick v0.7.10 [INFO] [stderr] Checking socket2 v0.3.12 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking thread_local v1.0.1 [INFO] [stderr] Checking futures-task v0.3.5 [INFO] [stderr] Checking kv-log-macro v1.0.6 [INFO] [stderr] Checking regex v1.3.9 [INFO] [stderr] Checking crossbeam-queue v0.2.2 [INFO] [stderr] Checking crossbeam-channel v0.4.2 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling syn v1.0.30 [INFO] [stderr] Checking crossbeam-deque v0.7.3 [INFO] [stderr] Compiling pin-project-internal v0.4.20 [INFO] [stderr] Compiling async-attributes v1.1.1 [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] Checking async-std v1.6.0 [INFO] [stderr] Documenting toygrep v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0277]: the trait bound `F: std::future::Future` is not satisfied [INFO] [stdout] --> src/walker.rs:19:32 [INFO] [stdout] | [INFO] [stdout] 19 | async_std::task::spawn(self.action).await; [INFO] [stdout] | ^^^^^^^^^^^ the trait `std::future::Future` is not implemented for `F` [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/async-std-1.6.0/src/task/spawn.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | F: Future + Send + 'static, [INFO] [stdout] | ------------------ required by this bound in `async_std::task::spawn::spawn` [INFO] [stdout] | [INFO] [stdout] help: consider further restricting this bound [INFO] [stdout] | [INFO] [stdout] 12 | where F: Fn() -> Future + Clone + Send + 'static + std::future::Future [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/main.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | //! Documentation in progress. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/main.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | missing_doc_code_examples, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/main.rs:119:1 [INFO] [stdout] | [INFO] [stdout] 119 | / fn format_stats(read_stats: &ReadStats, time_log: &TimeLog) -> String { [INFO] [stdout] 120 | | format!( [INFO] [stdout] 121 | | "\n{} total files visited [INFO] [stdout] 122 | | {} skipped (non-utf8) files [INFO] [stdout] ... | [INFO] [stdout] 162 | | ) [INFO] [stdout] 163 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/arg_parse.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use crate::target::Target; [INFO] [stdout] 2 | | use peeking_take_while::PeekableExt; [INFO] [stdout] 3 | | use std::path::PathBuf; [INFO] [stdout] 4 | | [INFO] [stdout] ... | [INFO] [stdout] 82 | | atty::isnt(atty::Stream::Stdin) [INFO] [stdout] 83 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/arg_parse.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | / pub(crate) struct UserInput { [INFO] [stdout] 7 | | pub(crate) search_pattern: String, [INFO] [stdout] 8 | | [INFO] [stdout] 9 | | pub(crate) whole_word: bool, [INFO] [stdout] ... | [INFO] [stdout] 16 | | pub(crate) stats: bool, [INFO] [stdout] 17 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/arg_parse.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) search_pattern: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/arg_parse.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) whole_word: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/arg_parse.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub(crate) case_insensitive: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/arg_parse.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub(crate) synchronous_printer: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/arg_parse.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub(crate) quiet: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/arg_parse.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub(crate) targets: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/arg_parse.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub(crate) stats: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/arg_parse.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | / pub(crate) fn print_help() { [INFO] [stdout] 20 | | let exec_name: String = { [INFO] [stdout] 21 | | let canonical = PathBuf::from(std::env::args().next().unwrap()); [INFO] [stdout] 22 | | let os_str = canonical.file_name().unwrap(); [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/arg_parse.rs:39:1 [INFO] [stdout] | [INFO] [stdout] 39 | / /// Parses the given arguments, following this expected format: [INFO] [stdout] 40 | | /// toygrep [OPTION]... PATTERN [FILE]... [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `[OPTION]` cannot be resolved, ignoring it. [INFO] [stdout] --> src/arg_parse.rs:40:14 [INFO] [stdout] | [INFO] [stdout] 40 | /// toygrep [OPTION]... PATTERN [FILE]... [INFO] [stdout] | ^^^^^^ cannot be resolved, ignoring [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(intra_doc_link_resolution_failure)]` on by default [INFO] [stdout] = help: to escape `[` and `]` characters, just add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `[FILE]` cannot be resolved, ignoring it. [INFO] [stdout] --> src/arg_parse.rs:40:34 [INFO] [stdout] | [INFO] [stdout] 40 | /// toygrep [OPTION]... PATTERN [FILE]... [INFO] [stdout] | ^^^^ cannot be resolved, ignoring [INFO] [stdout] | [INFO] [stdout] = help: to escape `[` and `]` characters, just add '\' before them like `\[` or `\]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/arg_parse.rs:81:1 [INFO] [stdout] | [INFO] [stdout] 81 | / fn is_stdin_provided() -> bool { [INFO] [stdout] 82 | | atty::isnt(atty::Stream::Stdin) [INFO] [stdout] 83 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / pub(crate) mod async_line_buffer; [INFO] [stdout] 2 | | mod buffer_pool; [INFO] [stdout] 3 | | [INFO] [stdout] 4 | | pub(crate) use buffer_pool::BufferPool; [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / #![allow(clippy::needless_lifetimes)] // needed or else it warns on read_line() (possible clippy bug?) [INFO] [stdout] 2 | | [INFO] [stdout] 3 | | use async_std::prelude::*; [INFO] [stdout] 4 | | use std::collections::VecDeque; [INFO] [stdout] ... | [INFO] [stdout] 547 | | } [INFO] [stdout] 548 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | / pub(crate) struct LineResult<'a> { [INFO] [stdout] 8 | | line_num: usize, [INFO] [stdout] 9 | | text: &'a [u8], [INFO] [stdout] 10 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | line_num: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | text: &'a [u8], [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | / pub(crate) struct AsyncLineBufferBuilder { [INFO] [stdout] 27 | | line_break_byte: u8, [INFO] [stdout] 28 | | start_size_bytes: usize, [INFO] [stdout] 29 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | line_break_byte: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | start_size_bytes: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:61:1 [INFO] [stdout] | [INFO] [stdout] 61 | / /// Strategy: fill as much as you can, [INFO] [stdout] 62 | | /// then read as much as you can; repeat. [INFO] [stdout] 63 | | /// If a whole line doesn't fit, grow buffer. [INFO] [stdout] 64 | | /// An asynchronous line buffer. [INFO] [stdout] ... | [INFO] [stdout] 68 | | /// as the file size (for reasonably sized files) [INFO] [stdout] 69 | | /// so only one read from the file will be necessary. [INFO] [stdout] | |_____________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | /// The internal buffer. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / /// The single byte representing a newline. [INFO] [stdout] 76 | | /// Since strings are utf8, we are expecting [INFO] [stdout] 77 | | /// this has a unique single-byte value [INFO] [stdout] 78 | | /// (`\n` fulfills this property). [INFO] [stdout] | |______________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | / /// The locations within the buffer [INFO] [stdout] 82 | | /// (relative to the beginning) [INFO] [stdout] 83 | | /// where line breaks are known to exist. [INFO] [stdout] 84 | | /// Will always be in increasing order. [INFO] [stdout] | |___________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | / /// The index of the first unconsumed byte [INFO] [stdout] 88 | | /// in the buffer. [INFO] [stdout] 89 | | /// E.x: say the buffer has the word "hello\n" populating [INFO] [stdout] 90 | | /// indexes 0-5. [INFO] [stdout] ... | [INFO] [stdout] 94 | | /// directly after this slice, such that a subsequent call will return [INFO] [stdout] 95 | | /// a slice of the next newline. [INFO] [stdout] | |____________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:98:5 [INFO] [stdout] | [INFO] [stdout] 98 | / /// The first position in the buffer outside [INFO] [stdout] 99 | | /// of our written segment. [INFO] [stdout] 100 | | /// E.g., if our written segment has len 0, this is 0. [INFO] [stdout] | |__________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:234:1 [INFO] [stdout] | [INFO] [stdout] 234 | / pub(crate) struct AsyncLineBufferReader [INFO] [stdout] 235 | | where [INFO] [stdout] 236 | | R: async_std::io::Read + std::marker::Unpin, [INFO] [stdout] 237 | | { [INFO] [stdout] ... | [INFO] [stdout] 241 | | is_line_nums_enabled: bool, [INFO] [stdout] 242 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:238:5 [INFO] [stdout] | [INFO] [stdout] 238 | line_buffer: AsyncLineBuffer, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:239:5 [INFO] [stdout] | [INFO] [stdout] 239 | reader: R, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:240:5 [INFO] [stdout] | [INFO] [stdout] 240 | lines_read: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:241:5 [INFO] [stdout] | [INFO] [stdout] 241 | is_line_nums_enabled: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | / impl<'a> LineResult<'a> { [INFO] [stdout] 13 | | fn new(text: &'a [u8], line_num: usize) -> Self { [INFO] [stdout] 14 | | Self { line_num, text } [INFO] [stdout] 15 | | } [INFO] [stdout] ... | [INFO] [stdout] 23 | | } [INFO] [stdout] 24 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / fn new(text: &'a [u8], line_num: usize) -> Self { [INFO] [stdout] 14 | | Self { line_num, text } [INFO] [stdout] 15 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | / pub(crate) fn line_num(&self) -> usize { [INFO] [stdout] 18 | | self.line_num [INFO] [stdout] 19 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / pub(crate) fn text(&self) -> &[u8] { [INFO] [stdout] 22 | | &self.text [INFO] [stdout] 23 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | / impl AsyncLineBufferBuilder { [INFO] [stdout] 32 | | pub(crate) fn new() -> Self { [INFO] [stdout] 33 | | Self { [INFO] [stdout] 34 | | line_break_byte: b'\n', [INFO] [stdout] ... | [INFO] [stdout] 58 | | } [INFO] [stdout] 59 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | / pub(crate) fn new() -> Self { [INFO] [stdout] 33 | | Self { [INFO] [stdout] 34 | | line_break_byte: b'\n', [INFO] [stdout] 35 | | start_size_bytes: 8 * (1 << 10), [INFO] [stdout] 36 | | } [INFO] [stdout] 37 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | / pub(crate) fn with_line_break_byte(mut self, line_break_byte: u8) -> Self { [INFO] [stdout] 40 | | self.line_break_byte = line_break_byte; [INFO] [stdout] 41 | | self [INFO] [stdout] 42 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | / pub(crate) fn with_start_size_bytes(mut self, start_size_bytes: usize) -> Self { [INFO] [stdout] 45 | | self.start_size_bytes = start_size_bytes; [INFO] [stdout] 46 | | self [INFO] [stdout] 47 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | / pub(crate) fn build(self) -> AsyncLineBuffer { [INFO] [stdout] 50 | | AsyncLineBuffer { [INFO] [stdout] 51 | | // TODO: experiment with "reserved space" instead of pre-allocating [INFO] [stdout] 52 | | buffer: vec![0u8; self.start_size_bytes], [INFO] [stdout] ... | [INFO] [stdout] 57 | | } [INFO] [stdout] 58 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:104:1 [INFO] [stdout] | [INFO] [stdout] 104 | / impl AsyncLineBuffer { [INFO] [stdout] 105 | | /// Read asynchronously from the reader until the reader [INFO] [stdout] 106 | | /// is exhausted, or the writable portion of this [INFO] [stdout] 107 | | /// buffer has become full. [INFO] [stdout] ... | [INFO] [stdout] 230 | | } [INFO] [stdout] 231 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 105 | / /// Read asynchronously from the reader until the reader [INFO] [stdout] 106 | | /// is exhausted, or the writable portion of this [INFO] [stdout] 107 | | /// buffer has become full. [INFO] [stdout] | |_______________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:142:5 [INFO] [stdout] | [INFO] [stdout] 142 | / /// Refreshes this buffer into a clean state [INFO] [stdout] 143 | | /// so it can be used once again. [INFO] [stdout] | |_____________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:150:5 [INFO] [stdout] | [INFO] [stdout] 150 | / /// Returns a writable slice for the portion [INFO] [stdout] 151 | | /// of the internal buffer that is writable. [INFO] [stdout] 152 | | /// Note that this may have length 0. Invoke `ensure_capacity()` [INFO] [stdout] 153 | | /// to guarantee space is available here. [INFO] [stdout] | |_____________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:158:5 [INFO] [stdout] | [INFO] [stdout] 158 | / fn writable_buffer(&self) -> &[u8] { [INFO] [stdout] 159 | | &self.buffer[self.end..] [INFO] [stdout] 160 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:162:5 [INFO] [stdout] | [INFO] [stdout] 162 | / /// Guarantee the writable portion of the buffer has nonzero length, [INFO] [stdout] 163 | | /// expanding the buffer if necessary. [INFO] [stdout] | |__________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:174:5 [INFO] [stdout] | [INFO] [stdout] 174 | / /// Retrieve a slice containing the next line, [INFO] [stdout] 175 | | /// or None if there is no line in the buffer currently. [INFO] [stdout] | |____________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 191 | / fn consume_remaining(&mut self) -> Option<&[u8]> { [INFO] [stdout] 192 | | if self.start >= self.end { [INFO] [stdout] 193 | | return None; [INFO] [stdout] 194 | | } [INFO] [stdout] ... | [INFO] [stdout] 199 | | Some(remaining) [INFO] [stdout] 200 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:202:5 [INFO] [stdout] | [INFO] [stdout] 202 | / /// Clear out the consumed portion of the buffer [INFO] [stdout] 203 | | /// by rolling the unconsumed content back to the front. [INFO] [stdout] | |____________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:228:5 [INFO] [stdout] | [INFO] [stdout] 228 | / fn has_line(&self) -> bool { [INFO] [stdout] 229 | | !self.line_break_idxs.is_empty() [INFO] [stdout] 230 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:244:1 [INFO] [stdout] | [INFO] [stdout] 244 | / impl AsyncLineBufferReader [INFO] [stdout] 245 | | where [INFO] [stdout] 246 | | R: async_std::io::Read + std::marker::Unpin, [INFO] [stdout] 247 | | { [INFO] [stdout] ... | [INFO] [stdout] 297 | | } [INFO] [stdout] 298 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:248:5 [INFO] [stdout] | [INFO] [stdout] 248 | / pub(crate) fn new(reader: R, line_buffer: AsyncLineBuffer) -> Self { [INFO] [stdout] 249 | | Self { [INFO] [stdout] 250 | | reader, [INFO] [stdout] 251 | | line_buffer, [INFO] [stdout] ... | [INFO] [stdout] 254 | | } [INFO] [stdout] 255 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:257:5 [INFO] [stdout] | [INFO] [stdout] 257 | / pub(crate) fn line_nums(mut self, enabled: bool) -> Self { [INFO] [stdout] 258 | | self.is_line_nums_enabled = enabled; [INFO] [stdout] 259 | | self [INFO] [stdout] 260 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:262:5 [INFO] [stdout] | [INFO] [stdout] 262 | / pub(crate) fn inner_buf_len(&self) -> usize { [INFO] [stdout] 263 | | self.line_buffer.buffer.len() [INFO] [stdout] 264 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:266:5 [INFO] [stdout] | [INFO] [stdout] 266 | / /// `None` if there are no lines remaining to read. [INFO] [stdout] 267 | | /// `Some(Ok(...))` if a line was read and parsed successfully. [INFO] [stdout] 268 | | /// `Some(Err(...))` if a line was read but failed to parse. [INFO] [stdout] | |________________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/async_line_buffer.rs:293:5 [INFO] [stdout] | [INFO] [stdout] 293 | / /// Takes the line buffer from this Reader, [INFO] [stdout] 294 | | /// so it may be used again. Consumes self. [INFO] [stdout] | |_______________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/buffer_pool.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use super::async_line_buffer::{AsyncLineBuffer, AsyncLineBufferBuilder}; [INFO] [stdout] 2 | | use async_std::sync::Mutex; [INFO] [stdout] 3 | | [INFO] [stdout] 4 | | #[derive(Default, Debug)] [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/buffer/buffer_pool.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub(crate) struct BufferPool { [INFO] [stdout] 6 | | pool: Mutex>, [INFO] [stdout] 7 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/buffer_pool.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | pool: Mutex>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/buffer_pool.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / impl BufferPool { [INFO] [stdout] 10 | | /// Get a buffer, either recycling an old one, or [INFO] [stdout] 11 | | /// generating a fresh one. [INFO] [stdout] 12 | | pub(crate) async fn acquire(&self) -> AsyncLineBuffer { [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/buffer/buffer_pool.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / /// Get a buffer, either recycling an old one, or [INFO] [stdout] 11 | | /// generating a fresh one. [INFO] [stdout] | |_______________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/buffer_pool.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | / pub(crate) fn new() -> BufferPool { [INFO] [stdout] 19 | | let pool = Mutex::new((0..4).map(|_| Self::generate_new()).collect()); [INFO] [stdout] 20 | | [INFO] [stdout] 21 | | Self { pool } [INFO] [stdout] 22 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/buffer_pool.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | / pub(crate) async fn return_to_pool(&self, buf: AsyncLineBuffer) { [INFO] [stdout] 25 | | self.pool.lock().await.push(buf); [INFO] [stdout] 26 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/buffer_pool.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | / pub(crate) async fn pool_size(&self) -> usize { [INFO] [stdout] 29 | | self.pool.lock().await.len() [INFO] [stdout] 30 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/buffer_pool.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | / fn generate_new() -> AsyncLineBuffer { [INFO] [stdout] 33 | | AsyncLineBufferBuilder::new().build() [INFO] [stdout] 34 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/buffer/buffer_pool.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | / async fn try_get_existing(&self) -> Option { [INFO] [stdout] 37 | | let maybe_buf = self.pool.lock().await.pop(); [INFO] [stdout] 38 | | [INFO] [stdout] 39 | | maybe_buf.and_then(|mut b| { [INFO] [stdout] ... | [INFO] [stdout] 43 | | }) [INFO] [stdout] 44 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/error.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / pub(crate) type Result = std::result::Result; [INFO] [stdout] 2 | | [INFO] [stdout] 3 | | #[derive(Debug)] [INFO] [stdout] 4 | | pub(crate) enum Error { [INFO] [stdout] 5 | | Utf8PrintFail(String), [INFO] [stdout] 6 | | TargetsNotFound(Vec), [INFO] [stdout] 7 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/error.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | / pub(crate) enum Error { [INFO] [stdout] 5 | | Utf8PrintFail(String), [INFO] [stdout] 6 | | TargetsNotFound(Vec), [INFO] [stdout] 7 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/error.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | Utf8PrintFail(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/error.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | TargetsNotFound(Vec), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/error.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub(crate) type Result = std::result::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use regex::bytes::{Regex, RegexBuilder}; [INFO] [stdout] 2 | | [INFO] [stdout] 3 | | #[derive(Debug, Clone)] [INFO] [stdout] 4 | | pub(crate) struct Match { [INFO] [stdout] ... | [INFO] [stdout] 99 | | format!(r"(?:(?m:^)|\W)({})(?:(?m:$)|\W)", pattern) [INFO] [stdout] 100 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | / pub(crate) struct Match { [INFO] [stdout] 5 | | pub(crate) start: usize, [INFO] [stdout] 6 | | pub(crate) stop: usize, [INFO] [stdout] 7 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub(crate) start: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub(crate) stop: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | /// A stub of a Matcher that never finds a match. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | / pub(crate) struct RegexMatcher { [INFO] [stdout] 31 | | regex: Regex, [INFO] [stdout] 32 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | regex: Regex, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:50:1 [INFO] [stdout] | [INFO] [stdout] 50 | / pub(crate) struct RegexMatcherBuilder<'a> { [INFO] [stdout] 51 | | pattern: &'a str, [INFO] [stdout] 52 | | is_case_insensitive: bool, [INFO] [stdout] 53 | | match_whole_word: bool, [INFO] [stdout] 54 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | pattern: &'a str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | is_case_insensitive: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | match_whole_word: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:98:1 [INFO] [stdout] | [INFO] [stdout] 98 | / fn format_word_match(pattern: &str) -> String { [INFO] [stdout] 99 | | format!(r"(?:(?m:^)|\W)({})(?:(?m:$)|\W)", pattern) [INFO] [stdout] 100 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / /// A trait that promises to answer a simple question: [INFO] [stdout] 10 | | /// does the given slice of bytes match a specific pattern? [INFO] [stdout] | |___________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | fn is_match(&self, bytes: &[u8]) -> bool; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | fn find_matches(&self, bytes: &[u8]) -> Vec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:56:1 [INFO] [stdout] | [INFO] [stdout] 56 | / impl<'a> RegexMatcherBuilder<'a> { [INFO] [stdout] 57 | | pub(crate) fn new() -> Self { [INFO] [stdout] 58 | | Self { [INFO] [stdout] 59 | | is_case_insensitive: true, [INFO] [stdout] ... | [INFO] [stdout] 95 | | } [INFO] [stdout] 96 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | / pub(crate) fn new() -> Self { [INFO] [stdout] 58 | | Self { [INFO] [stdout] 59 | | is_case_insensitive: true, [INFO] [stdout] 60 | | match_whole_word: false, [INFO] [stdout] 61 | | pattern: "", [INFO] [stdout] 62 | | } [INFO] [stdout] 63 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | / pub(crate) fn for_pattern(mut self, pattern: &'a str) -> Self { [INFO] [stdout] 66 | | self.pattern = pattern; [INFO] [stdout] 67 | | self [INFO] [stdout] 68 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | / pub(crate) fn case_insensitive(mut self, is_case_insensitive: bool) -> Self { [INFO] [stdout] 71 | | self.is_case_insensitive = is_case_insensitive; [INFO] [stdout] 72 | | self [INFO] [stdout] 73 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / pub(crate) fn match_whole_word(mut self, match_whole_word: bool) -> Self { [INFO] [stdout] 76 | | self.match_whole_word = match_whole_word; [INFO] [stdout] 77 | | self [INFO] [stdout] 78 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | / pub(crate) fn build(self) -> RegexMatcher { [INFO] [stdout] 81 | | let regex = { [INFO] [stdout] 82 | | let with_whole_word = if self.match_whole_word { [INFO] [stdout] 83 | | format_word_match(self.pattern) [INFO] [stdout] ... | [INFO] [stdout] 94 | | RegexMatcher { regex } [INFO] [stdout] 95 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / mod blocking_printer; [INFO] [stdout] 2 | | mod null_printer; [INFO] [stdout] 3 | | mod printer; [INFO] [stdout] 4 | | mod threaded_printer; [INFO] [stdout] ... | [INFO] [stdout] 112 | | } [INFO] [stdout] 113 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | /// A result that can be printed by a printer. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | target_name: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | line_num: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | text: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:56:1 [INFO] [stdout] | [INFO] [stdout] 56 | /// Config values used internally to construct a printer. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | print_line_num: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | group_by_target: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | print_immediately: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:63:1 [INFO] [stdout] | [INFO] [stdout] 63 | / /// A builder for a printer sender, which may be either blocking [INFO] [stdout] 64 | | /// or non-blocking (threaded). [INFO] [stdout] | |_______________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | config: Config, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | matcher: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:42:1 [INFO] [stdout] | [INFO] [stdout] 42 | /// A message that can be sent to a printer for printing. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | Printable(PrintableResult), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | /// Signals to the printer that there will be no more messages for the named target. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | target_name: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | /// Simply a string for displaying. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/blocking_printer.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use super::{PrettyPrinter, PrintMessage}; [INFO] [stdout] 2 | | use crate::matcher::Matcher; [INFO] [stdout] 3 | | use std::sync::Arc; [INFO] [stdout] 4 | | use std::sync::Mutex; [INFO] [stdout] ... | [INFO] [stdout] 22 | | } [INFO] [stdout] 23 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/blocking_printer.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub(super) struct BlockingSender(Arc>>); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/blocking_printer.rs:8:60 [INFO] [stdout] | [INFO] [stdout] 8 | pub(super) struct BlockingSender(Arc>>); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/blocking_printer.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / impl BlockingSender { [INFO] [stdout] 11 | | pub(super) fn new(printer: PrettyPrinter) -> Self { [INFO] [stdout] 12 | | BlockingSender(Arc::new(Mutex::new(printer))) [INFO] [stdout] 13 | | } [INFO] [stdout] 14 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/blocking_printer.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / pub(super) fn new(printer: PrettyPrinter) -> Self { [INFO] [stdout] 12 | | BlockingSender(Arc::new(Mutex::new(printer))) [INFO] [stdout] 13 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/null_printer.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use super::{PrintMessage, PrinterSender}; [INFO] [stdout] 2 | | [INFO] [stdout] 3 | | #[derive(Clone)] [INFO] [stdout] 4 | | pub(super) struct NullPrinter; [INFO] [stdout] ... | [INFO] [stdout] 9 | | } [INFO] [stdout] 10 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/null_printer.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub(super) struct NullPrinter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/printer.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use super::{Config, PrintMessage, PrintableResult}; [INFO] [stdout] 2 | | use crate::error::{Error, Result}; [INFO] [stdout] 3 | | use crate::matcher::Matcher; [INFO] [stdout] 4 | | use std::collections::HashMap; [INFO] [stdout] ... | [INFO] [stdout] 177 | | } [INFO] [stdout] 178 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/printer.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | / /// This module contains the types and logic [INFO] [stdout] 9 | | /// for a printer that can group lines [INFO] [stdout] 10 | | /// and color matching patterns. [INFO] [stdout] 11 | | /// [INFO] [stdout] ... | [INFO] [stdout] 15 | | /// contains a blocking wrapper that can be [INFO] [stdout] 16 | | /// used externally. [INFO] [stdout] | |____________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/printer.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | file_to_matches: HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/printer.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | currently_printing_file: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/printer.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | config: Config, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/printer.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | matcher: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/printer.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | / impl PrettyPrinter { [INFO] [stdout] 26 | | pub(super) fn new(matcher: Option, config: Config) -> Self { [INFO] [stdout] 27 | | Self { [INFO] [stdout] 28 | | matcher, [INFO] [stdout] ... | [INFO] [stdout] 177 | | } [INFO] [stdout] 178 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/printer.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / pub(super) fn new(matcher: Option, config: Config) -> Self { [INFO] [stdout] 27 | | Self { [INFO] [stdout] 28 | | matcher, [INFO] [stdout] 29 | | config, [INFO] [stdout] ... | [INFO] [stdout] 32 | | } [INFO] [stdout] 33 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/printer.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | / pub(super) fn print(&mut self, mut writer: W, message: PrintMessage) [INFO] [stdout] 36 | | where [INFO] [stdout] 37 | | W: Write + WriteColor, [INFO] [stdout] 38 | | { [INFO] [stdout] ... | [INFO] [stdout] 73 | | } [INFO] [stdout] 74 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/printer.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | / fn print_target_results(&mut self, writer: &mut W, name: &str) -> Result<()> [INFO] [stdout] 77 | | where [INFO] [stdout] 78 | | W: Write + WriteColor, [INFO] [stdout] 79 | | { [INFO] [stdout] ... | [INFO] [stdout] 93 | | Ok(()) [INFO] [stdout] 94 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/printer.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | / fn print_line_result(&self, writer: &mut W, printable: PrintableResult) -> Result<()> [INFO] [stdout] 97 | | where [INFO] [stdout] 98 | | W: Write + WriteColor, [INFO] [stdout] 99 | | { [INFO] [stdout] ... | [INFO] [stdout] 113 | | Ok(()) [INFO] [stdout] 114 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/printer.rs:116:5 [INFO] [stdout] | [INFO] [stdout] 116 | / fn print_colorized( [INFO] [stdout] 117 | | line_num_chunk: &str, [INFO] [stdout] 118 | | matcher: &M, [INFO] [stdout] 119 | | writer: &mut W, [INFO] [stdout] ... | [INFO] [stdout] 176 | | } [INFO] [stdout] 177 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/threaded_printer.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use super::{Config, PrettyPrinter, PrintMessage, PrinterSender}; [INFO] [stdout] 2 | | use crate::matcher::Matcher; [INFO] [stdout] 3 | | use crate::time_log::TimeLog; [INFO] [stdout] 4 | | use crossbeam_channel::{Receiver as ChannelReceiver, Sender as ChannelSender}; [INFO] [stdout] ... | [INFO] [stdout] 64 | | } [INFO] [stdout] 65 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/threaded_printer.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / pub(crate) struct Sender { [INFO] [stdout] 10 | | sender: ChannelSender, [INFO] [stdout] 11 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/threaded_printer.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | sender: ChannelSender, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/threaded_printer.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | / /// A simple printer that can be spawned on a separate thread, [INFO] [stdout] 26 | | /// and receive messages to print from the `Sender`. [INFO] [stdout] | |____________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/threaded_printer.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | receiver: ChannelReceiver, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/threaded_printer.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | printer: PrettyPrinter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/threaded_printer.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | / impl Sender { [INFO] [stdout] 14 | | pub(super) fn new(sender: ChannelSender) -> Self { [INFO] [stdout] 15 | | Self { sender } [INFO] [stdout] 16 | | } [INFO] [stdout] 17 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/threaded_printer.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | / pub(super) fn new(sender: ChannelSender) -> Self { [INFO] [stdout] 15 | | Self { sender } [INFO] [stdout] 16 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/threaded_printer.rs:32:1 [INFO] [stdout] | [INFO] [stdout] 32 | / impl Printer { [INFO] [stdout] 33 | | pub(super) fn new( [INFO] [stdout] 34 | | matcher: Option, [INFO] [stdout] 35 | | receiver: ChannelReceiver, [INFO] [stdout] ... | [INFO] [stdout] 64 | | } [INFO] [stdout] 65 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/threaded_printer.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / pub(super) fn new( [INFO] [stdout] 34 | | matcher: Option, [INFO] [stdout] 35 | | receiver: ChannelReceiver, [INFO] [stdout] 36 | | config: Config, [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/threaded_printer.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | / pub(super) fn listen(&mut self) -> TimeLog { [INFO] [stdout] 45 | | let stdout = StandardStream::stdout(ColorChoice::Auto); [INFO] [stdout] 46 | | let mut stdout = stdout.lock(); [INFO] [stdout] 47 | | [INFO] [stdout] ... | [INFO] [stdout] 63 | | time_log [INFO] [stdout] 64 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | /// A trait describing the ability to "send" a message to a printer. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | fn send(&self, message: PrintMessage); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | / impl PrintableResult { [INFO] [stdout] 27 | | pub(crate) fn new(target_name: String, line_num: usize, text: Vec) -> Self { [INFO] [stdout] 28 | | Self { [INFO] [stdout] 29 | | target_name, [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/print.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | / pub(crate) fn new(target_name: String, line_num: usize, text: Vec) -> Self { [INFO] [stdout] 28 | | Self { [INFO] [stdout] 29 | | target_name, [INFO] [stdout] 30 | | line_num, [INFO] [stdout] 31 | | text, [INFO] [stdout] 32 | | } [INFO] [stdout] 33 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | /// Consume `self` and convert the `text` into a utf8 `String`. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:70:1 [INFO] [stdout] | [INFO] [stdout] 70 | / impl Printer { [INFO] [stdout] 71 | | pub(crate) fn make_null(self) -> impl PrinterSender { [INFO] [stdout] 72 | | null_printer::NullPrinter [INFO] [stdout] 73 | | } [INFO] [stdout] ... | [INFO] [stdout] 112 | | } [INFO] [stdout] 113 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | / pub(crate) fn make_null(self) -> impl PrinterSender { [INFO] [stdout] 72 | | null_printer::NullPrinter [INFO] [stdout] 73 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / pub(crate) fn new() -> Self { [INFO] [stdout] 76 | | Self { [INFO] [stdout] 77 | | config: Config { [INFO] [stdout] 78 | | print_line_num: true, [INFO] [stdout] ... | [INFO] [stdout] 83 | | } [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | / pub(crate) fn group_by_target(mut self, should_group: bool) -> Self { [INFO] [stdout] 87 | | self.config.group_by_target = should_group; [INFO] [stdout] 88 | | self [INFO] [stdout] 89 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | / pub(crate) fn print_immediately(mut self, should_print_immediately: bool) -> Self { [INFO] [stdout] 92 | | self.config.print_immediately = should_print_immediately; [INFO] [stdout] 93 | | self [INFO] [stdout] 94 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | / pub(crate) fn with_matcher(mut self, matcher: M) -> Self { [INFO] [stdout] 97 | | self.matcher = Some(matcher); [INFO] [stdout] 98 | | self [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | / pub(crate) fn build_blocking(self) -> impl PrinterSender { [INFO] [stdout] 102 | | blocking_printer::BlockingSender::new(PrettyPrinter::new(self.matcher, self.config)) [INFO] [stdout] 103 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 105 | / pub(crate) fn spawn_threaded(self) -> (impl PrinterSender, std::thread::JoinHandle) { [INFO] [stdout] 106 | | let (sender, receiver) = unbounded(); [INFO] [stdout] 107 | | let sender = crate::print::threaded_printer::Sender::new(sender); [INFO] [stdout] 108 | | let mut printer = [INFO] [stdout] ... | [INFO] [stdout] 111 | | (sender, thread::spawn(move || printer.listen())) [INFO] [stdout] 112 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use crate::buffer::async_line_buffer::{AsyncLineBufferBuilder, AsyncLineBufferReader}; [INFO] [stdout] 2 | | use crate::buffer::BufferPool; [INFO] [stdout] 3 | | use crate::error::{Error, Result}; [INFO] [stdout] 4 | | use crate::matcher::Matcher; [INFO] [stdout] ... | [INFO] [stdout] 320 | | std::str::from_utf8(bytes).is_ok() [INFO] [stdout] 321 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:71:1 [INFO] [stdout] | [INFO] [stdout] 71 | / pub(crate) struct SearcherBuilder [INFO] [stdout] 72 | | where [INFO] [stdout] 73 | | M: Matcher, [INFO] [stdout] 74 | | P: PrinterSender, [INFO] [stdout] ... | [INFO] [stdout] 77 | | printer: P, [INFO] [stdout] 78 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | matcher: M, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | printer: P, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:94:1 [INFO] [stdout] | [INFO] [stdout] 94 | / pub(crate) struct Searcher [INFO] [stdout] 95 | | where [INFO] [stdout] 96 | | M: Matcher + 'static, [INFO] [stdout] 97 | | P: PrinterSender + 'static, [INFO] [stdout] ... | [INFO] [stdout] 100 | | printer: P, [INFO] [stdout] 101 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | matcher: M, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | printer: P, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:319:1 [INFO] [stdout] | [INFO] [stdout] 319 | / fn check_utf8(bytes: &[u8]) -> bool { [INFO] [stdout] 320 | | std::str::from_utf8(bytes).is_ok() [INFO] [stdout] 321 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | / pub(crate) mod stats { [INFO] [stdout] 19 | | use std::time::Duration; [INFO] [stdout] 20 | | [INFO] [stdout] 21 | | #[derive(Debug, Default)] [INFO] [stdout] ... | [INFO] [stdout] 68 | | } [INFO] [stdout] 69 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / pub(crate) struct ReadStats { [INFO] [stdout] 23 | | /// The count of total files encountered during search. [INFO] [stdout] 24 | | /// Includes skipped non-utf8 files. [INFO] [stdout] 25 | | pub(crate) total_files_visited: usize, [INFO] [stdout] ... | [INFO] [stdout] 53 | | pub(crate) buffers_created: usize, [INFO] [stdout] 54 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | / /// The count of total files encountered during search. [INFO] [stdout] 24 | | /// Includes skipped non-utf8 files. [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | / /// Count of files skipped as non-utf8. [INFO] [stdout] 28 | | /// For stats coming from "single file level" reads, this is 1 [INFO] [stdout] 29 | | /// if the file was skipped or 0 if it was not. [INFO] [stdout] 30 | | /// Coming from "aggregate" reads, this will be the count of all [INFO] [stdout] 31 | | /// files skiped at that level of aggregation. [INFO] [stdout] | |______________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | /// How many bytes were checked to determine the file is or is not utf8. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | /// Count of lines that matched during reading. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | /// Count of summed byte-length of lines that matched during reading. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | /// The duration of time spent recursing through the filesystem. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | / /// The duration of time spent searching a reader. [INFO] [stdout] 47 | | /// Might be an aggregated time (if the returning method searches multiple readers) [INFO] [stdout] 48 | | /// or a time for only one reader (if the returning method only searches one reader). [INFO] [stdout] | |_____________________________________________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | pub(crate) max_buffer_size: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | pub(crate) buffers_created: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | / impl ReadStats { [INFO] [stdout] 57 | | pub(super) fn fold_in(&mut self, other: &ReadStats) { [INFO] [stdout] 58 | | self.total_files_visited += other.total_files_visited; [INFO] [stdout] 59 | | self.skipped_files_non_utf8 += other.skipped_files_non_utf8; [INFO] [stdout] ... | [INFO] [stdout] 67 | | } [INFO] [stdout] 68 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | / pub(super) fn fold_in(&mut self, other: &ReadStats) { [INFO] [stdout] 58 | | self.total_files_visited += other.total_files_visited; [INFO] [stdout] 59 | | self.skipped_files_non_utf8 += other.skipped_files_non_utf8; [INFO] [stdout] 60 | | self.non_utf8_bytes_checked += other.non_utf8_bytes_checked; [INFO] [stdout] ... | [INFO] [stdout] 66 | | self.buffers_created += other.buffers_created; [INFO] [stdout] 67 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | const BINARY_CHECK_LEN_BYTES: usize = 512; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:80:1 [INFO] [stdout] | [INFO] [stdout] 80 | / impl SearcherBuilder [INFO] [stdout] 81 | | where [INFO] [stdout] 82 | | M: Matcher, [INFO] [stdout] 83 | | P: PrinterSender, [INFO] [stdout] ... | [INFO] [stdout] 91 | | } [INFO] [stdout] 92 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | / pub(crate) fn new(matcher: M, printer: P) -> SearcherBuilder { [INFO] [stdout] 86 | | Self { matcher, printer } [INFO] [stdout] 87 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | / pub(crate) fn build(self) -> Searcher { [INFO] [stdout] 90 | | Searcher::new(self.matcher, self.printer) [INFO] [stdout] 91 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:103:1 [INFO] [stdout] | [INFO] [stdout] 103 | / impl Searcher [INFO] [stdout] 104 | | where [INFO] [stdout] 105 | | M: Matcher + 'static, [INFO] [stdout] 106 | | P: PrinterSender + 'static, [INFO] [stdout] ... | [INFO] [stdout] 316 | | } [INFO] [stdout] 317 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 108 | / fn new(matcher: M, printer: P) -> Self { [INFO] [stdout] 109 | | Self { matcher, printer } [INFO] [stdout] 110 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | / /// Given some `Target`s, search them using the given `Matcher` [INFO] [stdout] 113 | | /// and send the results to the given `Printer`. [INFO] [stdout] 114 | | /// `Ok` if every target is an available file or directory (or stdin). [INFO] [stdout] 115 | | /// `Err` with a list of failed paths if any of the paths are invalid. [INFO] [stdout] | |__________________________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | / async fn search_via_reader( [INFO] [stdout] 162 | | matcher: M, [INFO] [stdout] 163 | | buffer: &mut AsyncLineBufferReader, [INFO] [stdout] 164 | | name: Option, [INFO] [stdout] ... | [INFO] [stdout] 212 | | stats [INFO] [stdout] 213 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:215:5 [INFO] [stdout] | [INFO] [stdout] 215 | / async fn search_file( [INFO] [stdout] 216 | | path: &Path, [INFO] [stdout] 217 | | matcher: M, [INFO] [stdout] 218 | | printer: P, [INFO] [stdout] ... | [INFO] [stdout] 246 | | search_result [INFO] [stdout] 247 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/search.rs:249:5 [INFO] [stdout] | [INFO] [stdout] 249 | / /// Given a directory path, descend down the whole tree, [INFO] [stdout] 250 | | /// performing a search on every file found, [INFO] [stdout] 251 | | /// and recursively visiting descendant directories. [INFO] [stdout] 252 | | /// [INFO] [stdout] ... | [INFO] [stdout] 261 | | /// In comparison, Ripgrip will spawn some number of workers, and they share [INFO] [stdout] 262 | | /// a global queue of directories to visit, and descend independently of any outer loop. [INFO] [stdout] | |____________________________________________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/target.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use async_std::path::PathBuf; [INFO] [stdout] 2 | | [INFO] [stdout] 3 | | #[derive(Debug)] [INFO] [stdout] 4 | | pub(crate) enum Target { [INFO] [stdout] ... | [INFO] [stdout] 34 | | } [INFO] [stdout] 35 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/target.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | / pub(crate) enum Target { [INFO] [stdout] 5 | | Stdin, [INFO] [stdout] 6 | | Path(PathBuf), [INFO] [stdout] 7 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/target.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | Stdin, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/target.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | Path(PathBuf), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/target.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / impl Target { [INFO] [stdout] 10 | | pub(crate) fn is_stdin(&self) -> bool { [INFO] [stdout] 11 | | if let Target::Stdin = self { [INFO] [stdout] 12 | | true [INFO] [stdout] ... | [INFO] [stdout] 34 | | } [INFO] [stdout] 35 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/target.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / pub(crate) fn is_stdin(&self) -> bool { [INFO] [stdout] 11 | | if let Target::Stdin = self { [INFO] [stdout] 12 | | true [INFO] [stdout] 13 | | } else { [INFO] [stdout] 14 | | false [INFO] [stdout] 15 | | } [INFO] [stdout] 16 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/target.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | / pub(crate) async fn is_dir(&self) -> bool { [INFO] [stdout] 19 | | match self { [INFO] [stdout] 20 | | Target::Path(path) => path.is_dir().await, [INFO] [stdout] 21 | | _ => false, [INFO] [stdout] 22 | | } [INFO] [stdout] 23 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/target.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | / pub(crate) async fn is_file(&self) -> bool { [INFO] [stdout] 26 | | match self { [INFO] [stdout] 27 | | Target::Path(path) => path.is_file().await, [INFO] [stdout] 28 | | _ => false, [INFO] [stdout] 29 | | } [INFO] [stdout] 30 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/target.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | / pub(crate) fn for_path(path: PathBuf) -> Self { [INFO] [stdout] 33 | | Target::Path(path) [INFO] [stdout] 34 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/time_log.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use std::time::{Duration, Instant}; [INFO] [stdout] 2 | | [INFO] [stdout] 3 | | /// Stores some helpful metrics to uncover what is happening during execution. [INFO] [stdout] 4 | | #[derive(Debug)] [INFO] [stdout] ... | [INFO] [stdout] 66 | | } [INFO] [stdout] 67 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/time_log.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | /// Stores some helpful metrics to uncover what is happening during execution. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/time_log.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | start_instant: Instant, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/time_log.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | / /// Duration of the search logic, which encapsulates [INFO] [stdout] 9 | | /// walking the filesystem, regex matching, and sending [INFO] [stdout] 10 | | /// results to the printer (but not the printing itself). [INFO] [stdout] | |_____________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/time_log.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / /// Duration of printing, measured from the very first message received [INFO] [stdout] 14 | | /// by the printer, to the very last completes printing. [INFO] [stdout] | |____________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/time_log.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | / /// The duration between when the printer was spawned, [INFO] [stdout] 18 | | /// and when the first result arrived for printing. [INFO] [stdout] | |_______________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/time_log.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / /// The duratio between the first result arriving at the printer, [INFO] [stdout] 22 | | /// and the first actual printing. This will be significant when grouping [INFO] [stdout] 23 | | /// by file is enabled (must complete a whole file before we can print it). [INFO] [stdout] | |_______________________________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/time_log.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / /// Duration from start of execution until end. [INFO] [stdout] 27 | | /// (Functionally, top of `main` until end of `main`, after joining the [INFO] [stdout] 28 | | /// printing thread, but which may be fuzzy due to async). [INFO] [stdout] | |______________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/time_log.rs:32:1 [INFO] [stdout] | [INFO] [stdout] 32 | / impl TimeLog { [INFO] [stdout] 33 | | pub(crate) fn new(start_instant: Instant) -> Self { [INFO] [stdout] 34 | | TimeLog { [INFO] [stdout] 35 | | start_instant, [INFO] [stdout] ... | [INFO] [stdout] 66 | | } [INFO] [stdout] 67 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/time_log.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / pub(crate) fn new(start_instant: Instant) -> Self { [INFO] [stdout] 34 | | TimeLog { [INFO] [stdout] 35 | | start_instant, [INFO] [stdout] 36 | | search_duration: None, [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/time_log.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | / pub(crate) fn log_search_duration(&mut self) { [INFO] [stdout] 45 | | assert!(self.search_duration.is_none()); [INFO] [stdout] 46 | | [INFO] [stdout] 47 | | self.search_duration = Some(self.start_instant.elapsed()); [INFO] [stdout] 48 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/time_log.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | / pub(crate) fn log_print_duration(&mut self) { [INFO] [stdout] 51 | | assert!(self.print_duration.is_none()); [INFO] [stdout] 52 | | [INFO] [stdout] 53 | | self.print_duration = Some(self.start_instant.elapsed()); [INFO] [stdout] 54 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/time_log.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | / pub(crate) fn log_printer_spawn_to_print(&mut self) { [INFO] [stdout] 57 | | assert!(self.printer_spawn_to_print.is_none()); [INFO] [stdout] 58 | | [INFO] [stdout] 59 | | self.printer_spawn_to_print = Some(self.start_instant.elapsed()); [INFO] [stdout] 60 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/time_log.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | / pub(crate) fn log_start_die_duration(&mut self) { [INFO] [stdout] 63 | | assert!(self.start_die_duration.is_none()); [INFO] [stdout] 64 | | [INFO] [stdout] 65 | | self.start_die_duration = Some(self.start_instant.elapsed()); [INFO] [stdout] 66 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/walker.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / use async_std::path::PathBuf; [INFO] [stdout] 2 | | use core::future::Future; [INFO] [stdout] 3 | | [INFO] [stdout] 4 | | struct Walker [INFO] [stdout] ... | [INFO] [stdout] 50 | | [INFO] [stdout] 51 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/walker.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | / struct Walker [INFO] [stdout] 5 | | where F: Fn() -> Future + Clone + Send + 'static [INFO] [stdout] 6 | | { [INFO] [stdout] 7 | | path: PathBuf, [INFO] [stdout] 8 | | action: F [INFO] [stdout] 9 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/walker.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | path: PathBuf, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/walker.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | action: F [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/walker.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | / impl Walker [INFO] [stdout] 12 | | where F: Fn() -> Future + Clone + Send + 'static [INFO] [stdout] 13 | | { [INFO] [stdout] 14 | | fn new(path: PathBuf, action: Box) -> Self { [INFO] [stdout] ... | [INFO] [stdout] 29 | | } [INFO] [stdout] 30 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/walker.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | / fn new(path: PathBuf, action: Box) -> Self { [INFO] [stdout] 15 | | Walker { path, action } [INFO] [stdout] 16 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/walker.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | / async fn run(self) { [INFO] [stdout] 19 | | async_std::task::spawn(self.action).await; [INFO] [stdout] 20 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/walker.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / async fn walk(self) { [INFO] [stdout] 23 | | use async_std::prelude::*; [INFO] [stdout] 24 | | [INFO] [stdout] 25 | | let mut dir_entries = async_std::fs::read_dir(self.path).await.unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 28 | | } [INFO] [stdout] 29 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | / impl Matcher for DummyMatcher { [INFO] [stdout] 21 | | fn is_match(&self, _bytes: &[u8]) -> bool { [INFO] [stdout] 22 | | false [INFO] [stdout] 23 | | } [INFO] [stdout] ... | [INFO] [stdout] 26 | | } [INFO] [stdout] 27 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / fn is_match(&self, _bytes: &[u8]) -> bool { [INFO] [stdout] 22 | | false [INFO] [stdout] 23 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | / fn find_matches(&self, _bytes: &[u8]) -> Vec { [INFO] [stdout] 25 | | Vec::new() [INFO] [stdout] 26 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | / impl Matcher for RegexMatcher { [INFO] [stdout] 35 | | fn is_match(&self, bytes: &[u8]) -> bool { [INFO] [stdout] 36 | | self.regex.is_match(bytes) [INFO] [stdout] 37 | | } [INFO] [stdout] ... | [INFO] [stdout] 47 | | } [INFO] [stdout] 48 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | / fn is_match(&self, bytes: &[u8]) -> bool { [INFO] [stdout] 36 | | self.regex.is_match(bytes) [INFO] [stdout] 37 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/matcher.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | / fn find_matches(&self, bytes: &[u8]) -> Vec { [INFO] [stdout] 40 | | self.regex [INFO] [stdout] 41 | | .find_iter(bytes) [INFO] [stdout] 42 | | .map(|m| Match { [INFO] [stdout] ... | [INFO] [stdout] 46 | | .collect() [INFO] [stdout] 47 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/blocking_printer.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | / impl super::PrinterSender for BlockingSender { [INFO] [stdout] 17 | | fn send(&self, message: PrintMessage) { [INFO] [stdout] 18 | | // TODO: store stdout in struct [INFO] [stdout] 19 | | let mut stdout = StandardStream::stdout(ColorChoice::Auto); [INFO] [stdout] ... | [INFO] [stdout] 22 | | } [INFO] [stdout] 23 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/blocking_printer.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | / fn send(&self, message: PrintMessage) { [INFO] [stdout] 18 | | // TODO: store stdout in struct [INFO] [stdout] 19 | | let mut stdout = StandardStream::stdout(ColorChoice::Auto); [INFO] [stdout] 20 | | let mut lock = self.0.lock().expect("Unable to acquire lock."); [INFO] [stdout] 21 | | lock.print(&mut stdout, message); [INFO] [stdout] 22 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/null_printer.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | / impl PrinterSender for NullPrinter { [INFO] [stdout] 7 | | fn send(&self, _message: PrintMessage) { [INFO] [stdout] 8 | | // Do nothing at all. [INFO] [stdout] 9 | | } [INFO] [stdout] 10 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/null_printer.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | / fn send(&self, _message: PrintMessage) { [INFO] [stdout] 8 | | // Do nothing at all. [INFO] [stdout] 9 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/threaded_printer.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | / impl PrinterSender for Sender { [INFO] [stdout] 20 | | fn send(&self, message: PrintMessage) { [INFO] [stdout] 21 | | self.sender.send(message).expect("Failed sending message."); [INFO] [stdout] 22 | | } [INFO] [stdout] 23 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/print/threaded_printer.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | / fn send(&self, message: PrintMessage) { [INFO] [stdout] 21 | | self.sender.send(message).expect("Failed sending message."); [INFO] [stdout] 22 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to previous error; 230 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stderr] error: Could not document `toygrep`. [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `rustdoc --edition=2018 --crate-type bin --crate-name toygrep src/main.rs -o /opt/rustwide/target/doc --error-format=json --json=diagnostic-rendered-ansi --document-private-items -L dependency=/opt/rustwide/target/debug/deps --extern async_std=/opt/rustwide/target/debug/deps/libasync_std-dcee81a91276fbce.rmeta --extern atty=/opt/rustwide/target/debug/deps/libatty-b42f57706149d516.rmeta --extern crossbeam_channel=/opt/rustwide/target/debug/deps/libcrossbeam_channel-aed0188729e0acc4.rmeta --extern peeking_take_while=/opt/rustwide/target/debug/deps/libpeeking_take_while-c1688fe3bde295ab.rmeta --extern regex=/opt/rustwide/target/debug/deps/libregex-4bbfbe44ff01036c.rmeta --extern termcolor=/opt/rustwide/target/debug/deps/libtermcolor-0d47dfaf7682a2d2.rmeta --cap-lints=forbid` (exit code: 1) [INFO] running `Command { std: "docker" "inspect" "b8bf045caec0fb52acc4689437781eecd9f3b08bd8505f7d8e99078f16fc662a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b8bf045caec0fb52acc4689437781eecd9f3b08bd8505f7d8e99078f16fc662a", kill_on_drop: false }` [INFO] [stdout] b8bf045caec0fb52acc4689437781eecd9f3b08bd8505f7d8e99078f16fc662a