[INFO] crate sudo_plugin 1.2.0 is already in cache [INFO] documenting sudo_plugin-1.2.0 against try#66dfc4e010913fbed0c4ea91fc2c010004b0f441 for pr-73566 [INFO] extracting crate sudo_plugin 1.2.0 into /workspace/builds/worker-12/source [INFO] validating manifest of crates.io crate sudo_plugin 1.2.0 on toolchain 66dfc4e010913fbed0c4ea91fc2c010004b0f441 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+66dfc4e010913fbed0c4ea91fc2c010004b0f441" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking crates.io crate sudo_plugin 1.2.0 [INFO] finished tweaking crates.io crate sudo_plugin 1.2.0 [INFO] tweaked toml for crates.io crate sudo_plugin 1.2.0 written to /workspace/builds/worker-12/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+66dfc4e010913fbed0c4ea91fc2c010004b0f441" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [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-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/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] f1298d402d90460026b986de9d24ecb45785a6f18ce8e83e00a41911a5c91690 [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" "f1298d402d90460026b986de9d24ecb45785a6f18ce8e83e00a41911a5c91690", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f1298d402d90460026b986de9d24ecb45785a6f18ce8e83e00a41911a5c91690", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f1298d402d90460026b986de9d24ecb45785a6f18ce8e83e00a41911a5c91690", kill_on_drop: false }` [INFO] [stdout] f1298d402d90460026b986de9d24ecb45785a6f18ce8e83e00a41911a5c91690 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:819119df93c0f5eca3f29186f14981ef29945a311854d7222af07488600a2584" "/opt/rustwide/cargo-home/bin/cargo" "+66dfc4e010913fbed0c4ea91fc2c010004b0f441" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6d623e6d854d4d5465399f7a52f10c44dba55fc2ee09384840d9ba0e77de7a8c [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" "6d623e6d854d4d5465399f7a52f10c44dba55fc2ee09384840d9ba0e77de7a8c", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling libc v0.2.71 [INFO] [stderr] Compiling version_check v0.9.2 [INFO] [stderr] Compiling libloading v0.5.2 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling bindgen v0.54.0 [INFO] [stderr] Compiling proc-macro2 v1.0.18 [INFO] [stderr] Compiling nom v5.1.2 [INFO] [stderr] Compiling error-chain v0.12.2 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling clang-sys v0.29.3 [INFO] [stderr] Compiling which v3.1.1 [INFO] [stderr] Compiling env_logger v0.7.1 [INFO] [stderr] Compiling clap v2.33.1 [INFO] [stderr] Checking backtrace v0.3.49 [INFO] [stderr] Compiling cexpr v0.4.0 [INFO] [stderr] Compiling sudo_plugin-sys v1.2.1 [INFO] [stderr] Documenting sudo_plugin v1.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/lib.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | / //! description = "Macros to simplify writing sudo plugins" [INFO] [stdout] 16 | | //! [INFO] [stdout] 17 | | //! TODO: explain [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | #![warn(rustdoc)] [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] = note: `#[warn(missing_doc_code_examples)]` implied by `#[warn(rustdoc)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/lib.rs:59:1 [INFO] [stdout] | [INFO] [stdout] 59 | pub use sudo_plugin_sys as sys; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/lib.rs:61:1 [INFO] [stdout] | [INFO] [stdout] 61 | pub use self::plugin::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/errors.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | //! The collection of `Error` types used by this library. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/errors.rs:35:1 [INFO] [stdout] | [INFO] [stdout] 35 | /// The list of supported facilities to communicate with the end-user. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/errors.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | / /// A printf-style function that can be used for one-way communication [INFO] [stdout] 39 | | /// with the invoking user. [INFO] [stdout] | |_______________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/errors.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | / /// A more complicated facility that enables two-way communication [INFO] [stdout] 43 | | /// with the invoking user. [INFO] [stdout] | |_______________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/errors.rs:82:1 [INFO] [stdout] | [INFO] [stdout] 82 | / /// A trait that is implemented by all Error types in this library, which [INFO] [stdout] 83 | | /// allows any error to be converted to its corresponding integer error [INFO] [stdout] 84 | | /// code as understood by the sudo plugin API. [INFO] [stdout] 85 | | /// [INFO] [stdout] ... | [INFO] [stdout] 90 | | /// * -1: General error [INFO] [stdout] 91 | | /// * -2: Usage error [INFO] [stdout] | |_____________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/errors.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | / /// Converts the error to its corresponding integer error code for [INFO] [stdout] 94 | | /// the I/O plugin `open` function. [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/errors.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | / /// Converts the error to its corresponding integer error code for [INFO] [stdout] 98 | | /// the I/O plugin `log_*` suite of functions. [INFO] [stdout] | |__________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/macros.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | //! Macros to simplify the process of correctly wiring up a sudo plugin. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | / //! Utilities for wrapping sudo plugins and the values they're [INFO] [stdout] 16 | | //! configured with. [INFO] [stdout] | |____________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/option_map.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | / /// A HashMap-like list of options parsed from the pointers provided by [INFO] [stdout] 27 | | /// the underlying sudo plugin API. [INFO] [stdout] 28 | | /// [INFO] [stdout] 29 | | /// Allows for automatic parsing of values into any type which implements [INFO] [stdout] 30 | | /// the `FromSudoOption` trait as well as values into a `Vec` of any type [INFO] [stdout] 31 | | /// which implements the `FromSudoOptionList` trait. [INFO] [stdout] | |____________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/option_map.rs:33:22 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct OptionMap(HashMap, Vec>); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:44:1 [INFO] [stdout] | [INFO] [stdout] 44 | / /// An implementation of a sudo plugin, initialized and parsed from the [INFO] [stdout] 45 | | /// values passed to the underlying `open` callback. [INFO] [stdout] | |____________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | /// The plugin API version supported by the invoked `sudo` command. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | / /// The command being executed, in the same form as would be passed [INFO] [stdout] 52 | | /// to the `execve(2)` system call. [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | / /// A map of user-supplied sudo settings. These settings correspond [INFO] [stdout] 56 | | /// to flags the user specified when running sudo. As such, they [INFO] [stdout] 57 | | /// will only be present when the corresponding flag has been specified [INFO] [stdout] 58 | | /// on the command line. [INFO] [stdout] | |____________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | /// A map of information about the user running the command. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | /// A map of information about the command being run. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | /// A map of the user's environment variables. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | / /// A map of options provided to the plugin after the its path in [INFO] [stdout] 71 | | /// sudo.conf. [INFO] [stdout] 72 | | /// [INFO] [stdout] 73 | | /// Settings that aren't of the form `key=value` will have a key [INFO] [stdout] 74 | | /// in the map whose value is the same as the key, similar to how [INFO] [stdout] 75 | | /// HTML handles valueless attributes (e.g., `disabled` will become [INFO] [stdout] 76 | | /// `plugin_options["disabled"] => "disabled"`). [INFO] [stdout] | |____________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | printf: Arc>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | _conversation: sudo_plugin_sys::sudo_conv_t, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:244:1 [INFO] [stdout] | [INFO] [stdout] 244 | / /// [INFO] [stdout] 245 | | /// A facility implementing `std::io::Write` that allows printing [INFO] [stdout] 246 | | /// output to directly to the terminal of the user invoking `sudo`. [INFO] [stdout] 247 | | /// [INFO] [stdout] | |___^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:249:16 [INFO] [stdout] | [INFO] [stdout] 249 | pub struct Tty(File); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:267:1 [INFO] [stdout] | [INFO] [stdout] 267 | / /// [INFO] [stdout] 268 | | /// A facility implementing `std::io::Write` that allows printing [INFO] [stdout] 269 | | /// output to the user invoking `sudo`. Technically, the user may [INFO] [stdout] 270 | | /// not be present on a local tty, but this will be wired up to a [INFO] [stdout] 271 | | /// `printf`-like function that outputs to either STDOUT or STDERR. [INFO] [stdout] 272 | | /// [INFO] [stdout] | |___^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:275:5 [INFO] [stdout] | [INFO] [stdout] 275 | / /// A *non-null* function pointer to a `sudo_printf_t` printf [INFO] [stdout] 276 | | /// facility [INFO] [stdout] | |________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:281:5 [INFO] [stdout] | [INFO] [stdout] 281 | / /// A `sudo_conv_message` bitflag to indicate how and where the [INFO] [stdout] 282 | | /// message should be printed. [INFO] [stdout] | |__________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/option_map.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | / use crate::errors::*; [INFO] [stdout] 16 | | use super::traits::*; [INFO] [stdout] 17 | | [INFO] [stdout] 18 | | use std::collections::HashMap; [INFO] [stdout] ... | [INFO] [stdout] 274 | | } [INFO] [stdout] 275 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/option_map.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | const OPTIONS_SEPARATOR: u8 = b'='; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/option_map.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | / impl OptionMap { [INFO] [stdout] 42 | | /// Initializes the `OptionMap` from a pointer to the options [INFO] [stdout] 43 | | /// provided when `sudo` invokes the plugin's entry function. The [INFO] [stdout] 44 | | /// format of these is a NUL-terminated array of NUL-terminated [INFO] [stdout] ... | [INFO] [stdout] 125 | | } [INFO] [stdout] 126 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/option_map.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | / /// Initializes the `OptionMap` from a pointer to the options [INFO] [stdout] 43 | | /// provided when `sudo` invokes the plugin's entry function. The [INFO] [stdout] 44 | | /// format of these is a NUL-terminated array of NUL-terminated [INFO] [stdout] 45 | | /// strings in "key=value" format with the array terminated by a [INFO] [stdout] ... | [INFO] [stdout] 52 | | /// such a NULL byte, there is no other way to detect the end of [INFO] [stdout] 53 | | /// the options list. [INFO] [stdout] | |_________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/option_map.rs:98:5 [INFO] [stdout] | [INFO] [stdout] 98 | / /// Gets the value of a key as any arbitrary type that implements the [INFO] [stdout] 99 | | /// `FromSudoOption` trait. Returns `Err(_)` if no such key/value-pair [INFO] [stdout] 100 | | /// was provided during initialization. Also returns `Err(_)` if the [INFO] [stdout] 101 | | /// value was not interpretable as a UTF-8 string or if there was an [INFO] [stdout] 102 | | /// error parsing the value to the requested type. [INFO] [stdout] | |______________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/option_map.rs:113:5 [INFO] [stdout] | [INFO] [stdout] 113 | / /// Gets the value of a key as a string. Returns `None` if no such [INFO] [stdout] 114 | | /// key/value-pair was provided during initialization. Also returns [INFO] [stdout] 115 | | /// `None` if the value was not interpretable as a UTF-8 string. [INFO] [stdout] | |____________________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/option_map.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 120 | / /// Fetches a raw byte value using a bytes as the key. This is [INFO] [stdout] 121 | | /// provided to allow plugins to retrieve values for keys when the [INFO] [stdout] 122 | | /// value and/or key are not guaranteed to be UTF-8 strings. [INFO] [stdout] | |________________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | / use crate::errors::*; [INFO] [stdout] 16 | | use super::option_map::*; [INFO] [stdout] 17 | | [INFO] [stdout] 18 | | use std::os::unix::io::RawFd; [INFO] [stdout] ... | [INFO] [stdout] 116 | | } [INFO] [stdout] 117 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | / pub struct CommandInfo { [INFO] [stdout] 25 | | pub chroot: Option, [INFO] [stdout] 26 | | pub close_from: Option, [INFO] [stdout] 27 | | pub command: PathBuf, [INFO] [stdout] ... | [INFO] [stdout] 62 | | pub raw: OptionMap, [INFO] [stdout] 63 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub chroot: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | pub close_from: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | pub command: PathBuf, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub cwd: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub exec_background: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub exec_fd: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub iolog_compress: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub iolog_group: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | pub iolog_mode: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub iolog_path: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | pub iolog_stdin: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | pub iolog_stdout: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | pub iolog_stderr: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | pub iolog_ttyin: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | pub iolog_ttyout: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | pub iolog_user: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | pub login_class: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub nice: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | pub noexec: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | pub preserve_fds: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | pub preserve_groups: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | pub runas_egid: gid_t, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | pub runas_euid: uid_t, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | pub runas_gid: gid_t, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | pub runas_groups: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | pub runas_uid: uid_t, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | pub selinux_role: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | pub selinux_type: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | pub set_utmp: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | pub sudoedit: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub sudoedit_checkdir: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | pub sudoedit_follow: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub timeout: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | pub umask: mode_t, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | pub use_pty: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | pub utmp_user: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | pub raw: OptionMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:65:1 [INFO] [stdout] | [INFO] [stdout] 65 | / impl CommandInfo { [INFO] [stdout] 66 | | pub fn try_from(value: OptionMap) -> Result { [INFO] [stdout] 67 | | let runas_gid = value.get("runas_gid") [INFO] [stdout] 68 | | .unwrap_or_else(|_| unsafe { libc::getegid() }); [INFO] [stdout] ... | [INFO] [stdout] 116 | | } [INFO] [stdout] 117 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/command_info.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | / pub fn try_from(value: OptionMap) -> Result { [INFO] [stdout] 67 | | let runas_gid = value.get("runas_gid") [INFO] [stdout] 68 | | .unwrap_or_else(|_| unsafe { libc::getegid() }); [INFO] [stdout] 69 | | [INFO] [stdout] ... | [INFO] [stdout] 115 | | }) [INFO] [stdout] 116 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | / use crate::errors::*; [INFO] [stdout] 16 | | use super::option_map::*; [INFO] [stdout] 17 | | use super::traits::*; [INFO] [stdout] 18 | | [INFO] [stdout] ... | [INFO] [stdout] 224 | | const SEPARATOR: char = ' '; [INFO] [stdout] 225 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | / pub struct Settings { [INFO] [stdout] 24 | | pub bsd_auth_type: Option, [INFO] [stdout] 25 | | pub close_from: Option, [INFO] [stdout] 26 | | pub debug_flags: Option, [INFO] [stdout] ... | [INFO] [stdout] 51 | | pub raw: OptionMap, [INFO] [stdout] 52 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub bsd_auth_type: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub close_from: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | pub debug_flags: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | pub debug_level: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub ignore_ticket: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub implied_shell: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub login_class: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub login_shell: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub max_groups: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | pub network_addrs: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub noninteractive: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | pub plugin_dir: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | pub plugin_path: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | pub preserve_environment: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | pub preserve_groups: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | pub progname: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | pub prompt: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | pub remote_host: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub run_shell: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | pub runas_group: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | pub runas_user: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | pub selinux_role: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | pub selinux_type: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | pub set_home: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | pub sudoedit: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | pub timeout: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | pub raw: OptionMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:194:1 [INFO] [stdout] | [INFO] [stdout] 194 | / pub struct NetAddr { [INFO] [stdout] 195 | | pub addr: IpAddr, [INFO] [stdout] 196 | | pub mask: IpAddr, [INFO] [stdout] 197 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:195:5 [INFO] [stdout] | [INFO] [stdout] 195 | pub addr: IpAddr, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:196:5 [INFO] [stdout] | [INFO] [stdout] 196 | pub mask: IpAddr, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:54:1 [INFO] [stdout] | [INFO] [stdout] 54 | / impl Settings { [INFO] [stdout] 55 | | pub fn try_from(value: OptionMap) -> Result { [INFO] [stdout] 56 | | Ok(Self { [INFO] [stdout] 57 | | plugin_dir: value.get("plugin_dir")?, [INFO] [stdout] ... | [INFO] [stdout] 190 | | } [INFO] [stdout] 191 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | / pub fn try_from(value: OptionMap) -> Result { [INFO] [stdout] 56 | | Ok(Self { [INFO] [stdout] 57 | | plugin_dir: value.get("plugin_dir")?, [INFO] [stdout] 58 | | plugin_path: value.get("plugin_path")?, [INFO] [stdout] ... | [INFO] [stdout] 86 | | }) [INFO] [stdout] 87 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | / pub fn flags(&self) -> Vec> { [INFO] [stdout] 95 | | let mut flags : Vec> = vec![]; [INFO] [stdout] 96 | | [INFO] [stdout] 97 | | // `sudoedit` is set if the flag was provided *or* if sudo [INFO] [stdout] ... | [INFO] [stdout] 189 | | flags [INFO] [stdout] 190 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | / use crate::errors::*; [INFO] [stdout] 16 | | use super::option_map::*; [INFO] [stdout] 17 | | [INFO] [stdout] 18 | | use std::path::PathBuf; [INFO] [stdout] ... | [INFO] [stdout] 69 | | } [INFO] [stdout] 70 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | / pub struct UserInfo { [INFO] [stdout] 24 | | pub cols: u64, [INFO] [stdout] 25 | | pub cwd: PathBuf, [INFO] [stdout] 26 | | pub egid: gid_t, [INFO] [stdout] ... | [INFO] [stdout] 42 | | pub raw: OptionMap, [INFO] [stdout] 43 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub cols: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub cwd: PathBuf, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | pub egid: gid_t, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | pub euid: uid_t, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub gid: gid_t, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub groups: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub host: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub lines: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub pgid: pid_t, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | pub pid: pid_t, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub ppid: pid_t, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | pub sid: pid_t, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | pub tcpgid: pid_t, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | pub tty: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | pub uid: uid_t, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | pub umask: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | pub user: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub raw: OptionMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | / impl UserInfo { [INFO] [stdout] 46 | | pub fn try_from(value: OptionMap) -> Result { [INFO] [stdout] 47 | | Ok(Self { [INFO] [stdout] 48 | | cwd: value.get("cwd")?, [INFO] [stdout] ... | [INFO] [stdout] 69 | | } [INFO] [stdout] 70 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/user_info.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / pub fn try_from(value: OptionMap) -> Result { [INFO] [stdout] 47 | | Ok(Self { [INFO] [stdout] 48 | | cwd: value.get("cwd")?, [INFO] [stdout] 49 | | egid: value.get("egid")?, [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/plugin/traits.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | / use std::collections::HashSet; [INFO] [stdout] 16 | | use std::hash::Hash; [INFO] [stdout] 17 | | use std::path::PathBuf; [INFO] [stdout] 18 | | use std::str::FromStr; [INFO] [stdout] ... | [INFO] [stdout] 165 | | impl FromSudoOptionList for u64 {} [INFO] [stdout] 166 | | impl FromSudoOptionList for PathBuf {} [INFO] [stdout] | |______________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct ParseListError(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | / pub trait FromSudoOption: Sized { [INFO] [stdout] 24 | | type Err; [INFO] [stdout] 25 | | [INFO] [stdout] 26 | | fn from_sudo_option(s: &str) -> ::std::result::Result; [INFO] [stdout] 27 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | type Err; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | fn from_sudo_option(s: &str) -> ::std::result::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:150:1 [INFO] [stdout] | [INFO] [stdout] 150 | / pub trait FromSudoOptionList: Sized { [INFO] [stdout] 151 | | const SEPARATOR: char = ','; [INFO] [stdout] 152 | | [INFO] [stdout] 153 | | fn from_sudo_option_list(s: &str) -> Vec<&str> { [INFO] [stdout] 154 | | s.split(|b| b == Self::SEPARATOR).collect() [INFO] [stdout] 155 | | } [INFO] [stdout] 156 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:151:5 [INFO] [stdout] | [INFO] [stdout] 151 | const SEPARATOR: char = ','; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:153:5 [INFO] [stdout] | [INFO] [stdout] 153 | / fn from_sudo_option_list(s: &str) -> Vec<&str> { [INFO] [stdout] 154 | | s.split(|b| b == Self::SEPARATOR).collect() [INFO] [stdout] 155 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:83:1 [INFO] [stdout] | [INFO] [stdout] 83 | / impl Plugin { [INFO] [stdout] 84 | | /// Initializes a `Plugin` from the arguments provided to the [INFO] [stdout] 85 | | /// underlying C `open` callback function. Verifies the API version [INFO] [stdout] 86 | | /// advertised by the underlying `sudo` is supported by this library, [INFO] [stdout] ... | [INFO] [stdout] 241 | | } [INFO] [stdout] 242 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | / /// Initializes a `Plugin` from the arguments provided to the [INFO] [stdout] 85 | | /// underlying C `open` callback function. Verifies the API version [INFO] [stdout] 86 | | /// advertised by the underlying `sudo` is supported by this library, [INFO] [stdout] 87 | | /// parses all provided options, and wires up communication [INFO] [stdout] 88 | | /// facilities. [INFO] [stdout] 89 | | /// [INFO] [stdout] 90 | | /// Returns an error if there was a problem initializing the plugin. [INFO] [stdout] | |________________________________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:141:5 [INFO] [stdout] | [INFO] [stdout] 141 | / /// [INFO] [stdout] 142 | | /// Returns a facility implementing `std::io::Write` that emits to [INFO] [stdout] 143 | | /// the invoking user's STDOUT. [INFO] [stdout] 144 | | /// [INFO] [stdout] | |_______^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:152:5 [INFO] [stdout] | [INFO] [stdout] 152 | / /// [INFO] [stdout] 153 | | /// Returns a facility implementing `std::io::Write` that emits to [INFO] [stdout] 154 | | /// the invoking user's STDERR. [INFO] [stdout] 155 | | /// [INFO] [stdout] | |_______^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:163:5 [INFO] [stdout] | [INFO] [stdout] 163 | / /// [INFO] [stdout] 164 | | /// Returns a facility implementing `std::io::Write` that emits to [INFO] [stdout] 165 | | /// the user's TTY, if sudo detected one. [INFO] [stdout] 166 | | /// [INFO] [stdout] | |_______^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:173:5 [INFO] [stdout] | [INFO] [stdout] 173 | / /// [INFO] [stdout] 174 | | /// As best as can be reconstructed, what was actually typed at the [INFO] [stdout] 175 | | /// shell in order to launch this invocation of sudo. [INFO] [stdout] 176 | | /// [INFO] [stdout] | |_______^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:195:5 [INFO] [stdout] | [INFO] [stdout] 195 | / /// [INFO] [stdout] 196 | | /// The `cwd` to be used for the command being run. This is [INFO] [stdout] 197 | | /// typically set on the `user_info` component, but may be [INFO] [stdout] 198 | | /// overridden by the policy plugin setting its value on [INFO] [stdout] 199 | | /// `command_info`. [INFO] [stdout] 200 | | /// [INFO] [stdout] | |_______^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | / /// [INFO] [stdout] 208 | | /// The complete set of groups the invoked command will have [INFO] [stdout] 209 | | /// privileges for. If the `-P` (`--preserve-groups`) flag was [INFO] [stdout] 210 | | /// passed to `sudo`, the underlying `command_info` will not have [INFO] [stdout] ... | [INFO] [stdout] 214 | | /// This set will always contain `runas_egid`. [INFO] [stdout] 215 | | /// [INFO] [stdout] | |_______^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:251:1 [INFO] [stdout] | [INFO] [stdout] 251 | / impl Tty { [INFO] [stdout] 252 | | fn try_from(path: &Path) -> io::Result { [INFO] [stdout] 253 | | OpenOptions::new().write(true).open(path).map(Tty) [INFO] [stdout] 254 | | } [INFO] [stdout] 255 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:252:5 [INFO] [stdout] | [INFO] [stdout] 252 | / fn try_from(path: &Path) -> io::Result { [INFO] [stdout] 253 | | OpenOptions::new().write(true).open(path).map(Tty) [INFO] [stdout] 254 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:288:1 [INFO] [stdout] | [INFO] [stdout] 288 | / impl Printf { [INFO] [stdout] 289 | | /// [INFO] [stdout] 290 | | /// Writes a formatted error to the user via the configured [INFO] [stdout] 291 | | /// facility. [INFO] [stdout] ... | [INFO] [stdout] 313 | | } [INFO] [stdout] 314 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:289:5 [INFO] [stdout] | [INFO] [stdout] 289 | / /// [INFO] [stdout] 290 | | /// Writes a formatted error to the user via the configured [INFO] [stdout] 291 | | /// facility. [INFO] [stdout] 292 | | /// [INFO] [stdout] | |_______^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/version.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | / use crate::errors::*; [INFO] [stdout] 16 | | [INFO] [stdout] 17 | | use std::fmt; [INFO] [stdout] 18 | | [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/version.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | / pub struct Version { [INFO] [stdout] 31 | | major: u16, [INFO] [stdout] 32 | | minor: u16, [INFO] [stdout] 33 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/version.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | major: u16, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/version.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | minor: u16, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/version.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | const MINIMUM_MAJOR: u16 = 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/version.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | const MINIMUM_MINOR: u16 = 9; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/version.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | / const MINIMUM: Version = Version { [INFO] [stdout] 25 | | major: MINIMUM_MAJOR, [INFO] [stdout] 26 | | minor: MINIMUM_MINOR, [INFO] [stdout] 27 | | }; [INFO] [stdout] | |__^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/version.rs:35:1 [INFO] [stdout] | [INFO] [stdout] 35 | / impl Version { [INFO] [stdout] 36 | | pub fn minimum() -> &'static Self { [INFO] [stdout] 37 | | &MINIMUM [INFO] [stdout] 38 | | } [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/version.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | / pub fn minimum() -> &'static Self { [INFO] [stdout] 37 | | &MINIMUM [INFO] [stdout] 38 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/version.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | / pub fn supported(self) -> bool { [INFO] [stdout] 41 | | self >= *Self::minimum() [INFO] [stdout] 42 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/version.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | / pub fn check(self) -> Result { [INFO] [stdout] 45 | | if !self.supported() { [INFO] [stdout] 46 | | bail!(ErrorKind::UnsupportedApiVersion(self)) [INFO] [stdout] 47 | | } [INFO] [stdout] 48 | | [INFO] [stdout] 49 | | Ok(self) [INFO] [stdout] 50 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/macros.rs:194:1 [INFO] [stdout] | [INFO] [stdout] 194 | / /// Internal macro used by `sudo_io_plugin` that generates the actual [INFO] [stdout] 195 | | /// callback implementations for I/O plugins. [INFO] [stdout] | |_____________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/errors.rs:102:1 [INFO] [stdout] | [INFO] [stdout] 102 | / impl AsSudoPluginRetval for ::std::result::Result { [INFO] [stdout] 103 | | fn as_sudo_io_plugin_open_retval(&self) -> c_int { [INFO] [stdout] 104 | | match *self { [INFO] [stdout] 105 | | Ok(_) => sys::SUDO_PLUGIN_OPEN_SUCCESS, [INFO] [stdout] ... | [INFO] [stdout] 115 | | } [INFO] [stdout] 116 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/errors.rs:103:5 [INFO] [stdout] | [INFO] [stdout] 103 | / fn as_sudo_io_plugin_open_retval(&self) -> c_int { [INFO] [stdout] 104 | | match *self { [INFO] [stdout] 105 | | Ok(_) => sys::SUDO_PLUGIN_OPEN_SUCCESS, [INFO] [stdout] 106 | | Err(ref e) => e.as_sudo_io_plugin_open_retval(), [INFO] [stdout] 107 | | } [INFO] [stdout] 108 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/errors.rs:110:5 [INFO] [stdout] | [INFO] [stdout] 110 | / fn as_sudo_io_plugin_log_retval(&self) -> c_int { [INFO] [stdout] 111 | | match *self { [INFO] [stdout] 112 | | Ok(_) => sys::SUDO_PLUGIN_OPEN_SUCCESS, [INFO] [stdout] 113 | | Err(ref e) => e.as_sudo_io_plugin_log_retval(), [INFO] [stdout] 114 | | } [INFO] [stdout] 115 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/errors.rs:118:1 [INFO] [stdout] | [INFO] [stdout] 118 | / impl AsSudoPluginRetval for Error { [INFO] [stdout] 119 | | fn as_sudo_io_plugin_open_retval(&self) -> c_int { [INFO] [stdout] 120 | | match *self { [INFO] [stdout] 121 | | Error(ErrorKind::Unauthorized, _) => sys::SUDO_PLUGIN_OPEN_GENERAL_ERROR, [INFO] [stdout] ... | [INFO] [stdout] 131 | | } [INFO] [stdout] 132 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/errors.rs:119:5 [INFO] [stdout] | [INFO] [stdout] 119 | / fn as_sudo_io_plugin_open_retval(&self) -> c_int { [INFO] [stdout] 120 | | match *self { [INFO] [stdout] 121 | | Error(ErrorKind::Unauthorized, _) => sys::SUDO_PLUGIN_OPEN_GENERAL_ERROR, [INFO] [stdout] 122 | | Error(_, _) => sys::SUDO_PLUGIN_OPEN_FAILURE, [INFO] [stdout] 123 | | } [INFO] [stdout] 124 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/errors.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | / fn as_sudo_io_plugin_log_retval(&self) -> c_int { [INFO] [stdout] 127 | | match *self { [INFO] [stdout] 128 | | Error(ErrorKind::Unauthorized, _) => sys::SUDO_PLUGIN_OPEN_FAILURE, [INFO] [stdout] 129 | | Error(_, _) => sys::SUDO_PLUGIN_OPEN_GENERAL_ERROR, [INFO] [stdout] 130 | | } [INFO] [stdout] 131 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:199:1 [INFO] [stdout] | [INFO] [stdout] 199 | / impl FromSudoOption for NetAddr { [INFO] [stdout] 200 | | type Err = AddrParseError; [INFO] [stdout] 201 | | [INFO] [stdout] 202 | | // indexing into an array can panic, but there's no cleaner way in [INFO] [stdout] ... | [INFO] [stdout] 220 | | } [INFO] [stdout] 221 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:200:5 [INFO] [stdout] | [INFO] [stdout] 200 | type Err = AddrParseError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | / fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 208 | | let bytes = s.as_bytes(); [INFO] [stdout] 209 | | let mid = bytes.iter() [INFO] [stdout] 210 | | .position(|b| *b == b'/' ) [INFO] [stdout] ... | [INFO] [stdout] 219 | | }) [INFO] [stdout] 220 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | / impl FromSudoOption for bool { [INFO] [stdout] 30 | | type Err = ::std::str::ParseBoolError; [INFO] [stdout] 31 | | [INFO] [stdout] 32 | | fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 33 | | FromStr::from_str(s) [INFO] [stdout] 34 | | } [INFO] [stdout] 35 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | type Err = ::std::str::ParseBoolError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | / fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 33 | | FromStr::from_str(s) [INFO] [stdout] 34 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:37:1 [INFO] [stdout] | [INFO] [stdout] 37 | / impl FromSudoOption for i8 { [INFO] [stdout] 38 | | type Err = ::std::num::ParseIntError; [INFO] [stdout] 39 | | [INFO] [stdout] 40 | | fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 41 | | FromStr::from_str(s) [INFO] [stdout] 42 | | } [INFO] [stdout] 43 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | type Err = ::std::num::ParseIntError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | / fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 41 | | FromStr::from_str(s) [INFO] [stdout] 42 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | / impl FromSudoOption for u8 { [INFO] [stdout] 46 | | type Err = ::std::num::ParseIntError; [INFO] [stdout] 47 | | [INFO] [stdout] 48 | | fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 49 | | FromStr::from_str(s) [INFO] [stdout] 50 | | } [INFO] [stdout] 51 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | type Err = ::std::num::ParseIntError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | / fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 49 | | FromStr::from_str(s) [INFO] [stdout] 50 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:53:1 [INFO] [stdout] | [INFO] [stdout] 53 | / impl FromSudoOption for i16 { [INFO] [stdout] 54 | | type Err = ::std::num::ParseIntError; [INFO] [stdout] 55 | | [INFO] [stdout] 56 | | fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 57 | | FromStr::from_str(s) [INFO] [stdout] 58 | | } [INFO] [stdout] 59 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | type Err = ::std::num::ParseIntError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | / fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 57 | | FromStr::from_str(s) [INFO] [stdout] 58 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:62:1 [INFO] [stdout] | [INFO] [stdout] 62 | / impl FromSudoOption for u16 { [INFO] [stdout] 63 | | type Err = ::std::num::ParseIntError; [INFO] [stdout] 64 | | [INFO] [stdout] 65 | | fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 66 | | FromStr::from_str(s) [INFO] [stdout] 67 | | } [INFO] [stdout] 68 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | type Err = ::std::num::ParseIntError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | / fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 66 | | FromStr::from_str(s) [INFO] [stdout] 67 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:70:1 [INFO] [stdout] | [INFO] [stdout] 70 | / impl FromSudoOption for i32 { [INFO] [stdout] 71 | | type Err = ::std::num::ParseIntError; [INFO] [stdout] 72 | | [INFO] [stdout] 73 | | fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 74 | | FromStr::from_str(s) [INFO] [stdout] 75 | | } [INFO] [stdout] 76 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | type Err = ::std::num::ParseIntError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | / fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 74 | | FromStr::from_str(s) [INFO] [stdout] 75 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:78:1 [INFO] [stdout] | [INFO] [stdout] 78 | / impl FromSudoOption for u32 { [INFO] [stdout] 79 | | type Err = ::std::num::ParseIntError; [INFO] [stdout] 80 | | [INFO] [stdout] 81 | | fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 82 | | FromStr::from_str(s) [INFO] [stdout] 83 | | } [INFO] [stdout] 84 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | type Err = ::std::num::ParseIntError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | / fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 82 | | FromStr::from_str(s) [INFO] [stdout] 83 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | / impl FromSudoOption for i64 { [INFO] [stdout] 87 | | type Err = ::std::num::ParseIntError; [INFO] [stdout] 88 | | [INFO] [stdout] 89 | | fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 90 | | FromStr::from_str(s) [INFO] [stdout] 91 | | } [INFO] [stdout] 92 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | type Err = ::std::num::ParseIntError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | / fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 90 | | FromStr::from_str(s) [INFO] [stdout] 91 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:94:1 [INFO] [stdout] | [INFO] [stdout] 94 | / impl FromSudoOption for u64 { [INFO] [stdout] 95 | | type Err = ::std::num::ParseIntError; [INFO] [stdout] 96 | | [INFO] [stdout] 97 | | fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 98 | | FromStr::from_str(s) [INFO] [stdout] 99 | | } [INFO] [stdout] 100 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | type Err = ::std::num::ParseIntError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | / fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 98 | | FromStr::from_str(s) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:102:1 [INFO] [stdout] | [INFO] [stdout] 102 | / impl FromSudoOption for String { [INFO] [stdout] 103 | | type Err = ::std::string::ParseError; [INFO] [stdout] 104 | | [INFO] [stdout] 105 | | fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 106 | | FromStr::from_str(s) [INFO] [stdout] 107 | | } [INFO] [stdout] 108 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:103:5 [INFO] [stdout] | [INFO] [stdout] 103 | type Err = ::std::string::ParseError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 105 | / fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 106 | | FromStr::from_str(s) [INFO] [stdout] 107 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:110:1 [INFO] [stdout] | [INFO] [stdout] 110 | / impl FromSudoOption for PathBuf { [INFO] [stdout] 111 | | type Err = ::std::string::ParseError; [INFO] [stdout] 112 | | [INFO] [stdout] 113 | | fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 114 | | Ok(s.into()) [INFO] [stdout] 115 | | } [INFO] [stdout] 116 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:111:5 [INFO] [stdout] | [INFO] [stdout] 111 | type Err = ::std::string::ParseError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:113:5 [INFO] [stdout] | [INFO] [stdout] 113 | / fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 114 | | Ok(s.into()) [INFO] [stdout] 115 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:118:1 [INFO] [stdout] | [INFO] [stdout] 118 | / impl FromSudoOption for Vec [INFO] [stdout] 119 | | where [INFO] [stdout] 120 | | T: FromSudoOption + FromSudoOptionList, [INFO] [stdout] 121 | | { [INFO] [stdout] ... | [INFO] [stdout] 136 | | } [INFO] [stdout] 137 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:122:5 [INFO] [stdout] | [INFO] [stdout] 122 | type Err = ParseListError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:124:5 [INFO] [stdout] | [INFO] [stdout] 124 | / fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 125 | | let list = ::from_sudo_option_list(s); [INFO] [stdout] 126 | | let mut items = Self::with_capacity(list.len()); [INFO] [stdout] 127 | | [INFO] [stdout] ... | [INFO] [stdout] 135 | | Ok(items) [INFO] [stdout] 136 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:139:1 [INFO] [stdout] | [INFO] [stdout] 139 | / impl FromSudoOption for HashSet [INFO] [stdout] 140 | | where [INFO] [stdout] 141 | | T: Eq + Hash + FromSudoOption + FromSudoOptionList, [INFO] [stdout] 142 | | { [INFO] [stdout] ... | [INFO] [stdout] 147 | | } [INFO] [stdout] 148 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:143:5 [INFO] [stdout] | [INFO] [stdout] 143 | type Err = ParseListError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:145:5 [INFO] [stdout] | [INFO] [stdout] 145 | / fn from_sudo_option(s: &str) -> ::std::result::Result { [INFO] [stdout] 146 | | Vec::::from_sudo_option(s).map(|vec| vec.into_iter().collect()) [INFO] [stdout] 147 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:223:1 [INFO] [stdout] | [INFO] [stdout] 223 | / impl FromSudoOptionList for NetAddr { [INFO] [stdout] 224 | | const SEPARATOR: char = ' '; [INFO] [stdout] 225 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/settings.rs:224:5 [INFO] [stdout] | [INFO] [stdout] 224 | const SEPARATOR: char = ' '; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:158:1 [INFO] [stdout] | [INFO] [stdout] 158 | impl FromSudoOptionList for i8 {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:159:1 [INFO] [stdout] | [INFO] [stdout] 159 | impl FromSudoOptionList for u8 {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:160:1 [INFO] [stdout] | [INFO] [stdout] 160 | impl FromSudoOptionList for i16 {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:161:1 [INFO] [stdout] | [INFO] [stdout] 161 | impl FromSudoOptionList for u16 {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:162:1 [INFO] [stdout] | [INFO] [stdout] 162 | impl FromSudoOptionList for i32 {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:163:1 [INFO] [stdout] | [INFO] [stdout] 163 | impl FromSudoOptionList for u32 {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:164:1 [INFO] [stdout] | [INFO] [stdout] 164 | impl FromSudoOptionList for i64 {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:165:1 [INFO] [stdout] | [INFO] [stdout] 165 | impl FromSudoOptionList for u64 {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/traits.rs:166:1 [INFO] [stdout] | [INFO] [stdout] 166 | impl FromSudoOptionList for PathBuf {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/version.rs:53:1 [INFO] [stdout] | [INFO] [stdout] 53 | / impl From for Version { [INFO] [stdout] 54 | | #[cfg_attr(feature="cargo-clippy", allow(clippy::cast_possible_truncation))] [INFO] [stdout] 55 | | fn from(version: c_uint) -> Self { [INFO] [stdout] 56 | | Self { [INFO] [stdout] ... | [INFO] [stdout] 60 | | } [INFO] [stdout] 61 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/version.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | / fn from(version: c_uint) -> Self { [INFO] [stdout] 56 | | Self { [INFO] [stdout] 57 | | major: (version >> 16) as _, [INFO] [stdout] 58 | | minor: (version & 0xffff) as _, [INFO] [stdout] 59 | | } [INFO] [stdout] 60 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/errors.rs:47:1 [INFO] [stdout] | [INFO] [stdout] 47 | / impl fmt::Display for IoFacility { [INFO] [stdout] 48 | | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 49 | | match *self { [INFO] [stdout] 50 | | IoFacility::PluginPrintf => write!(f, "plugin_printf"), [INFO] [stdout] ... | [INFO] [stdout] 53 | | } [INFO] [stdout] 54 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/errors.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | / fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 49 | | match *self { [INFO] [stdout] 50 | | IoFacility::PluginPrintf => write!(f, "plugin_printf"), [INFO] [stdout] 51 | | IoFacility::Conversation => write!(f, "conversation"), [INFO] [stdout] 52 | | } [INFO] [stdout] 53 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/version.rs:63:1 [INFO] [stdout] | [INFO] [stdout] 63 | / impl fmt::Display for Version { [INFO] [stdout] 64 | | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 65 | | write!(f, "{}.{}", self.major, self.minor) [INFO] [stdout] 66 | | } [INFO] [stdout] 67 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/version.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | / fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { [INFO] [stdout] 65 | | write!(f, "{}.{}", self.major, self.minor) [INFO] [stdout] 66 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:257:1 [INFO] [stdout] | [INFO] [stdout] 257 | / impl Write for Tty { [INFO] [stdout] 258 | | fn write(&mut self, buf: &[u8]) -> io::Result { [INFO] [stdout] 259 | | self.0.write(buf) [INFO] [stdout] 260 | | } [INFO] [stdout] ... | [INFO] [stdout] 264 | | } [INFO] [stdout] 265 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:258:5 [INFO] [stdout] | [INFO] [stdout] 258 | / fn write(&mut self, buf: &[u8]) -> io::Result { [INFO] [stdout] 259 | | self.0.write(buf) [INFO] [stdout] 260 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:262:5 [INFO] [stdout] | [INFO] [stdout] 262 | / fn flush(&mut self) -> io::Result<()> { [INFO] [stdout] 263 | | self.0.flush() [INFO] [stdout] 264 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:316:1 [INFO] [stdout] | [INFO] [stdout] 316 | / impl Write for Printf { [INFO] [stdout] 317 | | fn write(&mut self, buf: &[u8]) -> io::Result { [INFO] [stdout] 318 | | let message = CString::new(buf).map_err(|err| [INFO] [stdout] 319 | | io::Error::new(io::ErrorKind::InvalidData, err) [INFO] [stdout] ... | [INFO] [stdout] 344 | | } [INFO] [stdout] 345 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:317:5 [INFO] [stdout] | [INFO] [stdout] 317 | / fn write(&mut self, buf: &[u8]) -> io::Result { [INFO] [stdout] 318 | | let message = CString::new(buf).map_err(|err| [INFO] [stdout] 319 | | io::Error::new(io::ErrorKind::InvalidData, err) [INFO] [stdout] 320 | | )?; [INFO] [stdout] ... | [INFO] [stdout] 338 | | Ok(ret as _) [INFO] [stdout] 339 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing code example in this documentation [INFO] [stdout] --> src/plugin/mod.rs:342:5 [INFO] [stdout] | [INFO] [stdout] 342 | / fn flush(&mut self) -> io::Result<()> { [INFO] [stdout] 343 | | Ok(()) [INFO] [stdout] 344 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 237 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 49.77s [INFO] running `Command { std: "docker" "inspect" "6d623e6d854d4d5465399f7a52f10c44dba55fc2ee09384840d9ba0e77de7a8c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6d623e6d854d4d5465399f7a52f10c44dba55fc2ee09384840d9ba0e77de7a8c", kill_on_drop: false }` [INFO] [stdout] 6d623e6d854d4d5465399f7a52f10c44dba55fc2ee09384840d9ba0e77de7a8c