[INFO] cloning repository https://github.com/ut-utp/prototype
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ut-utp/prototype" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fut-utp%2Fprototype", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fut-utp%2Fprototype'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1e9a83d39fdaa630b988108749f55d26e8134ac3
[INFO] checking ut-utp/prototype against beta-2021-10-15 for beta-1.56-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fut-utp%2Fprototype" "/workspace/builds/worker-53/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-53/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/ut-utp/prototype on toolchain beta-2021-10-15
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-10-15" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/ut-utp/prototype
[INFO] finished tweaking git repo https://github.com/ut-utp/prototype
[INFO] tweaked toml for git repo https://github.com/ut-utp/prototype written to /workspace/builds/worker-53/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-10-15" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-10-15" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded mach v0.1.2
[INFO] [stderr]   Downloaded CoreFoundation-sys v0.1.4
[INFO] [stderr]   Downloaded heapless v0.5.6
[INFO] [stderr]   Downloaded cast v0.2.7
[INFO] [stderr]   Downloaded generic-array v0.13.3
[INFO] [stderr]   Downloaded rustc_version v0.4.0
[INFO] [stderr]   Downloaded plotters-backend v0.3.2
[INFO] [stderr]   Downloaded embedded-hal v0.2.6
[INFO] [stderr]   Downloaded serde_cbor v0.11.2
[INFO] [stderr]   Downloaded wepoll-ffi v0.1.2
[INFO] [stderr]   Downloaded async-lock v2.4.0
[INFO] [stderr]   Downloaded plotters-svg v0.3.1
[INFO] [stderr]   Downloaded polling v2.1.0
[INFO] [stderr]   Downloaded ctor v0.1.21
[INFO] [stderr]   Downloaded async-std v1.10.0
[INFO] [stderr]   Downloaded oorandom v11.1.3
[INFO] [stderr]   Downloaded criterion-plot v0.4.4
[INFO] [stderr]   Downloaded libudev v0.2.0
[INFO] [stderr]   Downloaded derive_arbitrary v0.4.7
[INFO] [stderr]   Downloaded criterion v0.3.5
[INFO] [stderr]   Downloaded async-executor v1.4.1
[INFO] [stderr]   Downloaded async-io v1.6.0
[INFO] [stderr]   Downloaded postcard-cobs v0.1.5-pre
[INFO] [stderr]   Downloaded IOKit-sys v0.1.5
[INFO] [stderr]   Downloaded serialport v3.3.0
[INFO] [stderr]   Downloaded arbitrary v0.4.7
[INFO] [stderr]   Downloaded postcard v0.5.2
[INFO] [stderr]   Downloaded semver v1.0.4
[INFO] [stderr]   Downloaded value-bag v1.0.0-alpha.7
[INFO] [stderr]   Downloaded tinytemplate v1.2.1
[INFO] [stderr]   Downloaded as-slice v0.1.5
[INFO] [stderr]   Downloaded hash32 v0.1.1
[INFO] [stderr]   Downloaded plotters v0.3.1
[INFO] [stderr]   Downloaded lc3tools-sys v1.0.6-alpha2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-53/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-53/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" "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" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-10-15" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a268afb134e9a3b2f23e62b49d5b000afacb260dc2605a013b46f5459db786c1
[INFO] running `Command { std: "docker" "start" "-a" "a268afb134e9a3b2f23e62b49d5b000afacb260dc2605a013b46f5459db786c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a268afb134e9a3b2f23e62b49d5b000afacb260dc2605a013b46f5459db786c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a268afb134e9a3b2f23e62b49d5b000afacb260dc2605a013b46f5459db786c1", kill_on_drop: false }`
[INFO] [stdout] a268afb134e9a3b2f23e62b49d5b000afacb260dc2605a013b46f5459db786c1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-53/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-53/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-10-15" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1782a7f7300ed17d7a974b0f6f7217479e4cb87f31d9d471904b8ead7fc5589d
[INFO] running `Command { std: "docker" "start" "-a" "1782a7f7300ed17d7a974b0f6f7217479e4cb87f31d9d471904b8ead7fc5589d", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.30
[INFO] [stderr]    Compiling syn v1.0.80
[INFO] [stderr]    Compiling libc v0.2.104
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]     Checking static_assertions v1.1.0
[INFO] [stderr]     Checking itoa v0.4.8
[INFO] [stderr]     Checking difference v2.0.0
[INFO] [stderr]    Compiling pkg-config v0.3.20
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling heapless v0.5.6
[INFO] [stderr]     Checking nb v1.0.0
[INFO] [stderr]     Checking postcard-cobs v0.1.5-pre
[INFO] [stderr]     Checking ppv-lite86 v0.2.14
[INFO] [stderr]    Compiling lc3-test-infrastructure v0.1.0 (/opt/rustwide/workdir/test-infrastructure)
[INFO] [stderr]    Compiling futures-core v0.3.17
[INFO] [stderr]     Checking cache-padded v1.1.1
[INFO] [stderr]     Checking parking v2.0.0
[INFO] [stderr]     Checking fastrand v1.5.0
[INFO] [stderr]     Checking waker-fn v1.1.0
[INFO] [stderr]     Checking event-listener v2.5.1
[INFO] [stderr]     Checking futures-io v0.3.17
[INFO] [stderr]     Checking async-task v4.0.3
[INFO] [stderr]    Compiling ansi_term v0.11.0
[INFO] [stderr]     Checking slab v0.4.5
[INFO] [stderr]     Checking atomic-waker v1.0.0
[INFO] [stderr]     Checking plotters-backend v0.3.2
[INFO] [stderr]     Checking regex-automata v0.1.10
[INFO] [stderr]     Checking unicode-width v0.1.9
[INFO] [stderr]     Checking half v1.8.0
[INFO] [stderr]     Checking unicode-xid v0.2.2
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking oorandom v11.1.3
[INFO] [stderr]    Compiling serde_derive v1.0.130
[INFO] [stderr]    Compiling serde v1.0.130
[INFO] [stderr]    Compiling value-bag v1.0.0-alpha.7
[INFO] [stderr]    Compiling serde_json v1.0.68
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling typenum v1.14.0
[INFO] [stderr]     Checking hash32 v0.1.1
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.5
[INFO] [stderr]    Compiling semver v1.0.4
[INFO] [stderr]     Checking itertools v0.9.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.5
[INFO] [stderr]    Compiling rayon-core v1.9.1
[INFO] [stderr]    Compiling rayon v1.5.1
[INFO] [stderr]     Checking itertools v0.10.1
[INFO] [stderr]     Checking pretty_assertions v0.6.1
[INFO] [stderr]     Checking nb v0.1.3
[INFO] [stderr]     Checking concurrent-queue v1.2.2
[INFO] [stderr]    Compiling ryu v1.0.5
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking async-mutex v1.4.0
[INFO] [stderr]     Checking async-lock v2.4.0
[INFO] [stderr]     Checking plotters-svg v0.3.1
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]     Checking embedded-hal v0.2.6
[INFO] [stderr]     Checking walkdir v2.3.2
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking crossbeam-channel v0.5.1
[INFO] [stderr]    Compiling rustc_version v0.4.0
[INFO] [stderr]     Checking async-channel v1.6.1
[INFO] [stderr]     Checking futures-lite v1.12.0
[INFO] [stderr]     Checking csv-core v0.1.10
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]    Compiling quote v1.0.10
[INFO] [stderr]     Checking regex v1.5.4
[INFO] [stderr]    Compiling jobserver v0.1.24
[INFO] [stderr]     Checking generic-array v0.12.4
[INFO] [stderr]     Checking generic-array v0.14.4
[INFO] [stderr]     Checking generic-array v0.13.3
[INFO] [stderr]     Checking time v0.1.44
[INFO] [stderr]     Checking nix v0.14.1
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking socket2 v0.4.2
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking num-integer v0.1.44
[INFO] [stderr]     Checking plotters v0.3.1
[INFO] [stderr]     Checking crossbeam-deque v0.8.1
[INFO] [stderr]    Compiling cc v1.0.71
[INFO] [stderr]     Checking libudev v0.2.0
[INFO] [stderr]    Compiling cast v0.2.7
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking blocking v1.0.2
[INFO] [stderr]     Checking async-executor v1.4.1
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]     Checking as-slice v0.1.5
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking criterion-plot v0.4.4
[INFO] [stderr]     Checking timer v0.2.0
[INFO] [stderr]     Checking lc3-macros v0.1.0 (/opt/rustwide/workdir/macros)
[INFO] [stderr]     Checking serialport v3.3.0
[INFO] [stdout] warning: lint `legacy_directory_ownership` has been removed: converted into hard error, see issue #37872 <https://github.com/rust-lang/rust/issues/37872> for more information
[INFO] [stdout]   --> macros/src/lib.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     legacy_directory_ownership,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(renamed_and_removed_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `plugin_as_library` has been removed: plugins have been deprecated and retired
[INFO] [stdout]   --> macros/src/lib.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     plugin_as_library,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `safe_extern_statics` has been removed: converted into hard error, see issue #36247 <https://github.com/rust-lang/rust/issues/36247> for more information
[INFO] [stdout]   --> macros/src/lib.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     safe_extern_statics,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `intra_doc_link_resolution_failure` has been removed: use `rustdoc::broken_intra_doc_links` instead
[INFO] [stdout]   --> macros/src/lib.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     intra_doc_link_resolution_failure,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `legacy_directory_ownership` has been removed: converted into hard error, see issue #37872 <https://github.com/rust-lang/rust/issues/37872> for more information
[INFO] [stdout]   --> macros/src/lib.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     legacy_directory_ownership,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(renamed_and_removed_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `plugin_as_library` has been removed: plugins have been deprecated and retired
[INFO] [stdout]   --> macros/src/lib.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     plugin_as_library,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `safe_extern_statics` has been removed: converted into hard error, see issue #36247 <https://github.com/rust-lang/rust/issues/36247> for more information
[INFO] [stdout]   --> macros/src/lib.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     safe_extern_statics,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `intra_doc_link_resolution_failure` has been removed: use `rustdoc::broken_intra_doc_links` instead
[INFO] [stdout]   --> macros/src/lib.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     intra_doc_link_resolution_failure,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro::TokenTree`
[INFO] [stdout]   --> macros/src/lib.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | use proc_macro::TokenTree;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> macros/src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unused,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    = note: `#[warn(unused_imports)]` implied by `#[warn(unused)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern crate` is not idiomatic in the new edition
[INFO] [stdout]   --> macros/src/lib.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | extern crate proc_macro;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert it to a `use`
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> macros/src/lib.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     rust_2018_idioms
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(unused_extern_crates)]` implied by `#[warn(rust_2018_idioms)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro::TokenTree`
[INFO] [stdout]   --> macros/src/lib.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | use proc_macro::TokenTree;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> macros/src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unused,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    = note: `#[warn(unused_imports)]` implied by `#[warn(unused)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `spanned_err`
[INFO] [stdout]   --> macros/src/lib.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) fn spanned_err(span: Span, msg: impl Into<String>) -> proc_macro::TokenStream {
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> macros/src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unused,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    = note: `#[warn(dead_code)]` implied by `#[warn(unused)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> macros/src/lib.rs:96:1
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn create_label(tokens: proc_macro::TokenStream) -> proc_macro::TokenStream {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> macros/src/lib.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     missing_docs,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> macros/src/lib.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn derive_display_from_debug(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern crate` is not idiomatic in the new edition
[INFO] [stdout]   --> macros/src/lib.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | extern crate proc_macro;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert it to a `use`
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> macros/src/lib.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     rust_2018_idioms
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(unused_extern_crates)]` implied by `#[warn(rust_2018_idioms)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `spanned_err`
[INFO] [stdout]   --> macros/src/lib.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) fn spanned_err(span: Span, msg: impl Into<String>) -> proc_macro::TokenStream {
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> macros/src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unused,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    = note: `#[warn(dead_code)]` implied by `#[warn(unused)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 7 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ctor v0.1.21
[INFO] [stdout] warning: lint `legacy_directory_ownership` has been removed: converted into hard error, see issue #37872 <https://github.com/rust-lang/rust/issues/37872> for more information
[INFO] [stdout]   --> macros/src/lib.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     legacy_directory_ownership,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(renamed_and_removed_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `plugin_as_library` has been removed: plugins have been deprecated and retired
[INFO] [stdout]   --> macros/src/lib.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     plugin_as_library,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `safe_extern_statics` has been removed: converted into hard error, see issue #36247 <https://github.com/rust-lang/rust/issues/36247> for more information
[INFO] [stdout]   --> macros/src/lib.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     safe_extern_statics,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `intra_doc_link_resolution_failure` has been removed: use `rustdoc::broken_intra_doc_links` instead
[INFO] [stdout]   --> macros/src/lib.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     intra_doc_link_resolution_failure,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro::TokenTree`
[INFO] [stdout]   --> macros/src/lib.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | use proc_macro::TokenTree;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> macros/src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unused,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    = note: `#[warn(unused_imports)]` implied by `#[warn(unused)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern crate` is not idiomatic in the new edition
[INFO] [stdout]   --> macros/src/lib.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | extern crate proc_macro;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert it to a `use`
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> macros/src/lib.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     rust_2018_idioms
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(unused_extern_crates)]` implied by `#[warn(rust_2018_idioms)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `spanned_err`
[INFO] [stdout]   --> macros/src/lib.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) fn spanned_err(span: Span, msg: impl Into<String>) -> proc_macro::TokenStream {
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> macros/src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unused,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    = note: `#[warn(dead_code)]` implied by `#[warn(unused)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> macros/src/lib.rs:96:1
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn create_label(tokens: proc_macro::TokenStream) -> proc_macro::TokenStream {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> macros/src/lib.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     missing_docs,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> macros/src/lib.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn derive_display_from_debug(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking polling v2.1.0
[INFO] [stderr]     Checking kv-log-macro v1.0.7
[INFO] [stderr]     Checking async-io v1.6.0
[INFO] [stderr]     Checking async-global-executor v2.0.2
[INFO] [stderr]     Checking async-std v1.10.0
[INFO] [stderr]     Checking lc3-isa v0.1.0 (/opt/rustwide/workdir/isa)
[INFO] [stderr]     Checking bstr v0.2.17
[INFO] [stderr]     Checking serde_cbor v0.11.2
[INFO] [stdout] warning: lint `legacy_directory_ownership` has been removed: converted into hard error, see issue #37872 <https://github.com/rust-lang/rust/issues/37872> for more information
[INFO] [stdout]   --> isa/src/lib.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     legacy_directory_ownership,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(renamed_and_removed_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `plugin_as_library` has been removed: plugins have been deprecated and retired
[INFO] [stdout]   --> isa/src/lib.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     plugin_as_library,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `safe_extern_statics` has been removed: converted into hard error, see issue #36247 <https://github.com/rust-lang/rust/issues/36247> for more information
[INFO] [stdout]   --> isa/src/lib.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     safe_extern_statics,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `intra_doc_link_resolution_failure` has been removed: use `rustdoc::broken_intra_doc_links` instead
[INFO] [stdout]   --> isa/src/lib.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     intra_doc_link_resolution_failure,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `legacy_directory_ownership` has been removed: converted into hard error, see issue #37872 <https://github.com/rust-lang/rust/issues/37872> for more information
[INFO] [stdout]   --> isa/src/lib.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     legacy_directory_ownership,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(renamed_and_removed_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `plugin_as_library` has been removed: plugins have been deprecated and retired
[INFO] [stdout]   --> isa/src/lib.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     plugin_as_library,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `safe_extern_statics` has been removed: converted into hard error, see issue #36247 <https://github.com/rust-lang/rust/issues/36247> for more information
[INFO] [stdout]   --> isa/src/lib.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     safe_extern_statics,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `intra_doc_link_resolution_failure` has been removed: use `rustdoc::broken_intra_doc_links` instead
[INFO] [stdout]   --> isa/src/lib.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     intra_doc_link_resolution_failure,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trivial numeric cast: `usize` as `usize`
[INFO] [stdout]    --> isa/src/isa.rs:695:17
[INFO] [stdout]     |
[INFO] [stdout] 695 |                   ((self >> range.start) & mask) as usize
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 704 | / bits_impl!{
[INFO] [stdout] 705 | |     u8, i8, u16, i16, u32, i32, i64, u64, isize, usize,
[INFO] [stdout] 706 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> isa/src/lib.rs:35:5
[INFO] [stdout]     |
[INFO] [stdout] 35  |     trivial_numeric_casts,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: cast can be replaced by coercion; this might require a temporary variable
[INFO] [stdout]     = note: this warning originates in the macro `bits_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trivial numeric cast: `usize` as `usize`
[INFO] [stdout]    --> isa/src/isa.rs:695:17
[INFO] [stdout]     |
[INFO] [stdout] 695 |                   ((self >> range.start) & mask) as usize
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 704 | / bits_impl!{
[INFO] [stdout] 705 | |     u8, i8, u16, i16, u32, i32, i64, u64, isize, usize,
[INFO] [stdout] 706 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> isa/src/lib.rs:35:5
[INFO] [stdout]     |
[INFO] [stdout] 35  |     trivial_numeric_casts,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: cast can be replaced by coercion; this might require a temporary variable
[INFO] [stdout]     = note: this warning originates in the macro `bits_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> isa/src/lib.rs:98:1
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub const PSR: Addr = 0xFFFC;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> isa/src/lib.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     missing_docs,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> isa/src/lib.rs:99:1
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub const MCR: Addr = 0xFFFE;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> isa/src/lib.rs:101:1
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub const OS_START_ADDR: Addr = 0x0200; // TODO: should this go here?
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> isa/src/lib.rs:103:1
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub const MEM_MAPPED_START_ADDR: Addr = 0xFE00;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking csv v1.1.6
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> isa/src/lib.rs:104:1
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub const USER_PROGRAM_START_ADDR: Addr = 0x3000;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> isa/src/lib.rs:106:1
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub const TRAP_VECTOR_TABLE_START_ADDR: Addr = 0x0000;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> isa/src/lib.rs:107:1
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub const NUM_TRAP_VECTORS: Addr = 256;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> isa/src/lib.rs:109:1
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub const INTERRUPT_VECTOR_TABLE_START_ADDR: Addr = 0x0100;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> isa/src/lib.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub const EXCEPTION_SERVICE_ROUTINES_START_ADDR: Addr = INTERRUPT_VECTOR_TABLE_START_ADDR;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> isa/src/lib.rs:112:1
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub const NUM_EXCEPTION_SERVICE_ROUTINES: Addr = 128;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> isa/src/lib.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | / pub const INTERRUPT_SERVICE_ROUTINES_START_ADDR: Addr =
[INFO] [stdout] 115 | |     INTERRUPT_VECTOR_TABLE_START_ADDR + NUM_EXCEPTION_SERVICE_ROUTINES;
[INFO] [stdout]     | |_______________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> isa/src/lib.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub const NUM_INTERRUPT_SERVICE_ROUTINES: Addr = 128;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> isa/src/lib.rs:118:1
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub const PRIVILEGE_MODE_VIOLATION_EXCEPTION_VECTOR: u8 = 0x00;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> isa/src/lib.rs:119:1
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub const ILLEGAL_OPCODE_EXCEPTION_VECTOR: u8 = 0x01;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> isa/src/lib.rs:120:1
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub const ACCESS_CONTROL_VIOLATION_EXCEPTION_VECTOR: u8 = 0x02; // TODO: Verify
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> isa/src/isa.rs:15:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum PriorityLevel { PL0, PL1, PL2, PL3, PL4, PL5, PL6, PL7 }
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:15:26
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum PriorityLevel { PL0, PL1, PL2, PL3, PL4, PL5, PL6, PL7 }
[INFO] [stdout]    |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:15:31
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum PriorityLevel { PL0, PL1, PL2, PL3, PL4, PL5, PL6, PL7 }
[INFO] [stdout]    |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:15:36
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum PriorityLevel { PL0, PL1, PL2, PL3, PL4, PL5, PL6, PL7 }
[INFO] [stdout]    |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:15:41
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum PriorityLevel { PL0, PL1, PL2, PL3, PL4, PL5, PL6, PL7 }
[INFO] [stdout]    |                                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:15:46
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum PriorityLevel { PL0, PL1, PL2, PL3, PL4, PL5, PL6, PL7 }
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:15:51
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum PriorityLevel { PL0, PL1, PL2, PL3, PL4, PL5, PL6, PL7 }
[INFO] [stdout]    |                                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:15:56
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum PriorityLevel { PL0, PL1, PL2, PL3, PL4, PL5, PL6, PL7 }
[INFO] [stdout]    |                                                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:15:61
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum PriorityLevel { PL0, PL1, PL2, PL3, PL4, PL5, PL6, PL7 }
[INFO] [stdout]    |                                                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> isa/src/isa.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const NUM_LEVELS: usize = 8;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> isa/src/isa.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub const LEVELS: [PriorityLevel; PriorityLevel::NUM_LEVELS] = {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> isa/src/isa.rs:92:1
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub enum Reg { R0, R1, R2, R3, R4, R5, R6, R7 }
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:92:16
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub enum Reg { R0, R1, R2, R3, R4, R5, R6, R7 }
[INFO] [stdout]    |                ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:92:20
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub enum Reg { R0, R1, R2, R3, R4, R5, R6, R7 }
[INFO] [stdout]    |                    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:92:24
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub enum Reg { R0, R1, R2, R3, R4, R5, R6, R7 }
[INFO] [stdout]    |                        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:92:28
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub enum Reg { R0, R1, R2, R3, R4, R5, R6, R7 }
[INFO] [stdout]    |                            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:92:32
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub enum Reg { R0, R1, R2, R3, R4, R5, R6, R7 }
[INFO] [stdout]    |                                ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:92:36
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub enum Reg { R0, R1, R2, R3, R4, R5, R6, R7 }
[INFO] [stdout]    |                                    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:92:40
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub enum Reg { R0, R1, R2, R3, R4, R5, R6, R7 }
[INFO] [stdout]    |                                        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> isa/src/isa.rs:92:44
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub enum Reg { R0, R1, R2, R3, R4, R5, R6, R7 }
[INFO] [stdout]    |                                            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> isa/src/isa.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub const NUM_REGS: usize = 8;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> isa/src/isa.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub const REGS: [Reg; Reg::NUM_REGS] = {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]    --> isa/src/isa.rs:229:1
[INFO] [stdout]     |
[INFO] [stdout] 229 | pub enum Instruction {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:230:5
[INFO] [stdout]     |
[INFO] [stdout] 230 |     AddReg { dr: Reg, sr1: Reg, sr2: Reg },         // RRR
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:230:14
[INFO] [stdout]     |
[INFO] [stdout] 230 |     AddReg { dr: Reg, sr1: Reg, sr2: Reg },         // RRR
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:230:23
[INFO] [stdout]     |
[INFO] [stdout] 230 |     AddReg { dr: Reg, sr1: Reg, sr2: Reg },         // RRR
[INFO] [stdout]     |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:230:33
[INFO] [stdout]     |
[INFO] [stdout] 230 |     AddReg { dr: Reg, sr1: Reg, sr2: Reg },         // RRR
[INFO] [stdout]     |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:231:5
[INFO] [stdout]     |
[INFO] [stdout] 231 |     AddImm { dr: Reg, sr1: Reg, imm5: Sw },         // RR5
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:231:14
[INFO] [stdout]     |
[INFO] [stdout] 231 |     AddImm { dr: Reg, sr1: Reg, imm5: Sw },         // RR5
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:231:23
[INFO] [stdout]     |
[INFO] [stdout] 231 |     AddImm { dr: Reg, sr1: Reg, imm5: Sw },         // RR5
[INFO] [stdout]     |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:231:33
[INFO] [stdout]     |
[INFO] [stdout] 231 |     AddImm { dr: Reg, sr1: Reg, imm5: Sw },         // RR5
[INFO] [stdout]     |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:232:5
[INFO] [stdout]     |
[INFO] [stdout] 232 |     AndReg { dr: Reg, sr1: Reg, sr2: Reg },         // RRR
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:232:14
[INFO] [stdout]     |
[INFO] [stdout] 232 |     AndReg { dr: Reg, sr1: Reg, sr2: Reg },         // RRR
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:232:23
[INFO] [stdout]     |
[INFO] [stdout] 232 |     AndReg { dr: Reg, sr1: Reg, sr2: Reg },         // RRR
[INFO] [stdout]     |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:232:33
[INFO] [stdout]     |
[INFO] [stdout] 232 |     AndReg { dr: Reg, sr1: Reg, sr2: Reg },         // RRR
[INFO] [stdout]     |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:233:5
[INFO] [stdout]     |
[INFO] [stdout] 233 |     AndImm { dr: Reg, sr1: Reg, imm5: Sw },         // RR5
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:233:14
[INFO] [stdout]     |
[INFO] [stdout] 233 |     AndImm { dr: Reg, sr1: Reg, imm5: Sw },         // RR5
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:233:23
[INFO] [stdout]     |
[INFO] [stdout] 233 |     AndImm { dr: Reg, sr1: Reg, imm5: Sw },         // RR5
[INFO] [stdout]     |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:233:33
[INFO] [stdout]     |
[INFO] [stdout] 233 |     AndImm { dr: Reg, sr1: Reg, imm5: Sw },         // RR5
[INFO] [stdout]     |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:234:5
[INFO] [stdout]     |
[INFO] [stdout] 234 |     Br { n: bool, z: bool, p: bool, offset9: Sw },  // nzp9
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:234:10
[INFO] [stdout]     |
[INFO] [stdout] 234 |     Br { n: bool, z: bool, p: bool, offset9: Sw },  // nzp9
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:234:19
[INFO] [stdout]     |
[INFO] [stdout] 234 |     Br { n: bool, z: bool, p: bool, offset9: Sw },  // nzp9
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:234:28
[INFO] [stdout]     |
[INFO] [stdout] 234 |     Br { n: bool, z: bool, p: bool, offset9: Sw },  // nzp9
[INFO] [stdout]     |                            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:234:37
[INFO] [stdout]     |
[INFO] [stdout] 234 |     Br { n: bool, z: bool, p: bool, offset9: Sw },  // nzp9
[INFO] [stdout]     |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:235:5
[INFO] [stdout]     |
[INFO] [stdout] 235 |     Jmp { base: Reg },                              // B
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:235:11
[INFO] [stdout]     |
[INFO] [stdout] 235 |     Jmp { base: Reg },                              // B
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:236:5
[INFO] [stdout]     |
[INFO] [stdout] 236 |     Jsr { offset11: Sw },                           // b
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:236:11
[INFO] [stdout]     |
[INFO] [stdout] 236 |     Jsr { offset11: Sw },                           // b
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:237:5
[INFO] [stdout]     |
[INFO] [stdout] 237 |     Jsrr { base: Reg },                             // B
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:237:12
[INFO] [stdout]     |
[INFO] [stdout] 237 |     Jsrr { base: Reg },                             // B
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:238:5
[INFO] [stdout]     |
[INFO] [stdout] 238 |     Ld { dr: Reg, offset9: Sw },                    // R9
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:238:10
[INFO] [stdout]     |
[INFO] [stdout] 238 |     Ld { dr: Reg, offset9: Sw },                    // R9
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:238:19
[INFO] [stdout]     |
[INFO] [stdout] 238 |     Ld { dr: Reg, offset9: Sw },                    // R9
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:239:5
[INFO] [stdout]     |
[INFO] [stdout] 239 |     Ldi { dr: Reg, offset9: Sw },                   // R9
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:239:11
[INFO] [stdout]     |
[INFO] [stdout] 239 |     Ldi { dr: Reg, offset9: Sw },                   // R9
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:239:20
[INFO] [stdout]     |
[INFO] [stdout] 239 |     Ldi { dr: Reg, offset9: Sw },                   // R9
[INFO] [stdout]     |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:240:5
[INFO] [stdout]     |
[INFO] [stdout] 240 |     Ldr { dr: Reg, base: Reg, offset6: Sw },        // RR6
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:240:11
[INFO] [stdout]     |
[INFO] [stdout] 240 |     Ldr { dr: Reg, base: Reg, offset6: Sw },        // RR6
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:240:20
[INFO] [stdout]     |
[INFO] [stdout] 240 |     Ldr { dr: Reg, base: Reg, offset6: Sw },        // RR6
[INFO] [stdout]     |                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:240:31
[INFO] [stdout]     |
[INFO] [stdout] 240 |     Ldr { dr: Reg, base: Reg, offset6: Sw },        // RR6
[INFO] [stdout]     |                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:241:5
[INFO] [stdout]     |
[INFO] [stdout] 241 |     Lea { dr: Reg, offset9: Sw },                   // R9
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:241:11
[INFO] [stdout]     |
[INFO] [stdout] 241 |     Lea { dr: Reg, offset9: Sw },                   // R9
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:241:20
[INFO] [stdout]     |
[INFO] [stdout] 241 |     Lea { dr: Reg, offset9: Sw },                   // R9
[INFO] [stdout]     |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:242:5
[INFO] [stdout]     |
[INFO] [stdout] 242 |     Not { dr: Reg, sr: Reg },                       // RR
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:242:11
[INFO] [stdout]     |
[INFO] [stdout] 242 |     Not { dr: Reg, sr: Reg },                       // RR
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:242:20
[INFO] [stdout]     |
[INFO] [stdout] 242 |     Not { dr: Reg, sr: Reg },                       // RR
[INFO] [stdout]     |                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:243:5
[INFO] [stdout]     |
[INFO] [stdout] 243 |     Ret,                                            //
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:244:5
[INFO] [stdout]     |
[INFO] [stdout] 244 |     Rti,                                            //
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:245:5
[INFO] [stdout]     |
[INFO] [stdout] 245 |     St { sr: Reg, offset9: Sw },                    // R9
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:245:10
[INFO] [stdout]     |
[INFO] [stdout] 245 |     St { sr: Reg, offset9: Sw },                    // R9
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:245:19
[INFO] [stdout]     |
[INFO] [stdout] 245 |     St { sr: Reg, offset9: Sw },                    // R9
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:246:5
[INFO] [stdout]     |
[INFO] [stdout] 246 |     Sti { sr: Reg, offset9: Sw },                   // R9
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:246:11
[INFO] [stdout]     |
[INFO] [stdout] 246 |     Sti { sr: Reg, offset9: Sw },                   // R9
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:246:20
[INFO] [stdout]     |
[INFO] [stdout] 246 |     Sti { sr: Reg, offset9: Sw },                   // R9
[INFO] [stdout]     |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:247:5
[INFO] [stdout]     |
[INFO] [stdout] 247 |     Str { sr: Reg, base: Reg, offset6: Sw },        // RR6
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:247:11
[INFO] [stdout]     |
[INFO] [stdout] 247 |     Str { sr: Reg, base: Reg, offset6: Sw },        // RR6
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:247:20
[INFO] [stdout]     |
[INFO] [stdout] 247 |     Str { sr: Reg, base: Reg, offset6: Sw },        // RR6
[INFO] [stdout]     |                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:247:31
[INFO] [stdout]     |
[INFO] [stdout] 247 |     Str { sr: Reg, base: Reg, offset6: Sw },        // RR6
[INFO] [stdout]     |                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> isa/src/isa.rs:248:5
[INFO] [stdout]     |
[INFO] [stdout] 248 |     Trap { trapvec: u8 },                           // 8
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> isa/src/isa.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 248 |     Trap { trapvec: u8 },                           // 8
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> isa/src/isa.rs:272:1
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub const fn check_signed_imm(imm: SignedWord, num_bits: u32) -> bool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:480:5
[INFO] [stdout]     |
[INFO] [stdout] 480 |     pub const fn new_ld(dr: Reg, offset9: SignedWord) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:491:5
[INFO] [stdout]     |
[INFO] [stdout] 491 |     pub const fn new_ldi(dr: Reg, offset9: SignedWord) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:502:5
[INFO] [stdout]     |
[INFO] [stdout] 502 |     pub const fn new_ldr(dr: Reg, base: Reg, offset6: SignedWord) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:513:5
[INFO] [stdout]     |
[INFO] [stdout] 513 |     pub const fn new_lea(dr: Reg, offset9: SignedWord) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:524:5
[INFO] [stdout]     |
[INFO] [stdout] 524 |     pub const fn new_not(dr: Reg, sr: Reg) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:551:5
[INFO] [stdout]     |
[INFO] [stdout] 551 |     pub const fn new_st(sr: Reg, offset9: SignedWord) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:562:5
[INFO] [stdout]     |
[INFO] [stdout] 562 |     pub const fn new_sti(sr: Reg, offset9: SignedWord) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:573:5
[INFO] [stdout]     |
[INFO] [stdout] 573 |     pub const fn new_str(sr: Reg, base: Reg, offset6: SignedWord) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:584:5
[INFO] [stdout]     |
[INFO] [stdout] 584 |     pub const fn new_trap(trapvec: u8) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:591:5
[INFO] [stdout]     |
[INFO] [stdout] 591 |     pub fn sets_condition_codes(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> isa/src/isa.rs:618:1
[INFO] [stdout]     |
[INFO] [stdout] 618 | pub trait Bits: Sized + Copy {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:619:5
[INFO] [stdout]     |
[INFO] [stdout] 619 |     fn bit(self, bit: u32) -> bool;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:621:5
[INFO] [stdout]     |
[INFO] [stdout] 621 |     fn b(self, bit: u32) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:625:5
[INFO] [stdout]     |
[INFO] [stdout] 625 |     fn bits(self, range: Range<u32>) -> usize;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:627:5
[INFO] [stdout]     |
[INFO] [stdout] 627 |     fn u8(self, range: Range<u32>) -> u8 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:632:5
[INFO] [stdout]     |
[INFO] [stdout] 632 |     fn i8(self, range: Range<u32>) -> i8 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:642:5
[INFO] [stdout]     |
[INFO] [stdout] 642 |     fn u16(self, range: Range<u32>) -> u16 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:647:5
[INFO] [stdout]     |
[INFO] [stdout] 647 |     fn word(self, range: Range<u32>) -> Word {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:651:5
[INFO] [stdout]     |
[INFO] [stdout] 651 |     fn select(self, range: Range<u32>) -> Word {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:656:5
[INFO] [stdout]     |
[INFO] [stdout] 656 |     fn i16(self, range: Range<u32>) -> i16 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:666:5
[INFO] [stdout]     |
[INFO] [stdout] 666 |     fn u32(self, range: Range<u32>) -> u32 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:671:5
[INFO] [stdout]     |
[INFO] [stdout] 671 |     fn i32(self, range: Range<u32>) -> i32 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:681:5
[INFO] [stdout]     |
[INFO] [stdout] 681 |     fn reg(self, lowest_bit: u32) -> Reg {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/isa.rs:771:23
[INFO] [stdout]     |
[INFO] [stdout] 771 |     nightly_const! { [pub] => [fn to_word(&self) -> u16 {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a macro
[INFO] [stdout]  --> isa/src/macros.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | macro_rules! insn {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a macro
[INFO] [stdout]    --> isa/src/macros.rs:105:1
[INFO] [stdout]     |
[INFO] [stdout] 105 | macro_rules! word {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a macro
[INFO] [stdout]    --> isa/src/macros.rs:181:1
[INFO] [stdout]     |
[INFO] [stdout] 181 | macro_rules! loadable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a macro
[INFO] [stdout]    --> isa/src/macros.rs:202:1
[INFO] [stdout]     |
[INFO] [stdout] 202 | macro_rules! program {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]    --> isa/src/misc.rs:298:1
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub mod util {
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> isa/src/misc.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 306 |     pub struct MemoryDump(pub [Word; ADDR_SPACE_SIZE_IN_WORDS]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type does not implement `Debug`; consider adding `#[derive(Debug)]` or a manual implementation
[INFO] [stdout]    --> isa/src/misc.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 306 |     pub struct MemoryDump(pub [Word; ADDR_SPACE_SIZE_IN_WORDS]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> isa/src/lib.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout] 30  |     missing_debug_implementations,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/misc.rs:328:9
[INFO] [stdout]     |
[INFO] [stdout] 328 |         pub fn blank() -> Self {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/misc.rs:332:9
[INFO] [stdout]     |
[INFO] [stdout] 332 |         pub fn layer_loadable<L: LoadableIterator>(&mut self, loadable: L) -> &mut Self {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/misc.rs:342:9
[INFO] [stdout]     |
[INFO] [stdout] 342 |         pub fn layer_iterator<I: Iterator<Item = (Addr, Word)>>(&mut self, iter: I) -> &mut Self {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> isa/src/misc.rs:374:5
[INFO] [stdout]     |
[INFO] [stdout] 374 |     pub struct AssembledProgram(pub [(Word, bool); ADDR_SPACE_SIZE_IN_WORDS]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type does not implement `Debug`; consider adding `#[derive(Debug)]` or a manual implementation
[INFO] [stdout]    --> isa/src/misc.rs:374:5
[INFO] [stdout]     |
[INFO] [stdout] 374 |     pub struct AssembledProgram(pub [(Word, bool); ADDR_SPACE_SIZE_IN_WORDS]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/misc.rs:376:9
[INFO] [stdout]     |
[INFO] [stdout] 376 |         pub const fn new(mem: [(Word, bool); ADDR_SPACE_SIZE_IN_WORDS]) -> Self {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> isa/src/misc.rs:402:5
[INFO] [stdout]     |
[INFO] [stdout] 402 |     pub trait LoadableIterator: IntoIterator<Item = (Addr, Word)> + Sized {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> isa/src/misc.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         fn to_memory_dump(self) -> MemoryDump {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 140 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking postcard v0.5.2
[INFO] [stdout] warning: type does not implement `Debug`; consider adding `#[derive(Debug)]` or a manual implementation
[INFO] [stdout]    --> isa/src/misc.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 306 |     pub struct MemoryDump(pub [Word; ADDR_SPACE_SIZE_IN_WORDS]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> isa/src/lib.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout] 30  |     missing_debug_implementations,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type does not implement `Debug`; consider adding `#[derive(Debug)]` or a manual implementation
[INFO] [stdout]    --> isa/src/misc.rs:374:5
[INFO] [stdout]     |
[INFO] [stdout] 374 |     pub struct AssembledProgram(pub [(Word, bool); ADDR_SPACE_SIZE_IN_WORDS]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused result
[INFO] [stdout]    --> isa/src/macros.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |         { $word as $crate::Word }
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 390 |         word!(.FILL #0x3000 as Word);
[INFO] [stdout]     |         ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> isa/src/lib.rs:39:5
[INFO] [stdout]     |
[INFO] [stdout] 39  |     unused_results,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: this warning originates in the macro `word` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused result
[INFO] [stdout]    --> isa/src/macros.rs:106:13
[INFO] [stdout]     |
[INFO] [stdout] 106 |     () => { 0 };
[INFO] [stdout]     |             ^
[INFO] [stdout] ...
[INFO] [stdout] 461 |         word!(); // Empty words are fine.
[INFO] [stdout]     |         -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `word` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking lc3-traits v0.1.0 (/opt/rustwide/workdir/traits)
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stdout] warning: variable `LOADABLE` should have a snake case name
[INFO] [stdout]    --> isa/tests/macros.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 111 |     let LOADABLE: [(lc3_isa::Addr, lc3_isa::Word); 28] = lc3_isa::loadable! {
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `loadable`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `legacy_directory_ownership` has been removed: converted into hard error, see issue #37872 <https://github.com/rust-lang/rust/issues/37872> for more information
[INFO] [stdout]   --> traits/src/lib.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     legacy_directory_ownership,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(renamed_and_removed_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `plugin_as_library` has been removed: plugins have been deprecated and retired
[INFO] [stdout]   --> traits/src/lib.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     plugin_as_library,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `safe_extern_statics` has been removed: converted into hard error, see issue #36247 <https://github.com/rust-lang/rust/issues/36247> for more information
[INFO] [stdout]   --> traits/src/lib.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     safe_extern_statics,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `intra_doc_link_resolution_failure` has been removed: use `rustdoc::broken_intra_doc_links` instead
[INFO] [stdout]   --> traits/src/lib.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     intra_doc_link_resolution_failure,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `legacy_directory_ownership` has been removed: converted into hard error, see issue #37872 <https://github.com/rust-lang/rust/issues/37872> for more information
[INFO] [stdout]   --> traits/src/lib.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     legacy_directory_ownership,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(renamed_and_removed_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `plugin_as_library` has been removed: plugins have been deprecated and retired
[INFO] [stdout]   --> traits/src/lib.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     plugin_as_library,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `safe_extern_statics` has been removed: converted into hard error, see issue #36247 <https://github.com/rust-lang/rust/issues/36247> for more information
[INFO] [stdout]   --> traits/src/lib.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     safe_extern_statics,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `intra_doc_link_resolution_failure` has been removed: use `rustdoc::broken_intra_doc_links` instead
[INFO] [stdout]   --> traits/src/lib.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     intra_doc_link_resolution_failure,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking criterion v0.3.5
[INFO] [stderr]    Compiling lc3tools-sys v1.0.6-alpha2
[INFO] [stdout] warning: variant `STEP_OVER` should have an upper camel case name
[INFO] [stdout]   --> traits/src/control/control.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     STEP_OVER(usize),
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `StepOver`
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> traits/src/lib.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout] 7  |     bad_style,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` implied by `#[warn(bad_style)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `STEP_IN` should have an upper camel case name
[INFO] [stdout]   --> traits/src/control/control.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     STEP_IN(usize),
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `StepIn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `STEP_OUT` should have an upper camel case name
[INFO] [stdout]   --> traits/src/control/control.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     STEP_OUT(usize),
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `StepOut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:217:1
[INFO] [stdout]     |
[INFO] [stdout] 217 | / unsafe fn force_clone<T>(inp: &T) -> T {
[INFO] [stdout] 218 | |     let mut out: MaybeUninit<T> = MaybeUninit::uninit();
[INFO] [stdout] 219 | |
[INFO] [stdout] 220 | |     #[allow(unsafe_code, unused_unsafe)]
[INFO] [stdout] ...   |
[INFO] [stdout] 228 | |     unsafe { out.assume_init() }
[INFO] [stdout] 229 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> traits/src/lib.rs:33:5
[INFO] [stdout]     |
[INFO] [stdout] 33  |     unsafe_code,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AdcPinArr`
[INFO] [stdout]   --> traits/src/peripherals/stubs.rs:39:36
[INFO] [stdout]    |
[INFO] [stdout] 39 | use super::adc::{AdcPin, AdcState, AdcPinArr, AdcReadError, AdcMiscError};
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> traits/src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unused,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    = note: `#[warn(unused_imports)]` implied by `#[warn(unused)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PwmPinArr`
[INFO] [stdout]   --> traits/src/peripherals/stubs.rs:50:36
[INFO] [stdout]    |
[INFO] [stdout] 50 | use super::pwm::{PwmPin, PwmState, PwmPinArr, PwmDutyCycle};
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `STEP_OVER` should have an upper camel case name
[INFO] [stdout]   --> traits/src/control/control.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     STEP_OVER(usize),
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `StepOver`
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> traits/src/lib.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout] 7  |     bad_style,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` implied by `#[warn(bad_style)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `STEP_IN` should have an upper camel case name
[INFO] [stdout]   --> traits/src/control/control.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     STEP_IN(usize),
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `StepIn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `STEP_OUT` should have an upper camel case name
[INFO] [stdout]   --> traits/src/control/control.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     STEP_OUT(usize),
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `StepOut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: declaration of an `unsafe` function
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:217:1
[INFO] [stdout]     |
[INFO] [stdout] 217 | / unsafe fn force_clone<T>(inp: &T) -> T {
[INFO] [stdout] 218 | |     let mut out: MaybeUninit<T> = MaybeUninit::uninit();
[INFO] [stdout] 219 | |
[INFO] [stdout] 220 | |     #[allow(unsafe_code, unused_unsafe)]
[INFO] [stdout] ...   |
[INFO] [stdout] 228 | |     unsafe { out.assume_init() }
[INFO] [stdout] 229 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> traits/src/lib.rs:33:5
[INFO] [stdout]     |
[INFO] [stdout] 33  |     unsafe_code,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AdcPinArr`
[INFO] [stdout]   --> traits/src/peripherals/stubs.rs:39:36
[INFO] [stdout]    |
[INFO] [stdout] 39 | use super::adc::{AdcPin, AdcState, AdcPinArr, AdcReadError, AdcMiscError};
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> traits/src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unused,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    = note: `#[warn(unused_imports)]` implied by `#[warn(unused)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PwmPinArr`
[INFO] [stdout]   --> traits/src/peripherals/stubs.rs:50:36
[INFO] [stdout]    |
[INFO] [stdout] 50 | use super::pwm::{PwmPin, PwmState, PwmPinArr, PwmDutyCycle};
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trivial cast: `&T` as `*const T`
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:223:19
[INFO] [stdout]     |
[INFO] [stdout] 223 |     unsafe { copy(inp as *const _, out.as_mut_ptr(), 1); }
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> traits/src/lib.rs:34:5
[INFO] [stdout]     |
[INFO] [stdout] 34  |     trivial_casts,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     = help: cast can be replaced by coercion; this might require a temporary variable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `encode` has an incompatible type for trait
[INFO] [stdout]     --> traits/src/control/rpc/encoding.rs:1012:28
[INFO] [stdout]      |
[INFO] [stdout] 179  |     fn encode(&mut self, message: &Message) -> Self::Encoded;
[INFO] [stdout]      |                                   -------- type in trait
[INFO] [stdout] ...
[INFO] [stdout] 1012 |     impl_enc_dec!(U8ToU16: u8 => u16);
[INFO] [stdout]      |                            ^^
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            expected `&u8`, found `u8`
[INFO] [stdout]      |                            help: change the parameter type to match the trait: `&u8`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected fn pointer `fn(&mut U8ToU16, &u8) -> _`
[INFO] [stdout]                 found fn pointer `fn(&mut U8ToU16, u8) -> _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `encode` has an incompatible type for trait
[INFO] [stdout]     --> traits/src/control/rpc/encoding.rs:1013:29
[INFO] [stdout]      |
[INFO] [stdout] 179  |     fn encode(&mut self, message: &Message) -> Self::Encoded;
[INFO] [stdout]      |                                   -------- type in trait
[INFO] [stdout] ...
[INFO] [stdout] 1013 |     impl_enc_dec!(U16ToU32: u16 => u32);
[INFO] [stdout]      |                             ^^^
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             expected `&u16`, found `u16`
[INFO] [stdout]      |                             help: change the parameter type to match the trait: `&u16`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected fn pointer `fn(&mut U16ToU32, &u16) -> _`
[INFO] [stdout]                 found fn pointer `fn(&mut U16ToU32, u16) -> _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `encode` has an incompatible type for trait
[INFO] [stdout]     --> traits/src/control/rpc/encoding.rs:1014:29
[INFO] [stdout]      |
[INFO] [stdout] 179  |     fn encode(&mut self, message: &Message) -> Self::Encoded;
[INFO] [stdout]      |                                   -------- type in trait
[INFO] [stdout] ...
[INFO] [stdout] 1014 |     impl_enc_dec!(U32ToU64: u32 => u64);
[INFO] [stdout]      |                             ^^^
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             expected `&u32`, found `u32`
[INFO] [stdout]      |                             help: change the parameter type to match the trait: `&u32`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected fn pointer `fn(&mut U32ToU64, &u32) -> _`
[INFO] [stdout]                 found fn pointer `fn(&mut U32ToU64, u32) -> _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `encode` has an incompatible type for trait
[INFO] [stdout]     --> traits/src/control/rpc/encoding.rs:1015:30
[INFO] [stdout]      |
[INFO] [stdout] 179  |     fn encode(&mut self, message: &Message) -> Self::Encoded;
[INFO] [stdout]      |                                   -------- type in trait
[INFO] [stdout] ...
[INFO] [stdout] 1015 |     impl_enc_dec!(U64ToU128: u64 => u128);
[INFO] [stdout]      |                              ^^^
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              expected `&u64`, found `u64`
[INFO] [stdout]      |                              help: change the parameter type to match the trait: `&u64`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected fn pointer `fn(&mut U64ToU128, &u64) -> _`
[INFO] [stdout]                 found fn pointer `fn(&mut U64ToU128, u64) -> _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `encode` has an incompatible type for trait
[INFO] [stdout]     --> traits/src/control/rpc/encoding.rs:1155:33
[INFO] [stdout]      |
[INFO] [stdout] 179  |     fn encode(&mut self, message: &Message) -> Self::Encoded;
[INFO] [stdout]      |                                   -------- type in trait
[INFO] [stdout] ...
[INFO] [stdout] 1155 |         impl_enc_dec!(U8ToU128: u8 => u128);
[INFO] [stdout]      |                                 ^^
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 expected `&u8`, found `u8`
[INFO] [stdout]      |                                 help: change the parameter type to match the trait: `&u8`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected fn pointer `fn(&mut U8ToU128, &u8) -> _`
[INFO] [stdout]                 found fn pointer `fn(&mut U8ToU128, u8) -> _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trivial cast: `&T` as `*const T`
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:223:19
[INFO] [stdout]     |
[INFO] [stdout] 223 |     unsafe { copy(inp as *const _, out.as_mut_ptr(), 1); }
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> traits/src/lib.rs:34:5
[INFO] [stdout]     |
[INFO] [stdout] 34  |     trivial_casts,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     = help: cast can be replaced by coercion; this might require a temporary variable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> traits/src/control/rpc/encoding.rs:1036:109
[INFO] [stdout]      |
[INFO] [stdout] 1036 |         fn ser<M: Debug, E: Default + Encoding<M>>(m: M) -> <E as Encode<M>>::Encoded { E::default().encode(m) }
[INFO] [stdout]      |                -                                                                                            ^
[INFO] [stdout]      |                |                                                                                            |
[INFO] [stdout]      |                |                                                                                            expected `&M`, found type parameter `M`
[INFO] [stdout]      |                this type parameter                                                                          help: consider borrowing here: `&m`
[INFO] [stdout]      |
[INFO] [stdout]      = note:   expected reference `&M`
[INFO] [stdout]              found type parameter `M`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> traits/src/control/rpc/encoding.rs:1057:98
[INFO] [stdout]      |
[INFO] [stdout] 1057 |         fn ser<M: Debug, E: Encoding<M>>(mut e: E, m: M) -> <E as Encode<M>>::Encoded { e.encode(m) }
[INFO] [stdout]      |                -                                                                                 ^
[INFO] [stdout]      |                |                                                                                 |
[INFO] [stdout]      |                |                                                                                 expected `&M`, found type parameter `M`
[INFO] [stdout]      |                this type parameter                                                               help: consider borrowing here: `&m`
[INFO] [stdout]      |
[INFO] [stdout]      = note:   expected reference `&M`
[INFO] [stdout]              found type parameter `M`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> traits/src/control/rpc/encoding.rs:1075:81
[INFO] [stdout]      |
[INFO] [stdout] 1075 |         fn ser<M: Debug, E: Encode<M>>(mut e: E, m: M) -> E::Encoded { e.encode(m) }
[INFO] [stdout]      |                -                                                                ^
[INFO] [stdout]      |                |                                                                |
[INFO] [stdout]      |                |                                                                expected `&M`, found type parameter `M`
[INFO] [stdout]      |                this type parameter                                              help: consider borrowing here: `&m`
[INFO] [stdout]      |
[INFO] [stdout]      = note:   expected reference `&M`
[INFO] [stdout]              found type parameter `M`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> traits/src/control/rpc/encoding.rs:1103:81
[INFO] [stdout]      |
[INFO] [stdout] 1103 |         fn ser<M: Debug, E: Encode<M>>(mut e: E, m: M) -> E::Encoded { e.encode(m) }
[INFO] [stdout]      |                -                                                                ^
[INFO] [stdout]      |                |                                                                |
[INFO] [stdout]      |                |                                                                expected `&M`, found type parameter `M`
[INFO] [stdout]      |                this type parameter                                              help: consider borrowing here: `&m`
[INFO] [stdout]      |
[INFO] [stdout]      = note:   expected reference `&M`
[INFO] [stdout]              found type parameter `M`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> traits/src/control/rpc/encoding.rs:1133:98
[INFO] [stdout]      |
[INFO] [stdout] 1133 |         fn ser<M: Debug, E: Encoding<M>>(mut e: E, m: M) -> <E as Encode<M>>::Encoded { e.encode(m) }
[INFO] [stdout]      |                -                                                                                 ^
[INFO] [stdout]      |                |                                                                                 |
[INFO] [stdout]      |                |                                                                                 expected `&M`, found type parameter `M`
[INFO] [stdout]      |                this type parameter                                                               help: consider borrowing here: `&m`
[INFO] [stdout]      |
[INFO] [stdout]      = note:   expected reference `&M`
[INFO] [stdout]              found type parameter `M`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> traits/src/control/snapshot.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> traits/src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unused,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    = note: `#[warn(unused_variables)]` implied by `#[warn(unused)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> traits/src/peripherals/stubs.rs:106:30
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn write_data(&mut self, c: u8) -> Result<(), OutputError> { Ok(()) }
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 10 previous errors; 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0053, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0053`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `lc3-traits` due to 11 previous errors; 11 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> traits/src/lib.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub mod error;
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> traits/src/lib.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     missing_docs,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/error.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum Error {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/error.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     InvalidGpioWrite(GpioWriteError),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/error.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     InvalidGpioWrites(GpioWriteErrors),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/error.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     InvalidGpioRead(GpioReadError),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/error.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     InvalidGpioReads(GpioReadErrors),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/error.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     GpioMiscError(GpioMiscError), // Unclear if we want to expose these kind of errors in the Control interface or just make the interpre...
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/error.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     InvalidAdcRead(AdcReadError),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/error.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     InvalidAdcReads(AdcReadErrors),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/error.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     AdcMiscError(AdcMiscError),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/error.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     InputError(InputError),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/error.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     OutputError(OutputError),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/error.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     SystemStackOverflow,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/error.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 108 |     DefaultValue(Word),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/error.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 109 |     Silent,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/error.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 |     FireException {
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/error.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 111 |         interrupt_vector_table_number: u8,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/error.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |         payload: Option<Word>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> traits/src/lib.rs:57:1
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub mod control;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/control/metadata.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum ProgramId {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/metadata.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Known { hash: u64 },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/metadata.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Known { hash: u64 },
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/metadata.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Unknown,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/metadata.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub const fn unknown() -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/metadata.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn new(program: &MemoryDump) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/control/metadata.rs:58:1
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct ProgramMetadata {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/metadata.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub name: LongIdentifier,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/metadata.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub id: ProgramId,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/metadata.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub const fn empty() -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/metadata.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 | /     pub fn new(
[INFO] [stdout] 81 | |         name: LongIdentifier,
[INFO] [stdout] 82 | |         program: &MemoryDump,
[INFO] [stdout] 83 | |         modified: Duration,
[INFO] [stdout] ...  |
[INFO] [stdout] 89 | |         }
[INFO] [stdout] 90 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/metadata.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 | /     pub fn from<P: Into<MemoryDump>>(
[INFO] [stdout] 93 | |         name: LongIdentifier,
[INFO] [stdout] 94 | |         program: P,
[INFO] [stdout] 95 | |         modified: Duration,
[INFO] [stdout] 96 | |     ) -> Self {
[INFO] [stdout] 97 | |         Self::new(name, &program.into(), modified)
[INFO] [stdout] 98 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub fn set_last_modified(&mut self, modified: Duration) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 111 |         pub /*const*/ fn new_modified_now(name: LongIdentifier, program: &MemoryDump) -> Self {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         pub /*const*/ fn from_modified_now<P: Into<MemoryDump>>(name: LongIdentifier, program: P) -> Self {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |         pub fn now(mut self) -> Self {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |         pub fn updated_now(&mut self) {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |         pub fn modified_on(&mut self, time: SystemTime) {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/metadata.rs:145:1
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct LongIdentifier([u8; 8]);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]    --> traits/src/control/metadata.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub const MAX_LEN: usize = 8;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:158:5
[INFO] [stdout]     |
[INFO] [stdout] 158 |     pub const fn unknown() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 162 |     pub fn new(name: [u8; Self::MAX_LEN]) -> Result<Self, ()> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:170:5
[INFO] [stdout]     |
[INFO] [stdout] 170 |     pub fn new_from_str(name: &str) -> Result<Self, ()> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 174 |     pub fn new_truncated_padded(name: &str) -> Result<Self, ()> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:188:5
[INFO] [stdout]     |
[INFO] [stdout] 188 | /     pub const fn new_that_crashes_on_invalid_inputs(
[INFO] [stdout] 189 | |         name: [u8; Self::MAX_LEN],
[INFO] [stdout] 190 | |     ) -> Self {
[INFO] [stdout] 191 | |         // `is_ascii` == `*c & 128 == 0`
[INFO] [stdout] ...   |
[INFO] [stdout] 203 | |         Self(name)
[INFO] [stdout] 204 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:206:5
[INFO] [stdout]     |
[INFO] [stdout] 206 | /     pub const fn new_from_str_that_crashes_on_invalid_inputs(
[INFO] [stdout] 207 | |         name: &str,
[INFO] [stdout] 208 | |     ) -> Self {
[INFO] [stdout] 209 | |         let slice = name.as_bytes();
[INFO] [stdout] ...   |
[INFO] [stdout] 230 | |         )
[INFO] [stdout] 231 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/metadata.rs:248:1
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub struct Identifier([u8; 4]);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]    --> traits/src/control/metadata.rs:251:5
[INFO] [stdout]     |
[INFO] [stdout] 251 |     pub const MAX_LEN: usize = 4;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:255:5
[INFO] [stdout]     |
[INFO] [stdout] 255 |     pub fn new(name: [u8; Self::MAX_LEN]) -> Result<Self, ()> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:265:5
[INFO] [stdout]     |
[INFO] [stdout] 265 |     pub fn new_from_str(name: &str) -> Result<Self, ()> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:273:5
[INFO] [stdout]     |
[INFO] [stdout] 273 |     pub const fn empty() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:277:5
[INFO] [stdout]     |
[INFO] [stdout] 277 | /     pub const fn new_that_crashes_on_invalid_inputs(
[INFO] [stdout] 278 | |         name: [u8; Self::MAX_LEN],
[INFO] [stdout] 279 | |     ) -> Self {
[INFO] [stdout] 280 | |         // `is_ascii` == `*c & 128 == 0`
[INFO] [stdout] ...   |
[INFO] [stdout] 289 | |         Self(name)
[INFO] [stdout] 290 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:292:5
[INFO] [stdout]     |
[INFO] [stdout] 292 | /     pub const fn new_from_str_that_crashes_on_invalid_inputs(
[INFO] [stdout] 293 | |         name: &str,
[INFO] [stdout] 294 | |     ) -> Self {
[INFO] [stdout] 295 | |         let slice = name.as_bytes();
[INFO] [stdout] ...   |
[INFO] [stdout] 305 | |         ])
[INFO] [stdout] 306 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/metadata.rs:323:1
[INFO] [stdout]     |
[INFO] [stdout] 323 | pub struct Capabilities {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/control/metadata.rs:324:5
[INFO] [stdout]     |
[INFO] [stdout] 324 |     pub disk: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/control/metadata.rs:325:5
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub display: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/metadata.rs:329:1
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub struct Version {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/control/metadata.rs:330:5
[INFO] [stdout]     |
[INFO] [stdout] 330 |     pub major: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/control/metadata.rs:331:5
[INFO] [stdout]     |
[INFO] [stdout] 331 |     pub minor: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/control/metadata.rs:332:5
[INFO] [stdout]     |
[INFO] [stdout] 332 |     pub patch: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/control/metadata.rs:333:5
[INFO] [stdout]     |
[INFO] [stdout] 333 |     pub pre: Option<Identifier>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:344:5
[INFO] [stdout]     |
[INFO] [stdout] 344 |     pub const fn empty() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 |     pub const fn new(major: u8, minor: u8, patch: u8, pre: Option<Identifier>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:362:5
[INFO] [stdout]     |
[INFO] [stdout] 362 |     pub const fn major(mut self, major: u8) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:367:5
[INFO] [stdout]     |
[INFO] [stdout] 367 |     pub const fn minor(mut self, minor: u8) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:372:5
[INFO] [stdout]     |
[INFO] [stdout] 372 |     pub const fn patch(mut self, patch: u8) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:377:5
[INFO] [stdout]     |
[INFO] [stdout] 377 |     pub const fn pre(mut self, pre: Identifier) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:382:5
[INFO] [stdout]     |
[INFO] [stdout] 382 |     pub fn get_pre(&self) -> Option<&str> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:401:5
[INFO] [stdout]     |
[INFO] [stdout] 401 | /     pub const fn pre_from_str_that_crashes_on_invalid_inputs(
[INFO] [stdout] 402 | |         self,
[INFO] [stdout] 403 | |         pre: &str,
[INFO] [stdout] 404 | |     ) -> Self {
[INFO] [stdout] 405 | |         self.pre(Identifier::new_from_str_that_crashes_on_invalid_inputs(pre))
[INFO] [stdout] 406 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a macro
[INFO] [stdout]    --> traits/src/control/metadata.rs:577:1
[INFO] [stdout]     |
[INFO] [stdout] 577 | macro_rules! version_from_crate {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/metadata.rs:603:1
[INFO] [stdout]     |
[INFO] [stdout] 603 | pub struct DeviceInfo {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:622:5
[INFO] [stdout]     |
[INFO] [stdout] 622 | /     pub fn new(
[INFO] [stdout] 623 | |         name: Identifier,
[INFO] [stdout] 624 | |         version: Version,
[INFO] [stdout] 625 | |         type_id: TypeId,
[INFO] [stdout] ...   |
[INFO] [stdout] 635 | |         }
[INFO] [stdout] 636 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:638:5
[INFO] [stdout]     |
[INFO] [stdout] 638 |     pub fn add_proxy(mut self, proxy: Identifier, version: Version) -> Result<Self, Self> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> traits/src/control/metadata.rs:671:1
[INFO] [stdout]     |
[INFO] [stdout] 671 | pub trait TypeIdExt: Hash {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:672:5
[INFO] [stdout]     |
[INFO] [stdout] 672 |     fn t(&self) -> u64;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> traits/src/control/metadata.rs:684:1
[INFO] [stdout]     |
[INFO] [stdout] 684 | pub trait AnyExt: Any {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/metadata.rs:685:5
[INFO] [stdout]     |
[INFO] [stdout] 685 |     fn type_id_u64(&self) -> u64 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> traits/src/control/control.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const MAX_BREAKPOINTS: usize = 10;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> traits/src/control/control.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const MAX_MEMORY_WATCHPOINTS: usize = 10;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> traits/src/control/control.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const MAX_CALL_STACK_DEPTH: usize = 10;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]   --> traits/src/control/control.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type Idx = u8;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/control/control.rs:43:1
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub enum DebugStep {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type does not implement `std::fmt::Debug`; consider adding `#[derive(Debug)]` or a manual implementation
[INFO] [stdout]   --> traits/src/control/control.rs:43:1
[INFO] [stdout]    |
[INFO] [stdout] 43 | / pub enum DebugStep {
[INFO] [stdout] 44 | |     STEP_OVER(usize),
[INFO] [stdout] 45 | |     STEP_IN(usize),
[INFO] [stdout] 46 | |     STEP_OUT(usize),
[INFO] [stdout] 47 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> traits/src/lib.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     missing_debug_implementations,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/control.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     STEP_OVER(usize),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/control.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     STEP_IN(usize),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/control.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     STEP_OUT(usize),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/control/control.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub enum Event {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/control.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Breakpoint { addr: Addr },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/control.rs:62:18
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Breakpoint { addr: Addr },
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/control.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     MemoryWatch { addr: Addr, data: Word },
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/control.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 |     MemoryWatch { addr: Addr, data: Word },
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/control.rs:63:31
[INFO] [stdout]    |
[INFO] [stdout] 63 |     MemoryWatch { addr: Addr, data: Word },
[INFO] [stdout]    |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/control.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     DepthReached { current_depth: u64 },
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/control.rs:64:20
[INFO] [stdout]    |
[INFO] [stdout] 64 |     DepthReached { current_depth: u64 },
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/control.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     Error { err: Error },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/control.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |     Error { err: Error },
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/control.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     Interrupted, // If we get paused or stepped, this is returned. (TODO: we currently only return this if we're paused!! not sure if sto...
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/control.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     Halted,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/control/control.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub enum State {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/control.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     Paused,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/control.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     RunningUntilEvent,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/control.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     Halted,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/control/control.rs:78:1
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub enum ProcessorMode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]   --> traits/src/control/control.rs:95:1
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub trait Control {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]   --> traits/src/control/control.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 96 |     type EventFuture: Future<Output = Event>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/control.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn get_pc(&self) -> Addr;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/control.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 99 |     fn set_pc(&mut self, addr: Addr); // Should be infallible.
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     fn get_register(&self, reg: Reg) -> Word;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn set_register(&mut self, reg: Reg, data: Word); // Should be infallible.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn get_registers_psr_and_pc(&self) -> ([Word; Reg::NUM_REGS], Word, Word) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 |     fn read_word(&self, addr: Addr) -> Word;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn write_word(&mut self, addr: Addr, word: Word);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:166:5
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn set_breakpoint(&mut self, addr: Addr) -> Result<Idx, ()>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn unset_breakpoint(&mut self, idx: Idx) -> Result<(), ()>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:168:5
[INFO] [stdout]     |
[INFO] [stdout] 168 |     fn get_breakpoints(&self) -> [Option<Addr>; MAX_BREAKPOINTS];
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:169:5
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn get_max_breakpoints(&self) -> Idx {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:173:5
[INFO] [stdout]     |
[INFO] [stdout] 173 |     fn set_memory_watchpoint(&mut self, addr: Addr) -> Result<Idx, ()>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn unset_memory_watchpoint(&mut self, idx: Idx) -> Result<(), ()>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:175:5
[INFO] [stdout]     |
[INFO] [stdout] 175 |     fn get_memory_watchpoints(&self) -> [Option<(Addr, Word)>; MAX_MEMORY_WATCHPOINTS];
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn get_max_memory_watchpoints(&self) -> Idx {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:232:5
[INFO] [stdout]     |
[INFO] [stdout] 232 |     fn run_until_event(&mut self) -> Self::EventFuture; // Can be interrupted by step or pause.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:249:5
[INFO] [stdout]     |
[INFO] [stdout] 249 |     fn tick(&mut self) -> usize; // The function to call so that the simulator can do some work.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:251:5
[INFO] [stdout]     |
[INFO] [stdout] 251 |     fn step(&mut self) -> Option<Event>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:252:5
[INFO] [stdout]     |
[INFO] [stdout] 252 |     fn pause(&mut self); // TODO: should we respond saying whether or not the pause actually did anything (i.e. if we were already paused...
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:254:5
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn get_state(&self) -> State;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:256:5
[INFO] [stdout]     |
[INFO] [stdout] 256 |     fn reset(&mut self); // Note: needs to reset memory!
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 |     fn get_error(&self) -> Option<Error>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn get_gpio_states(&self) -> GpioPinArr<GpioState>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:267:5
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn get_gpio_readings(&self) -> GpioPinArr<Result<bool, GpioReadError>>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 |     fn get_adc_states(&self) -> AdcPinArr<AdcState>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:269:5
[INFO] [stdout]     |
[INFO] [stdout] 269 |     fn get_adc_readings(&self) -> AdcPinArr<Result<u8, AdcReadError>>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:270:5
[INFO] [stdout]     |
[INFO] [stdout] 270 |     fn get_timer_modes(&self) -> TimerArr<TimerMode>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:271:5
[INFO] [stdout]     |
[INFO] [stdout] 271 |     fn get_timer_states(&self) -> TimerArr<TimerState>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:272:5
[INFO] [stdout]     |
[INFO] [stdout] 272 |     fn get_pwm_states(&self) -> PwmPinArr<PwmState>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:273:5
[INFO] [stdout]     |
[INFO] [stdout] 273 |     fn get_pwm_config(&self) -> PwmPinArr<u8>; // TODO: ditto with using u8 here; probably should be some kind of enum (the conflict is t...
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:274:5
[INFO] [stdout]     |
[INFO] [stdout] 274 |     fn get_clock(&self) -> Word;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:294:5
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn get_device_info(&self) -> DeviceInfo {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:304:5
[INFO] [stdout]     |
[INFO] [stdout] 304 |     fn get_program_metadata(&self) -> ProgramMetadata;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/control.rs:305:5
[INFO] [stdout]     |
[INFO] [stdout] 305 |     fn set_program_metadata(&mut self, metadata: ProgramMetadata);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]  --> traits/src/control/ext.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum DepthBreakpoint {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]  --> traits/src/control/ext.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     StepOut,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/ext.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     StepIn,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/ext.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     StepOver,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]   --> traits/src/control/ext.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait StepControl: Control {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/ext.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn set_depth_breakpoint(&mut self, bp: DepthBreakpoint) -> Result<(), ()> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/ext.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn step_out(&mut self) -> Result<(), ()> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/ext.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn step_in(&mut self) -> Result<(), ()> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/ext.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn step_over(&mut self) -> Result<(), ()> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]   --> traits/src/control/load.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub type PageIndex = u8;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]   --> traits/src/control/load.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub type PageOffset = u8;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> traits/src/control/load.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const PAGE_SIZE_IN_WORDS: Addr = (PageOffset::max_value() as Addr) + 1;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> traits/src/control/load.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const NUM_PAGES: usize = (ADDR_SPACE_SIZE_IN_WORDS) / (PAGE_SIZE_IN_WORDS as usize);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> traits/src/control/load.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const NUM_MEM_MAPPED_PAGES: usize = (PageIndex::max_value() - (MEM_MAPPED_START_ADDR >> 8) as PageIndex) as usize + 1;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> traits/src/control/load.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const CHUNK_SIZE_IN_WORDS: PageOffset = 8;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> traits/src/control/load.rs:38:1
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub const CHUNKS_IN_A_PAGE: usize = (PAGE_SIZE_IN_WORDS as usize) / (CHUNK_SIZE_IN_WORDS as usize);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> traits/src/control/load.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn hash_page(page: &[Word]) -> u64 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/control/load.rs:57:1
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct Index(pub PageIndex);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/load.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub const fn with_offset(&self, offset: PageOffset) -> Addr {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/load.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub const fn as_index(&self) -> usize {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/load.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub const fn as_index_range(&self) -> Range<usize> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/control/load.rs:74:1
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct Offset(pub PageOffset);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/control/load.rs:78:1
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub enum StartPageWriteError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/load.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 79 |     InvalidPage { page: PageIndex }, // Only the mem-mapped page should be invalid...
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/load.rs:79:19
[INFO] [stdout]    |
[INFO] [stdout] 79 |     InvalidPage { page: PageIndex }, // Only the mem-mapped page should be invalid...
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/load.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     UnfinishedSessionExists { unfinished_page: PageIndex },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/load.rs:80:31
[INFO] [stdout]    |
[INFO] [stdout] 80 |     UnfinishedSessionExists { unfinished_page: PageIndex },
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/control/load.rs:85:1
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub enum PageChunkError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/load.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     NoCurrentSession,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/load.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     WrongPage { expected_page: PageIndex, received_address: Addr, },
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/load.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 87 |     WrongPage { expected_page: PageIndex, received_address: Addr, },
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/load.rs:87:43
[INFO] [stdout]    |
[INFO] [stdout] 87 |     WrongPage { expected_page: PageIndex, received_address: Addr, },
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/load.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     ChunkCrossesPageBoundary { page: PageIndex, received_address: Addr, },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/load.rs:88:32
[INFO] [stdout]    |
[INFO] [stdout] 88 |     ChunkCrossesPageBoundary { page: PageIndex, received_address: Addr, },
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/load.rs:88:49
[INFO] [stdout]    |
[INFO] [stdout] 88 |     ChunkCrossesPageBoundary { page: PageIndex, received_address: Addr, },
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/control/load.rs:93:1
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub enum FinishPageWriteError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/load.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     NoCurrentSession,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/load.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     SessionMismatch { current_session_page: PageIndex, received_page: PageIndex },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/load.rs:95:23
[INFO] [stdout]    |
[INFO] [stdout] 95 |     SessionMismatch { current_session_page: PageIndex, received_page: PageIndex },
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/load.rs:95:56
[INFO] [stdout]    |
[INFO] [stdout] 95 |     SessionMismatch { current_session_page: PageIndex, received_page: PageIndex },
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/load.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 96 |     ChecksumMismatch { page: PageIndex, given_checksum: u64, computed_checksum: u64 },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/load.rs:96:24
[INFO] [stdout]    |
[INFO] [stdout] 96 |     ChecksumMismatch { page: PageIndex, given_checksum: u64, computed_checksum: u64 },
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/load.rs:96:41
[INFO] [stdout]    |
[INFO] [stdout] 96 |     ChecksumMismatch { page: PageIndex, given_checksum: u64, computed_checksum: u64 },
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/load.rs:96:62
[INFO] [stdout]    |
[INFO] [stdout] 96 |     ChecksumMismatch { page: PageIndex, given_checksum: u64, computed_checksum: u64 },
[INFO] [stdout]    |                                                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/load.rs:108:1
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct PageWriteStart(pub PageIndex);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/load.rs:112:1
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct LoadApiSession<State>(State);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/load.rs:114:35
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl<T: Copy> LoadApiSession<T> { pub fn get(&self) -> T { self.0 } }
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> traits/src/control/load.rs:151:1
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub trait PageAccess {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/load.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 |     fn page_idx(self) -> PageIndex;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/load.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 153 |     fn page_offset(self) -> PageOffset;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/load.rs:205:5
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub unsafe fn approve(self) -> Result<LoadApiSession<PageIndex>, StartPageWriteError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/load.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 221 |     pub fn with_offset(&self, addr: Addr) -> Result<LoadApiSession<Offset>, PageChunkError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> traits/src/control/load.rs:255:1
[INFO] [stdout]     |
[INFO] [stdout] 255 | pub trait LoadMemoryProgress: LoadMemoryProgressSource {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/load.rs:256:5
[INFO] [stdout]     |
[INFO] [stdout] 256 |     fn progress(&self) -> f32;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/load.rs:257:5
[INFO] [stdout]     |
[INFO] [stdout] 257 |     fn success_rate(&self) -> f32;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/load.rs:260:1
[INFO] [stdout]     |
[INFO] [stdout] 260 | pub struct Progress {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type does not implement `std::fmt::Debug`; consider adding `#[derive(Debug)]` or a manual implementation
[INFO] [stdout]    --> traits/src/control/load.rs:260:1
[INFO] [stdout]     |
[INFO] [stdout] 260 | / pub struct Progress {
[INFO] [stdout] 261 | |     /// Duration between start time and the Unix Epoch
[INFO] [stdout] 262 | |     pub start_time: Option<Duration>,
[INFO] [stdout] 263 | |     /// Number of chunks sent, including failures
[INFO] [stdout] ...   |
[INFO] [stdout] 276 | |     pub total_pages: AtomicUsize,
[INFO] [stdout] 277 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/load.rs:364:5
[INFO] [stdout]     |
[INFO] [stdout] 364 |     pub const fn new() -> Progress {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/load.rs:379:5
[INFO] [stdout]     |
[INFO] [stdout] 379 |     pub fn progress(&self) -> f32 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/load.rs:388:9
[INFO] [stdout]     |
[INFO] [stdout] 388 |         pub fn new_with_time() -> Result<Progress, SystemTimeError> {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/load.rs:401:9
[INFO] [stdout]     |
[INFO] [stdout] 401 |         pub fn time_elapsed(&self) -> Option<Duration> {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/load.rs:408:9
[INFO] [stdout]     |
[INFO] [stdout] 408 |         pub fn estimate_time_remaining(&self) -> Option<Duration> {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]    --> traits/src/control/load.rs:423:1
[INFO] [stdout]     |
[INFO] [stdout] 423 | pub enum LoadMemoryDumpError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/load.rs:424:5
[INFO] [stdout]     |
[INFO] [stdout] 424 |     MemMappedPagesNotEmpty,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/load.rs:425:5
[INFO] [stdout]     |
[INFO] [stdout] 425 |     ExistingUnfinishedSession { unfinished_page: PageIndex },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/control/load.rs:425:33
[INFO] [stdout]     |
[INFO] [stdout] 425 |     ExistingUnfinishedSession { unfinished_page: PageIndex },
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> traits/src/control/load.rs:433:1
[INFO] [stdout]     |
[INFO] [stdout] 433 | pub fn load_memory_dump<C: Control + ?Sized, P: LoadMemoryProgress>(sim: &mut C, dump: &MemoryDump, previous: Option<&MemoryDump>, progress: Option<&P>) -> Result<(), LoadMemoryDumpError...
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> traits/src/control/load.rs:531:1
[INFO] [stdout]     |
[INFO] [stdout] 531 | pub fn load_whole_memory_dump<C: Control + ?Sized, P: LoadMemoryProgress>(sim: &mut C, dump: &MemoryDump, progress: Option<&P>) -> Result<(), LoadMemoryDumpError...
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> traits/src/control/load.rs:535:1
[INFO] [stdout]     |
[INFO] [stdout] 535 | pub fn load_memory_dump_without_progress<C: Control + ?Sized>(sim: &mut C, dump: &MemoryDump, previous: &MemoryDump) -> Result<(), LoadMemoryDumpError...
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> traits/src/control/load.rs:539:1
[INFO] [stdout]     |
[INFO] [stdout] 539 | pub fn load_whole_memory_dump_without_progress<C: Control + ?Sized>(sim: &mut C, dump: &MemoryDump) -> Result<(), LoadMemoryDumpError> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/control/snapshot.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum SnapshotError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/snapshot.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     UnrecordableState,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/snapshot.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     UninterruptableState,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/snapshot.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     Other(&'static str), // TODO: this should perhaps be a &dyn Debug or something
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]   --> traits/src/control/snapshot.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait Snapshot {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]   --> traits/src/control/snapshot.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     type Snap;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]   --> traits/src/control/snapshot.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     type Err: Debug + Into<SnapshotError>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/snapshot.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn record(&self) -> Result<Self::Snap, Self::Err>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/snapshot.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn restore(&mut self, snap: Self::Snap) -> Result<(), Self::Err>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/control/ranges.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct UnifiedRange<T> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub enum RequestMessage { // messages for everything but tick()
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     GetPc,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     SetPc { addr: Addr },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |     SetPc { addr: Addr },
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     GetRegister { reg: Reg },
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:58:19
[INFO] [stdout]    |
[INFO] [stdout] 58 |     GetRegister { reg: Reg },
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     SetRegister { reg: Reg, data: Word },
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 59 |     SetRegister { reg: Reg, data: Word },
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:59:29
[INFO] [stdout]    |
[INFO] [stdout] 59 |     SetRegister { reg: Reg, data: Word },
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     GetRegistersPsrAndPc,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     ReadWord { addr: Addr },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:65:16
[INFO] [stdout]    |
[INFO] [stdout] 65 |     ReadWord { addr: Addr },
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     WriteWord { addr: Addr, word: Word },
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |     WriteWord { addr: Addr, word: Word },
[INFO] [stdout]    |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:66:29
[INFO] [stdout]    |
[INFO] [stdout] 66 |     WriteWord { addr: Addr, word: Word },
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     StartPageWrite { page: LoadApiSession<PageWriteStart>, checksum: u64 },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:68:22
[INFO] [stdout]    |
[INFO] [stdout] 68 |     StartPageWrite { page: LoadApiSession<PageWriteStart>, checksum: u64 },
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:68:60
[INFO] [stdout]    |
[INFO] [stdout] 68 |     StartPageWrite { page: LoadApiSession<PageWriteStart>, checksum: u64 },
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     SendPageChunk { offset: LoadApiSession<Offset>, chunk: [Word; CHUNK_SIZE_IN_WORDS as usize] },
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:69:21
[INFO] [stdout]    |
[INFO] [stdout] 69 |     SendPageChunk { offset: LoadApiSession<Offset>, chunk: [Word; CHUNK_SIZE_IN_WORDS as usize] },
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:69:53
[INFO] [stdout]    |
[INFO] [stdout] 69 |     SendPageChunk { offset: LoadApiSession<Offset>, chunk: [Word; CHUNK_SIZE_IN_WORDS as usize] },
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     FinishPageWrite { page: LoadApiSession<PageIndex> },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:70:23
[INFO] [stdout]    |
[INFO] [stdout] 70 |     FinishPageWrite { page: LoadApiSession<PageIndex> },
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     SetBreakpoint { addr: Addr },
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:72:21
[INFO] [stdout]    |
[INFO] [stdout] 72 |     SetBreakpoint { addr: Addr },
[INFO] [stdout]    |                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     UnsetBreakpoint { idx: Idx },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:73:23
[INFO] [stdout]    |
[INFO] [stdout] 73 |     UnsetBreakpoint { idx: Idx },
[INFO] [stdout]    |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     GetBreakpoints,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     GetMaxBreakpoints,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 |     SetMemoryWatchpoint { addr: Addr },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:77:27
[INFO] [stdout]    |
[INFO] [stdout] 77 |     SetMemoryWatchpoint { addr: Addr },
[INFO] [stdout]    |                           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |     UnsetMemoryWatchpoint { idx: Idx },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:78:29
[INFO] [stdout]    |
[INFO] [stdout] 78 |     UnsetMemoryWatchpoint { idx: Idx },
[INFO] [stdout]    |                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 79 |     GetMemoryWatchpoints,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     GetMaxMemoryWatchpoints,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     SetDepthCondition { condition: UnifiedRange<u64> },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:82:25
[INFO] [stdout]    |
[INFO] [stdout] 82 |     SetDepthCondition { condition: UnifiedRange<u64> },
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     UnsetDepthCondition,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     GetDepth,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     GetCallStack,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     RunUntilEvent,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     Step,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     Pause,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 93 |     GetState,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     Reset,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:97:5
[INFO] [stdout]    |
[INFO] [stdout] 97 |     GetError,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/control/rpc/messages.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 99 |     GetGpioStates,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     GetGpioReadings,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     GetAdcStates,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     GetAdcReadings,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     GetTimerModes,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     GetTimerStates,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     GetPwmStates,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 |     GetPwmConfig,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 107 |     GetClock,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 109 |     GetDeviceInfo,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 |     GetProgramMetadata,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 |     SetProgramMetadata { metadata: ProgramMetadata },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:112:26
[INFO] [stdout]     |
[INFO] [stdout] 112 |     SetProgramMetadata { metadata: ProgramMetadata },
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub enum ResponseMessage { // messages for everything but tick()
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 129 |     GetPc(Addr),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 130 |     SetPc,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 |     GetRegister(Word),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:133:5
[INFO] [stdout]     |
[INFO] [stdout] 133 |     SetRegister,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 |     GetRegistersPsrAndPc(([Word; Reg::NUM_REGS], Word, Word)),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:139:5
[INFO] [stdout]     |
[INFO] [stdout] 139 |     ReadWord(Word),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     WriteWord,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     StartPageWrite(Result<LoadApiSession<PageIndex>, StartPageWriteError>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 |     SendPageChunk(Result<(), PageChunkError>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 144 |     FinishPageWrite(Result<(), FinishPageWriteError>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 146 |     SetBreakpoint(Result<Idx, ()>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 147 |     UnsetBreakpoint(Result<(), ()>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 148 |     GetBreakpoints([Option<Addr>; MAX_BREAKPOINTS]),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     GetMaxBreakpoints(Idx),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 151 |     SetMemoryWatchpoint(Result<Idx, ()>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 |     UnsetMemoryWatchpoint(Result<(), ()>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 153 |     GetMemoryWatchpoints([Option<(Addr, Word)>; MAX_MEMORY_WATCHPOINTS]),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 |     GetMaxMemoryWatchpoints(Idx),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:156:5
[INFO] [stdout]     |
[INFO] [stdout] 156 |     SetDepthCondition(Result<Option<UnifiedRange<u64>>, ()>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 |     UnsetDepthCondition(Option<UnifiedRange<u64>>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:158:5
[INFO] [stdout]     |
[INFO] [stdout] 158 |     GetDepth(Result<u64, ()>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |     GetCallStack([Option<(Addr, ProcessorMode)>; MAX_CALL_STACK_DEPTH]),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 162 |     RunUntilEventAck, // Special acknowledge message for run until event.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 163 |     RunUntilEvent(Event),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 |     Step(Option<Event>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:166:5
[INFO] [stdout]     |
[INFO] [stdout] 166 |     Pause,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:168:5
[INFO] [stdout]     |
[INFO] [stdout] 168 |     GetState(State),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:169:5
[INFO] [stdout]     |
[INFO] [stdout] 169 |     Reset,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:171:5
[INFO] [stdout]     |
[INFO] [stdout] 171 |     GetError(Option<Lc3Error>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:173:5
[INFO] [stdout]     |
[INFO] [stdout] 173 |     GetGpioStates(GpioPinArr<GpioState>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 174 |     GetGpioReadings(GpioPinArr<Result<bool, GpioReadError>>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:175:5
[INFO] [stdout]     |
[INFO] [stdout] 175 |     GetAdcStates(AdcPinArr<AdcState>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 |     GetAdcReadings(AdcPinArr<Result<u8, AdcReadError>>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:177:5
[INFO] [stdout]     |
[INFO] [stdout] 177 |     GetTimerModes(TimerArr<TimerMode>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:178:5
[INFO] [stdout]     |
[INFO] [stdout] 178 |     GetTimerStates(TimerArr<TimerState>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     GetPwmStates(PwmPinArr<PwmState>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:180:5
[INFO] [stdout]     |
[INFO] [stdout] 180 |     GetPwmConfig(PwmPinArr<u8>), // TODO
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:181:5
[INFO] [stdout]     |
[INFO] [stdout] 181 |     GetClock(Word),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 183 |     GetDeviceInfo(DeviceInfo),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:185:5
[INFO] [stdout]     |
[INFO] [stdout] 185 |     GetProgramMetadata(ProgramMetadata),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/messages.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     SetProgramMetadata,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub trait Encode<Message: Debug> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:177:5
[INFO] [stdout]     |
[INFO] [stdout] 177 |     type Encoded: Debug;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn encode(&mut self, message: &Message) -> Self::Encoded;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub trait Decode<Message: Debug> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:188:5
[INFO] [stdout]     |
[INFO] [stdout] 188 |     type Encoded: Debug;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 189 |     type Err: Debug;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:191:5
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn decode(&mut self, encoded: &Self::Encoded) -> Result<Message, Self::Err>;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:198:1
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub struct CoreConvert<T>(PhantomData<T>);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:241:1
[INFO] [stdout]     |
[INFO] [stdout] 241 | / pub trait Encoding<Message: Debug>: Encode<Message> + Decode<Message>
[INFO] [stdout] 242 | | where
[INFO] [stdout] 243 | |     Self: Encode<Message, Encoded = <Self as Decode<Message>>::Encoded>,
[INFO] [stdout] 244 | | {
[INFO] [stdout] ...   |
[INFO] [stdout] 267 | |     // }
[INFO] [stdout] 268 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:287:1
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub struct Transparent<T: Debug>(PhantomData<T>);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:329:1
[INFO] [stdout]     |
[INFO] [stdout] 329 | / pub struct Pair<Message: Debug, Enc, Dec>
[INFO] [stdout] 330 | | where
[INFO] [stdout] 331 | |     Enc: Encode<Message>,
[INFO] [stdout] 332 | |     Dec: Decode<Message, Encoded = <Enc as Encode<Message>>::Encoded>
[INFO] [stdout] ...   |
[INFO] [stdout] 336 | |     _m: PhantomData<Message>,
[INFO] [stdout] 337 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:354:5
[INFO] [stdout]     |
[INFO] [stdout] 354 |     pub /*const*/ fn with(enc: Enc, dec: Dec) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:401:1
[INFO] [stdout]     |
[INFO] [stdout] 401 | / pub struct ChainedEncode<A: Debug, B: Debug, Outer, Inner>
[INFO] [stdout] 402 | | where
[INFO] [stdout] 403 | |     Outer: Encode<A, Encoded = B>,
[INFO] [stdout] 404 | |     Inner: Encode<B>
[INFO] [stdout] ...   |
[INFO] [stdout] 408 | |     _p: PhantomData<(A, B)>,
[INFO] [stdout] 409 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:426:5
[INFO] [stdout]     |
[INFO] [stdout] 426 |     pub /*const*/ fn with(outer: Outer, inner: Inner) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:441:5
[INFO] [stdout]     |
[INFO] [stdout] 441 |     pub fn new_detached() -> Self { Default::default() }
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:450:5
[INFO] [stdout]     |
[INFO] [stdout] 450 |     pub /*const*/ fn new(outer: Outer) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:498:5
[INFO] [stdout]     |
[INFO] [stdout] 498 | /     pub fn chain_back_detached<Z: Debug, NewOuter: Encode<Z, Encoded = A>>() -> ChainedEncode<Z, A, NewOuter, Self>
[INFO] [stdout] 499 | |     where
[INFO] [stdout] 500 | |         NewOuter: Default,
[INFO] [stdout] 501 | |     {
[INFO] [stdout] 502 | |         Default::default()
[INFO] [stdout] 503 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:505:5
[INFO] [stdout]     |
[INFO] [stdout] 505 | /     pub fn chain_front_detatched<Z: Debug, NewInner: Encode<<Inner as Encode<B>>::Encoded, Encoded = Z>>() -> ChainedEncode<A, <Inner as ...
[INFO] [stdout] 506 | |     where
[INFO] [stdout] 507 | |         NewInner: Default,
[INFO] [stdout] 508 | |     {
[INFO] [stdout] 509 | |         Default::default()
[INFO] [stdout] 510 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:513:5
[INFO] [stdout]     |
[INFO] [stdout] 513 | /     pub fn chain_detatched<Z: Debug, NewInner: Encode<<Inner as Encode<B>>::Encoded, Encoded = Z>>() -> ChainedEncode<A, <Inner as Encode...
[INFO] [stdout] 514 | |     where
[INFO] [stdout] 515 | |         NewInner: Default,
[INFO] [stdout] 516 | |     {
[INFO] [stdout] 517 | |         Self::chain_front_detatched()
[INFO] [stdout] 518 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:526:5
[INFO] [stdout]     |
[INFO] [stdout] 526 |     pub /*const*/ fn chain_back<Z: Debug, NewOuter: Encode<Z, Encoded = A>>(self, new_outer: NewOuter) -> ChainedEncode<Z, A, NewOuter, Self...
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:535:5
[INFO] [stdout]     |
[INFO] [stdout] 535 |     pub /*const*/ fn chain_front<Z: Debug, NewInner: Encode<<Inner as Encode<B>>::Encoded, Encoded = Z>>(self, new_inner: NewInner) -> ChainedEncode<A, <Inner as Encode<B>>::Encoded, Self, NewInner...
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:545:5
[INFO] [stdout]     |
[INFO] [stdout] 545 |     pub /*const*/ fn chain<Z: Debug, NewInner: Encode<<Inner as Encode<B>>::Encoded, Encoded = Z>>(self, new_inner: NewInner) -> ChainedEncode<A, <Inner as Encode<B>>::Encoded, Self, NewInner...
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:575:1
[INFO] [stdout]     |
[INFO] [stdout] 575 | / pub struct ChainedDecode<A: Debug, B: Debug, Outer, Inner>
[INFO] [stdout] 576 | | where
[INFO] [stdout] 577 | |     Inner: Decode<B>,
[INFO] [stdout] 578 | |     Outer: Decode<A, Encoded = B>,
[INFO] [stdout] ...   |
[INFO] [stdout] 583 | |     _p: PhantomData<(A, B)>,
[INFO] [stdout] 584 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:603:5
[INFO] [stdout]     |
[INFO] [stdout] 603 |     pub /*const*/ fn with(outer: Outer, inner: Inner) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:621:5
[INFO] [stdout]     |
[INFO] [stdout] 621 |     pub fn new_detached() -> Self { Default::default() }
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:633:5
[INFO] [stdout]     |
[INFO] [stdout] 633 |     pub /*const*/ fn new(outer: Outer) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:646:5
[INFO] [stdout]     |
[INFO] [stdout] 646 | /     pub fn chain_back_detached<Z: Debug, NewOuter: Decode<Z, Encoded = A>>() -> ChainedDecode<Z, A, NewOuter, Self>
[INFO] [stdout] 647 | |     where
[INFO] [stdout] 648 | |         <Outer as Decode<A>>::Err: Into<<NewOuter as Decode<Z>>::Err>,
[INFO] [stdout] 649 | |         NewOuter: Default,
[INFO] [stdout] 650 | |     {
[INFO] [stdout] 651 | |         Default::default()
[INFO] [stdout] 652 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:654:5
[INFO] [stdout]     |
[INFO] [stdout] 654 | /     pub fn chain_front_detatched<Z: Debug, NewInner>() -> ChainedDecode<A, <Inner as Decode<B>>::Encoded, Self, NewInner>
[INFO] [stdout] 655 | |     where
[INFO] [stdout] 656 | |         NewInner: Decode<<Inner as Decode<B>>::Encoded, Encoded = Z>,
[INFO] [stdout] 657 | |         <Outer as Decode<A>>::Err: From<<NewInner as Decode<<Inner as Decode<B>>::Encoded>>::Err>,
[INFO] [stdout] ...   |
[INFO] [stdout] 660 | |         Default::default()
[INFO] [stdout] 661 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:664:5
[INFO] [stdout]     |
[INFO] [stdout] 664 | /     pub fn chain_detatched<Z: Debug, NewInner>() -> ChainedDecode<A, <Inner as Decode<B>>::Encoded, Self, NewInner>
[INFO] [stdout] 665 | |     where
[INFO] [stdout] 666 | |         NewInner: Decode<<Inner as Decode<B>>::Encoded, Encoded = Z>,
[INFO] [stdout] 667 | |         <Outer as Decode<A>>::Err: From<<NewInner as Decode<<Inner as Decode<B>>::Encoded>>::Err>,
[INFO] [stdout] ...   |
[INFO] [stdout] 670 | |         Self::chain_front_detatched()
[INFO] [stdout] 671 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:682:5
[INFO] [stdout]     |
[INFO] [stdout] 682 | /     pub /*const*/ fn chain_back<Z: Debug, NewOuter: Decode<Z, Encoded = A>>(self, new_outer: NewOuter) -> ChainedDecode<Z, A, NewOuter, S...
[INFO] [stdout] 683 | |     where
[INFO] [stdout] 684 | |         <Outer as Decode<A>>::Err: Into<<NewOuter as Decode<Z>>::Err>
[INFO] [stdout] 685 | |     {
[INFO] [stdout] 686 | |         ChainedDecode::with(new_outer, self)
[INFO] [stdout] 687 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:689:5
[INFO] [stdout]     |
[INFO] [stdout] 689 | /     pub /*const*/ fn chain_front<Z: Debug, NewInner>(self, new_inner: NewInner) -> ChainedDecode<A, <Inner as Decode<B>>::Encoded, Self, ...
[INFO] [stdout] 690 | |     where
[INFO] [stdout] 691 | |         NewInner: Decode<<Inner as Decode<B>>::Encoded, Encoded = Z>,
[INFO] [stdout] 692 | |         <Outer as Decode<A>>::Err: From<<NewInner as Decode<<Inner as Decode<B>>::Encoded>>::Err>,
[INFO] [stdout] 693 | |     {
[INFO] [stdout] 694 | |         ChainedDecode::with(self, new_inner)
[INFO] [stdout] 695 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:698:5
[INFO] [stdout]     |
[INFO] [stdout] 698 | /     pub /*const*/ fn chain<Z: Debug, NewInner>(self, new_inner: NewInner) -> ChainedDecode<A, <Inner as Decode<B>>::Encoded, Self, NewInner>
[INFO] [stdout] 699 | |     where
[INFO] [stdout] 700 | |         NewInner: Decode<<Inner as Decode<B>>::Encoded, Encoded = Z>,
[INFO] [stdout] 701 | |         <Outer as Decode<A>>::Err: From<<NewInner as Decode<<Inner as Decode<B>>::Encoded>>::Err>,
[INFO] [stdout] 702 | |     {
[INFO] [stdout] 703 | |         self.chain_front(new_inner)
[INFO] [stdout] 704 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:745:1
[INFO] [stdout]     |
[INFO] [stdout] 745 | / pub struct ChainedEncoding<A: Debug, B: Debug, Outer, Inner>
[INFO] [stdout] 746 | | where
[INFO] [stdout] 747 | |     Inner: Encode<B>,
[INFO] [stdout] 748 | |     Inner: Decode<B, Encoded = <Inner as Encode<B>>::Encoded>,
[INFO] [stdout] ...   |
[INFO] [stdout] 754 | |     _p: PhantomData<(A, B)>,
[INFO] [stdout] 755 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:782:5
[INFO] [stdout]     |
[INFO] [stdout] 782 |     pub /*const*/ fn with(outer: Outer, inner: Inner) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:799:5
[INFO] [stdout]     |
[INFO] [stdout] 799 |     pub fn new_detached() -> Self { Default::default() }
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:810:5
[INFO] [stdout]     |
[INFO] [stdout] 810 |     pub /*const*/ fn new(outer: Outer) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:827:5
[INFO] [stdout]     |
[INFO] [stdout] 827 | /     pub fn chain_back_detached<Z, NewOuter>() -> ChainedEncoding<Z, A, NewOuter, Self>
[INFO] [stdout] 828 | |     where
[INFO] [stdout] 829 | |         Z: Debug,
[INFO] [stdout] 830 | |         NewOuter: Default,
[INFO] [stdout] ...   |
[INFO] [stdout] 836 | |         Default::default()
[INFO] [stdout] 837 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:839:5
[INFO] [stdout]     |
[INFO] [stdout] 839 | /     pub fn chain_front_detatched<Z, NewInner>() -> ChainedEncoding<A, <Inner as Encode<B>>::Encoded, Self, NewInner>
[INFO] [stdout] 840 | |     where
[INFO] [stdout] 841 | |         Z: Debug,
[INFO] [stdout] 842 | |         NewInner: Default,
[INFO] [stdout] ...   |
[INFO] [stdout] 848 | |         Default::default()
[INFO] [stdout] 849 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:852:5
[INFO] [stdout]     |
[INFO] [stdout] 852 | /     pub fn chain_detatched<Z, NewInner>() -> ChainedEncoding<A, <Inner as Encode<B>>::Encoded, Self, NewInner>
[INFO] [stdout] 853 | |     where
[INFO] [stdout] 854 | |         Z: Debug,
[INFO] [stdout] 855 | |         NewInner: Default,
[INFO] [stdout] ...   |
[INFO] [stdout] 861 | |         Self::chain_front_detatched()
[INFO] [stdout] 862 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:874:5
[INFO] [stdout]     |
[INFO] [stdout] 874 | /     pub /*const*/ fn chain_back<Z, NewOuter>(self, new_outer: NewOuter) -> ChainedEncoding<Z, A, NewOuter, Self>
[INFO] [stdout] 875 | |     where
[INFO] [stdout] 876 | |         Z: Debug,
[INFO] [stdout] 877 | |         NewOuter: Encode<Z, Encoded = A>,
[INFO] [stdout] ...   |
[INFO] [stdout] 882 | |         ChainedEncoding::with(new_outer, self)
[INFO] [stdout] 883 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:885:5
[INFO] [stdout]     |
[INFO] [stdout] 885 | /     pub /*const*/ fn chain_front<Z, NewInner>(self, new_inner: NewInner) -> ChainedEncoding<A, <Inner as Encode<B>>::Encoded, Self, NewIn...
[INFO] [stdout] 886 | |     where
[INFO] [stdout] 887 | |         Z: Debug,
[INFO] [stdout] 888 | |         NewInner: Encode<<Inner as Encode<B>>::Encoded, Encoded = Z>,
[INFO] [stdout] ...   |
[INFO] [stdout] 893 | |         ChainedEncoding::with(self, new_inner)
[INFO] [stdout] 894 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:897:5
[INFO] [stdout]     |
[INFO] [stdout] 897 | /     pub /*const*/ fn chain<Z, NewInner>(self, new_inner: NewInner) -> ChainedEncoding<A, <Inner as Encode<B>>::Encoded, Self, NewInner>
[INFO] [stdout] 898 | |     where
[INFO] [stdout] 899 | |         Z: Debug,
[INFO] [stdout] 900 | |         NewInner: Encode<<Inner as Encode<B>>::Encoded, Encoded = Z>,
[INFO] [stdout] ...   |
[INFO] [stdout] 905 | |         self.chain_front(new_inner)
[INFO] [stdout] 906 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/rpc/encoding.rs:963:5
[INFO] [stdout]     |
[INFO] [stdout] 963 |     pub struct JsonEncoding;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]  --> traits/src/control/rpc/transport.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait Transport<SendFormat, RecvFormat> {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]   --> traits/src/control/rpc/transport.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     type RecvErr: Debug;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated type
[INFO] [stdout]   --> traits/src/control/rpc/transport.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     type SendErr: Debug;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> traits/src/control/rpc/transport.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     const ID: Identifier;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> traits/src/control/rpc/transport.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     const VER: Version;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/rpc/transport.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn send(&self, message: SendFormat) -> Result<(), Self::SendErr>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/rpc/transport.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn num_get_errors(&self) -> u64 { 0 }
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/control/rpc/transport.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub struct MpscTransport<SendFormat: Debug, RecvFormat: Debug> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type does not implement `std::fmt::Debug`; consider adding `#[derive(Debug)]` or a manual implementation
[INFO] [stdout]   --> traits/src/control/rpc/transport.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | /     pub struct MpscTransport<SendFormat: Debug, RecvFormat: Debug> {
[INFO] [stdout] 41 | |         tx: Sender<SendFormat>,
[INFO] [stdout] 42 | |         rx: Receiver<RecvFormat>,
[INFO] [stdout] 43 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/rpc/transport.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |         pub fn new() -> (MpscTransport<S, R>, MpscTransport<R, S>) {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:149:1
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub trait EventFutureSharedStatePorcelain: EventFutureSharedState {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:189:1
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub enum SharedStateState { // TODO: bad name, I know
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 190 |     Errored,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:191:5
[INFO] [stdout]     |
[INFO] [stdout] 191 |     Dormant,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:192:5
[INFO] [stdout]     |
[INFO] [stdout] 192 |     WaitingForAnEvent { waker: Option<Waker>, count: NonZeroU8 },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:192:25
[INFO] [stdout]     |
[INFO] [stdout] 192 |     WaitingForAnEvent { waker: Option<Waker>, count: NonZeroU8 },
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:192:47
[INFO] [stdout]     |
[INFO] [stdout] 192 |     WaitingForAnEvent { waker: Option<Waker>, count: NonZeroU8 },
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:193:5
[INFO] [stdout]     |
[INFO] [stdout] 193 |     WaitingForFuturesToResolve { event: Event, waker: Option<Waker>, count: NonZeroU8 },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:193:34
[INFO] [stdout]     |
[INFO] [stdout] 193 |     WaitingForFuturesToResolve { event: Event, waker: Option<Waker>, count: NonZeroU8 },
[INFO] [stdout]     |                                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:193:48
[INFO] [stdout]     |
[INFO] [stdout] 193 |     WaitingForFuturesToResolve { event: Event, waker: Option<Waker>, count: NonZeroU8 },
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:193:70
[INFO] [stdout]     |
[INFO] [stdout] 193 |     WaitingForFuturesToResolve { event: Event, waker: Option<Waker>, count: NonZeroU8 },
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub struct SimpleEventFutureSharedState {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type does not implement `std::fmt::Debug`; consider adding `#[derive(Debug)]` or a manual implementation
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | / pub struct SimpleEventFutureSharedState {
[INFO] [stdout] 314 | |     // waker: Cell<Option<Waker>>,
[INFO] [stdout] 315 | |     // count: AtomicU8,
[INFO] [stdout] 316 | |     // state: Cell<Option<(Event, State)>>,
[INFO] [stdout] 317 | |     inner: Cell<SharedStateState>
[INFO] [stdout] 318 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:321:5
[INFO] [stdout]     |
[INFO] [stdout] 321 |     pub const fn new() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:378:1
[INFO] [stdout]     |
[INFO] [stdout] 378 | pub struct EventFuture<'a, S: EventFutureSharedState>(pub &'a S);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:381:5
[INFO] [stdout]     |
[INFO] [stdout] 381 |     pub /*const*/ fn new(inner: &'a S) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:398:5
[INFO] [stdout]     |
[INFO] [stdout] 398 |     pub struct SyncEventFutureSharedState(RwLock<SharedStateState>);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         pub fn new() -> Self {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/control/rpc/controller.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | / pub struct Controller<
[INFO] [stdout] 48 | |     'a,
[INFO] [stdout] 49 | |     T,
[INFO] [stdout] 50 | |     S,
[INFO] [stdout] ...  |
[INFO] [stdout] 74 | |     // waiting_for_event: bool,
[INFO] [stdout] 75 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> traits/src/control/rpc/controller.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub transport: T,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/control/rpc/controller.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub /*const*/ fn new(enc: E, dec: D, transport: T, shared_state: &'a S) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> traits/src/control/rpc/device.rs:177:5
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub transport: T,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/device.rs:203:5
[INFO] [stdout]     |
[INFO] [stdout] 203 |     pub /*const*/ fn new(enc: E, dec: D, transport: T) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/control/rpc/device.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 261 |     pub fn step(&mut self, c: &mut C) -> (usize, usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> traits/src/control/rpc/mod.rs:78:1
[INFO] [stdout]     |
[INFO] [stdout] 78  | / pub fn new_pair<
[INFO] [stdout] 79  | |     'a,
[INFO] [stdout] 80  | |     'b,
[INFO] [stdout] 81  | |     Req: Debug,
[INFO] [stdout] ...   |
[INFO] [stdout] 140 | |     (controller, device)
[INFO] [stdout] 141 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> traits/src/control/rpc/mod.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | /     pub fn mpsc_pair<
[INFO] [stdout] 149 | |         'a,
[INFO] [stdout] 150 | |         Req: Debug,
[INFO] [stdout] 151 | |         Resp: Debug,
[INFO] [stdout] ...   |
[INFO] [stdout] 200 | |         new_pair(controller, state, device, None)
[INFO] [stdout] 201 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> traits/src/control/rpc/mod.rs:203:5
[INFO] [stdout]     |
[INFO] [stdout] 203 | /     pub fn mpsc_sync_pair<
[INFO] [stdout] 204 | |         'a,
[INFO] [stdout] 205 | |         Req: Debug,
[INFO] [stdout] 206 | |         Resp: Debug,
[INFO] [stdout] ...   |
[INFO] [stdout] 252 | |         mpsc_pair(state)
[INFO] [stdout] 253 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]   --> traits/src/memory.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Memory: Index<Addr, Output = Word> + IndexMut<Addr, Output = Word> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/memory.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn read_word(&self, addr: Addr) -> Word {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/memory.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn write_word(&mut self, addr: Addr, word: Word) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/memory.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn commit_page(&mut self, page_idx: PageIndex, page: &[Word; PAGE_SIZE_IN_WORDS as usize]);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/memory.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn reset(&mut self);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/memory.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn get_program_metadata(&self) -> ProgramMetadata;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/memory.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn set_program_metadata(&mut self, metadata: ProgramMetadata);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/memory.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct MemoryStub(Word);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum AdcPin { A0, A1, A2, A3, A4, A5 }
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum AdcPin { A0, A1, A2, A3, A4, A5 }
[INFO] [stdout]    |                   ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:16:23
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum AdcPin { A0, A1, A2, A3, A4, A5 }
[INFO] [stdout]    |                       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum AdcPin { A0, A1, A2, A3, A4, A5 }
[INFO] [stdout]    |                           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:16:31
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum AdcPin { A0, A1, A2, A3, A4, A5 }
[INFO] [stdout]    |                               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:16:35
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum AdcPin { A0, A1, A2, A3, A4, A5 }
[INFO] [stdout]    |                                   ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:16:39
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum AdcPin { A0, A1, A2, A3, A4, A5 }
[INFO] [stdout]    |                                       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const NUM_PINS: usize = 6;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const ADC_PINS: AdcPinArr<AdcPin> = {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum AdcState {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     Enabled,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Disabled,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:49:1
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct AdcPinArr<T>(pub [T; AdcPin::NUM_PINS]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn set_state(&mut self, pin: AdcPin, state: AdcState) -> Result<(), AdcMiscError>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn get_state(&self, pin: AdcPin) -> AdcState;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn get_states(&self) -> AdcPinArr<AdcState> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:97:5
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn read(&self, pin: AdcPin) -> Result<u8, AdcReadError>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/adc.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 99 |     fn read_all(&self) -> AdcPinArr<Result<u8, AdcReadError>> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/peripherals/adc.rs:113:1
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct AdcMiscError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]    --> traits/src/peripherals/adc.rs:115:1
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub type AdcStateMismatch = (AdcPin, AdcState);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/peripherals/adc.rs:118:1
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub struct AdcReadError(pub AdcStateMismatch);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]    --> traits/src/peripherals/adc.rs:120:1
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub type AdcStateMismatches = AdcPinArr<Option<AdcStateMismatch>>;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/peripherals/adc.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct AdcReadErrors(pub AdcStateMismatches);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/clock.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn get_milliseconds(&self) -> Word;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/clock.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn set_milliseconds(&mut self, ms: Word);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum GpioPin { G0, G1, G2, G3, G4, G5, G6, G7 }
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:28:20
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum GpioPin { G0, G1, G2, G3, G4, G5, G6, G7 }
[INFO] [stdout]    |                    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:28:24
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum GpioPin { G0, G1, G2, G3, G4, G5, G6, G7 }
[INFO] [stdout]    |                        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:28:28
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum GpioPin { G0, G1, G2, G3, G4, G5, G6, G7 }
[INFO] [stdout]    |                            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:28:32
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum GpioPin { G0, G1, G2, G3, G4, G5, G6, G7 }
[INFO] [stdout]    |                                ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:28:36
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum GpioPin { G0, G1, G2, G3, G4, G5, G6, G7 }
[INFO] [stdout]    |                                    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:28:40
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum GpioPin { G0, G1, G2, G3, G4, G5, G6, G7 }
[INFO] [stdout]    |                                        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:28:44
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum GpioPin { G0, G1, G2, G3, G4, G5, G6, G7 }
[INFO] [stdout]    |                                            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:28:48
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum GpioPin { G0, G1, G2, G3, G4, G5, G6, G7 }
[INFO] [stdout]    |                                                ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub const NUM_PINS: usize = 8; // G0 - G7; TODO: derive macro (also get it to impl Display)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const GPIO_PINS: GpioPinArr<GpioPin> = {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:59:1
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum GpioState {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Input,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     Output,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Interrupt, // TBD: Can you call read on a pin configured for interrupts? (TODO)
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     Disabled,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/peripherals/gpio.rs:73:1
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct GpioPinArr<T>(pub [T; GpioPin::NUM_PINS]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct GpioMiscError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:119:1
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub struct GpioReadError(pub GpioStateMismatch);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct GpioWriteError(pub GpioStateMismatch);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub type GpioStateMismatches = GpioPinArr<Option<GpioStateMismatch>>; // [Option<GpioStateMismatch>; NUM_GPIO_PINS as usize];
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub struct GpioReadErrors(pub GpioStateMismatches);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:131:1
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct GpioWriteErrors(pub GpioStateMismatches);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:216:5
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn set_state(&mut self, pin: GpioPin, state: GpioState) -> Result<(), GpioMiscError>; // should probably be infallible
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:217:5
[INFO] [stdout]     |
[INFO] [stdout] 217 |     fn get_state(&self, pin: GpioPin) -> GpioState;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:219:5
[INFO] [stdout]     |
[INFO] [stdout] 219 |     fn get_states(&self) -> GpioPinArr<GpioState> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:229:5
[INFO] [stdout]     |
[INFO] [stdout] 229 |     fn read(&self, pin: GpioPin) -> Result<bool, GpioReadError>; // errors on state mismatch (i.e. you tried to read but the pin is confi...
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:231:5
[INFO] [stdout]     |
[INFO] [stdout] 231 |     fn read_all(&self) -> GpioPinArr<Result<bool, GpioReadError>> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:246:5
[INFO] [stdout]     |
[INFO] [stdout] 246 |     fn write(&mut self, pin: GpioPin, bit: bool) -> Result<(), GpioWriteError>; // errors on state mismatch
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:248:5
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn write_all(&mut self, bits: GpioPinArr<bool>) -> GpioPinArr<Result<(), GpioWriteError>> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn register_interrupt_flags(&mut self, flags: &'a GpioPinArr<AtomicBool>);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:267:5
[INFO] [stdout]     |
[INFO] [stdout] 267 |     fn interrupt_occurred(&self, pin: GpioPin) -> bool;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 |     fn reset_interrupt_flag(&mut self, pin: GpioPin);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/gpio.rs:270:5
[INFO] [stdout]     |
[INFO] [stdout] 270 |     fn interrupts_enabled(&self, pin: GpioPin) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:15:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum PwmPin { P0, P1 }
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum PwmPin { P0, P1 }
[INFO] [stdout]    |                   ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:15:23
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum PwmPin { P0, P1 }
[INFO] [stdout]    |                       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const NUM_PINS: usize = 2; // P0 - P1
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const PWM_PINS: PwmPinArr<PwmPin> = {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:38:1
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum PwmState {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     Enabled(NonZeroU8),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     Disabled,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:44:1
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct PwmPinArr<T>(pub [T; PwmPin::NUM_PINS]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:75:1
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub type PwmDutyCycle = u8;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> traits/src/peripherals/mod.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |           pub trait $trait $(<$lifetime>)? where Self: $($bound)? { $($rest)* }
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: traits/src/peripherals/pwm.rs:77:1
[INFO] [stdout]     |
[INFO] [stdout] 77  | / peripheral_trait! {pwm,
[INFO] [stdout] 78  | | pub trait Pwm: Default {
[INFO] [stdout] 79  | |     fn set_state(&mut self, pin: PwmPin, state: PwmState);
[INFO] [stdout] 80  | |     fn get_state(&self, pin: PwmPin) -> PwmState;
[INFO] [stdout] ...   |
[INFO] [stdout] 103 | |     }
[INFO] [stdout] 104 | | }}
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `peripheral_trait` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn set_state(&mut self, pin: PwmPin, state: PwmState);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn get_state(&self, pin: PwmPin) -> PwmState;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     fn get_states(&self) -> PwmPinArr<PwmState> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn set_duty_cycle(&mut self, pin: PwmPin, duty_cycle: PwmDutyCycle);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 93 |     fn get_duty_cycle(&self, pin: PwmPin) -> PwmDutyCycle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/pwm.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn get_duty_cycles(&self) -> PwmPinArr<PwmDutyCycle> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/peripherals/timers.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum TimerId { T0, T1, }
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/timers.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum TimerId { T0, T1, }
[INFO] [stdout]    |                    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/timers.rs:17:24
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum TimerId { T0, T1, }
[INFO] [stdout]    |                        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated constant
[INFO] [stdout]   --> traits/src/peripherals/timers.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub const NUM_TIMERS: usize = 2;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> traits/src/peripherals/timers.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const TIMERS: TimerArr<TimerId> = {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/peripherals/timers.rs:39:1
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct TimerArr<T>(pub [T; TimerId::NUM_TIMERS]);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/peripherals/timers.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub enum TimerMode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/timers.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     Repeated,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/timers.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     SingleShot,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]   --> traits/src/peripherals/timers.rs:76:1
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub type Period = NonZeroU16;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/peripherals/timers.rs:80:1
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub enum TimerState {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/timers.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     Disabled,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/timers.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     WithPeriod(Period)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/timers.rs:231:5
[INFO] [stdout]     |
[INFO] [stdout] 231 |     fn set_mode(&mut self, timer: TimerId, mode: TimerMode);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/timers.rs:232:5
[INFO] [stdout]     |
[INFO] [stdout] 232 |     fn get_mode(&self, timer: TimerId) -> TimerMode;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/timers.rs:234:5
[INFO] [stdout]     |
[INFO] [stdout] 234 |     fn get_modes(&self) -> TimerArr<TimerMode> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/timers.rs:244:5
[INFO] [stdout]     |
[INFO] [stdout] 244 |     fn set_state(&mut self, timer: TimerId, state: TimerState);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/timers.rs:245:5
[INFO] [stdout]     |
[INFO] [stdout] 245 |     fn get_state(&self, timer: TimerId) -> TimerState;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/timers.rs:247:5
[INFO] [stdout]     |
[INFO] [stdout] 247 |     fn get_states(&self) -> TimerArr<TimerState> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/timers.rs:257:5
[INFO] [stdout]     |
[INFO] [stdout] 257 |     fn register_interrupt_flags(&mut self, flags: &'a TimerArr<AtomicBool>);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/timers.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     fn interrupt_occurred(&self, timer: TimerId) -> bool;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/timers.rs:259:5
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn reset_interrupt_flag(&mut self, timer: TimerId);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/timers.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 261 |     fn interrupts_enabled(&self, timer: TimerId) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> traits/src/peripherals/mod.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |           pub trait $trait $(<$lifetime>)? where Self: $($bound)? { $($rest)* }
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: traits/src/peripherals/input.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout] 9   | / peripheral_trait! {input,
[INFO] [stdout] 10  | | pub trait Input<'a>: Default {
[INFO] [stdout] 11  | |     // Warning! This is stateful!! It marks the current data as read.
[INFO] [stdout] 12  | |     //
[INFO] [stdout] ...   |
[INFO] [stdout] 28  | |     fn interrupts_enabled(&self) -> bool;
[INFO] [stdout] 29  | | }}
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `peripheral_trait` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/input.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn read_data(&self) -> Result<u8, InputError>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/input.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn current_data_unread(&self) -> bool;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/input.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn register_interrupt_flag(&mut self, flag: &'a AtomicBool);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/input.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn interrupt_occurred(&self) -> bool;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/input.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn reset_interrupt_flag(&mut self,);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/input.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn set_interrupt_enable_bit(&mut self, bit: bool);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/input.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn interrupts_enabled(&self) -> bool;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/peripherals/input.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum InputError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/input.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     NonUnicodeCharacter(u8),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/input.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     IoError,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/input.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     NoDataAvailable,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> traits/src/peripherals/mod.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |           pub trait $trait $(<$lifetime>)? where Self: $($bound)? { $($rest)* }
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: traits/src/peripherals/output.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout] 9   | / peripheral_trait! {output,
[INFO] [stdout] 10  | | pub trait Output<'a>: Default {
[INFO] [stdout] 11  | |     fn write_data(&mut self, c: u8) -> Result<(), OutputError>;
[INFO] [stdout] 12  | |
[INFO] [stdout] ...   |
[INFO] [stdout] 23  | |     fn interrupts_enabled(&self) -> bool;
[INFO] [stdout] 24  | | }}
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `peripheral_trait` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/output.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn write_data(&mut self, c: u8) -> Result<(), OutputError>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/output.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn current_data_written(&self) -> bool;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/output.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn register_interrupt_flag(&mut self, flag: &'a AtomicBool);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/output.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn interrupt_occurred(&self) -> bool;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/output.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn reset_interrupt_flag(&mut self,);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/output.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn set_interrupt_enable_bit(&mut self, bit: bool);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/output.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn interrupts_enabled(&self) -> bool;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> traits/src/peripherals/output.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum OutputError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/output.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     NonUnicodeCharacter(u8),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/output.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     IoError,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> traits/src/peripherals/output.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     NotReady,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]   --> traits/src/peripherals/stubs.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | / pub type PeripheralsStub<'s> = PeripheralSet<
[INFO] [stdout] 9  | |     's,
[INFO] [stdout] 10 | |     GpioStub,
[INFO] [stdout] 11 | |     AdcStub,
[INFO] [stdout] ...  |
[INFO] [stdout] 16 | |     OutputStub,
[INFO] [stdout] 17 | | >;
[INFO] [stdout]    | |__^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/peripherals/stubs.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct GpioStub;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/peripherals/stubs.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct AdcStub;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/peripherals/stubs.rs:48:1
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct PwmStub;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/peripherals/stubs.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct TimersStub;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/peripherals/stubs.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct ClockStub;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/peripherals/stubs.rs:85:1
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct InputStub;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> traits/src/peripherals/stubs.rs:101:1
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct OutputStub;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]   --> traits/src/peripherals/mod.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | / pub trait Peripherals<'int>:
[INFO] [stdout] 37 | |     Gpio<'int> + Adc + Pwm + Timers<'int> + Clock + Input<'int> + Output<'int>
[INFO] [stdout] 38 | | {
[INFO] [stdout] 39 | |     fn init(&mut self);
[INFO] [stdout] 40 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> traits/src/peripherals/mod.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn init(&mut self);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> traits/src/peripherals/mod.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | / pub struct PeripheralSet<'int, G, A, P, T, C, I, O/*, GW, AW, PW, TW, CW, IW, OW*/>
[INFO] [stdout] 43 | | where
[INFO] [stdout] 44 | |     G: Gpio<'int>,
[INFO] [stdout] 45 | |     A: Adc,
[INFO] [stdout] ...  |
[INFO] [stdout] 73 | |     _marker: PhantomData<&'int ()>,
[INFO] [stdout] 74 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type does not implement `std::fmt::Debug`; consider adding `#[derive(Debug)]` or a manual implementation
[INFO] [stdout]   --> traits/src/peripherals/mod.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | / pub struct PeripheralSet<'int, G, A, P, T, C, I, O/*, GW, AW, PW, TW, CW, IW, OW*/>
[INFO] [stdout] 43 | | where
[INFO] [stdout] 44 | |     G: Gpio<'int>,
[INFO] [stdout] 45 | |     A: Adc,
[INFO] [stdout] ...  |
[INFO] [stdout] 73 | |     _marker: PhantomData<&'int ()>,
[INFO] [stdout] 74 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/mod.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub fn new(gpio: G, adc: A, pwm: P, timers: T, clock: C, input: I, output: O) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/mod.rs:133:5
[INFO] [stdout]     |
[INFO] [stdout] 133 |     pub fn get_gpio(&self) -> &G {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/mod.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn get_adc(&self) -> &A {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/mod.rs:141:5
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn get_pwm(&self) -> &P {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/mod.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     pub fn get_timers(&self) -> &T {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/mod.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     pub fn get_clock(&self) -> &C {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/mod.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 153 |     pub fn get_input(&self) -> &I {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> traits/src/peripherals/mod.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn get_output(&self) -> &O {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused result
[INFO] [stdout]    --> traits/src/control/rpc/futures.rs:426:17
[INFO] [stdout]     |
[INFO] [stdout] 426 |                 s.increment();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> traits/src/lib.rs:39:5
[INFO] [stdout]     |
[INFO] [stdout] 39  |     unused_results,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused result
[INFO] [stdout]    --> traits/src/control/rpc/controller.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 287 |         self.shared_state.add_new_future().expect("no new futures once a batch starts to resolve");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 565 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: build failed
[INFO] running `Command { std: "docker" "inspect" "1782a7f7300ed17d7a974b0f6f7217479e4cb87f31d9d471904b8ead7fc5589d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1782a7f7300ed17d7a974b0f6f7217479e4cb87f31d9d471904b8ead7fc5589d", kill_on_drop: false }`
[INFO] [stdout] 1782a7f7300ed17d7a974b0f6f7217479e4cb87f31d9d471904b8ead7fc5589d
