[INFO] fetching crate launchy 0.1.0...
[INFO] testing launchy-0.1.0 against 1.54.0 for beta-1.55-1
[INFO] extracting crate launchy 0.1.0 into /workspace/builds/worker-87/source
[INFO] validating manifest of crates.io crate launchy 0.1.0 on toolchain 1.54.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate launchy 0.1.0
[INFO] finished tweaking crates.io crate launchy 0.1.0
[INFO] tweaked toml for crates.io crate launchy 0.1.0 written to /workspace/builds/worker-87/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "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" "+1.54.0" "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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-87/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-87/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 96c449b7e75055bde60d99643f21092349649496f8b10c79da25ed037393aec6
[INFO] running `Command { std: "docker" "start" "-a" "96c449b7e75055bde60d99643f21092349649496f8b10c79da25ed037393aec6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "96c449b7e75055bde60d99643f21092349649496f8b10c79da25ed037393aec6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "96c449b7e75055bde60d99643f21092349649496f8b10c79da25ed037393aec6", kill_on_drop: false }`
[INFO] [stdout] 96c449b7e75055bde60d99643f21092349649496f8b10c79da25ed037393aec6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-87/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-87/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0a80a7208682d2258629803caebc282de9fd1c5375d7a6550b99b23e700f716b
[INFO] running `Command { std: "docker" "start" "-a" "0a80a7208682d2258629803caebc282de9fd1c5375d7a6550b99b23e700f716b", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.28
[INFO] [stderr]    Compiling libc v0.2.98
[INFO] [stderr]    Compiling pkg-config v0.3.19
[INFO] [stderr]    Compiling unicode-xid v0.2.2
[INFO] [stderr]    Compiling syn v1.0.74
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling bitflags v0.9.1
[INFO] [stderr]    Compiling memalloc v0.1.0
[INFO] [stderr]    Compiling byteorder v1.4.3
[INFO] [stderr]    Compiling embedded-graphics v0.6.2
[INFO] [stderr]    Compiling alsa-sys v0.1.2
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling nix v0.9.0
[INFO] [stderr]    Compiling alsa v0.2.2
[INFO] [stderr]    Compiling midir v0.6.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.26
[INFO] [stderr]    Compiling thiserror v1.0.26
[INFO] [stderr]    Compiling launchy v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 12.29s
[INFO] running `Command { std: "docker" "inspect" "0a80a7208682d2258629803caebc282de9fd1c5375d7a6550b99b23e700f716b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0a80a7208682d2258629803caebc282de9fd1c5375d7a6550b99b23e700f716b", kill_on_drop: false }`
[INFO] [stdout] 0a80a7208682d2258629803caebc282de9fd1c5375d7a6550b99b23e700f716b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-87/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-87/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 669f654ca7b92093595ea0639f1dc61d0ae94644f03b102cf201d07adf3bea64
[INFO] running `Command { std: "docker" "start" "-a" "669f654ca7b92093595ea0639f1dc61d0ae94644f03b102cf201d07adf3bea64", kill_on_drop: false }`
[INFO] [stderr]    Compiling launchy v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 1.00s
[INFO] running `Command { std: "docker" "inspect" "669f654ca7b92093595ea0639f1dc61d0ae94644f03b102cf201d07adf3bea64", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "669f654ca7b92093595ea0639f1dc61d0ae94644f03b102cf201d07adf3bea64", kill_on_drop: false }`
[INFO] [stdout] 669f654ca7b92093595ea0639f1dc61d0ae94644f03b102cf201d07adf3bea64
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-87/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-87/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 89c55a3e8b3baa2e208a5cad0e8bcfb1be7de23755b8caac7abf2b3fe4fbbc96
[INFO] running `Command { std: "docker" "start" "-a" "89c55a3e8b3baa2e208a5cad0e8bcfb1be7de23755b8caac7abf2b3fe4fbbc96", kill_on_drop: false }`
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running unittests (/opt/rustwide/target/debug/deps/launchy-637cba65141049ed)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests launchy
[INFO] [stdout] 
[INFO] [stdout] running 41 tests
[INFO] [stdout] test src/canvas/canvas.rs - canvas::canvas::Canvas (line 16) ... FAILED
[INFO] [stdout] test src/canvas/layout.rs - canvas::layout::CanvasLayout::add_by_guess (line 226) ... FAILED
[INFO] [stdout] test src/canvas/pad.rs - canvas::pad::Pad (line 10) ... FAILED
[INFO] [stdout] test src/canvas/color.rs - canvas::color::Color::mix (line 100) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::PaletteColor (line 11) ... FAILED
[INFO] [stdout] test src/canvas/canvas.rs - canvas::canvas::Canvas::bounding_box_height (line 45) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output (line 213) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 30) ... FAILED
[INFO] [stdout] test src/canvas/canvas.rs - canvas::canvas::Canvas::bounding_box_width (line 37) ... FAILED
[INFO] [stdout] test src/canvas/layout.rs - canvas::layout::CanvasLayout (line 109) ... FAILED
[INFO] [stdout] test src/canvas/padded.rs - canvas::padded::PaddingCanvas (line 21) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_column (line 689) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_multiple_rgb (line 391) ... FAILED
[INFO] [stdout] test src/canvas/canvas.rs - canvas::canvas::Canvas::toggle (line 201) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_all (line 462) ... FAILED
[INFO] [stdout] test src/canvas/canvas.rs - canvas::canvas::Canvas::get (line 92) ... FAILED
[INFO] [stdout] test src/canvas/canvas.rs - canvas::canvas::Canvas::flush (line 71) ... FAILED
[INFO] [stdout] test src/canvas/color.rs - canvas::color::Color::from_hue (line 34) ... FAILED
[INFO] [stdout] test src/canvas/color.rs - canvas::color::Color::new (line 23) ... FAILED
[INFO] [stdout] test src/canvas/canvas.rs - canvas::canvas::Canvas::is_valid (line 53) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light (line 654) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::flash_multiple (line 742) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_columns (line 425) ... FAILED
[INFO] [stdout] test src/canvas/layout.rs - canvas::layout::CanvasLayout::add (line 163) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 49) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 16) ... FAILED
[INFO] [stdout] test src/canvas/canvas.rs - canvas::canvas::Canvas::clear (line 222) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_rows (line 442) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::pulse (line 679) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::set_button (line 326) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::enter_fader_mode (line 568) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::set_buttons (line 356) ... FAILED
[INFO] [stdout] test src/canvas/canvas.rs - canvas::canvas::Canvas::iter (line 180) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_row (line 702) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::scroll_text (line 534) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::send_clock_tick (line 480) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_rgb (line 714) ... FAILED
[INFO] [stdout] test src/canvas/canvas.rs - canvas::canvas::Canvas::iter (line 172) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::pulse_multiple (line 759) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_multiple (line 725) ... FAILED
[INFO] [stdout] test src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::flash (line 668) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/canvas/canvas.rs - canvas::canvas::Canvas (line 16) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/canvas.rs:21:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |         canvas[pad] = Color::WHITE;
[INFO] [stdout]   |                       ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `Canvas` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:17:34
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn light_white(canvas: &mut impl Canvas) -> Result<()> {
[INFO] [stdout]   |                                  ^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this trait
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::Canvas;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0405, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0405`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/layout.rs - canvas::layout::CanvasLayout::add_by_guess (line 226) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `canvas_layout` in this scope
[INFO] [stdout]  --> src/canvas/layout.rs:228:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | canvas_layout.add_by_guess::<launchy::mk2::Canvas>(0, 0);
[INFO] [stdout]   | ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `canvas_layout` in this scope
[INFO] [stdout]  --> src/canvas/layout.rs:229:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | canvas_layout.add_by_guess::<launchy::s::Canvas>(9, 0);
[INFO] [stdout]   | ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/pad.rs - canvas::pad::Pad (line 10) stdout ----
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Pad` in this scope
[INFO] [stdout]  --> src/canvas/pad.rs:11:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | let pad = Pad { x: 3, y: 6 };
[INFO] [stdout]   |           ^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launch_control::Button::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Pad` in this scope
[INFO] [stdout]  --> src/canvas/pad.rs:13:26
[INFO] [stdout]   |
[INFO] [stdout] 5 | assert_eq!(pad + (4, 4), Pad { x: 7, y: 10 });
[INFO] [stdout]   |                          ^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launch_control::Button::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Pad` in this scope
[INFO] [stdout]  --> src/canvas/pad.rs:14:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | assert_eq!(pad - (4, 4), Pad { x: -1, y: 2 });
[INFO] [stdout]   |                          ^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launch_control::Button::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0422`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/color.rs - canvas::color::Color::mix (line 100) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:101:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | let very_dark_red = Color::RED.mix(Color::BLACK, 0.9);
[INFO] [stdout]   |                     ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:101:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | let very_dark_red = Color::RED.mix(Color::BLACK, 0.9);
[INFO] [stdout]   |                                    ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:102:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | let orange = Color::RED.mix(Color::YELLOW, 0.5);
[INFO] [stdout]   |              ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:102:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | let orange = Color::RED.mix(Color::YELLOW, 0.5);
[INFO] [stdout]   |                             ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:103:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | let dark_brown = Color::RED.mix(Color::YELLOW, 0.5).mix(Color::BLACK, 0.7);
[INFO] [stdout]   |                  ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:103:33
[INFO] [stdout]   |
[INFO] [stdout] 5 | let dark_brown = Color::RED.mix(Color::YELLOW, 0.5).mix(Color::BLACK, 0.7);
[INFO] [stdout]   |                                 ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:103:57
[INFO] [stdout]   |
[INFO] [stdout] 5 | let dark_brown = Color::RED.mix(Color::YELLOW, 0.5).mix(Color::BLACK, 0.7);
[INFO] [stdout]   |                                                         ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 7 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::PaletteColor (line 11) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:13:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | output.light_all(PaletteColor::new(92));
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:13:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | output.light_all(PaletteColor::new(92));
[INFO] [stdout]   |                  ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::launchpad_mk2::PaletteColor;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:15:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | output.light_all(92.into());
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/canvas.rs - canvas::canvas::Canvas::bounding_box_height (line 45) stdout ----
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/canvas/canvas.rs:46:49
[INFO] [stdout]   |
[INFO] [stdout] 3 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_canvas_canvas_rs_45_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 4 | | let canvas = launchy::mk2::Canvas::guess(|_| {})?;
[INFO] [stdout]   | |                                                 ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 5 | |  
[INFO] [stdout] 6 | | assert_eq!(canvas.bounding_box_height(), 9);
[INFO] [stdout] 7 | | } _doctest_main_src_canvas_canvas_rs_45_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<Result<Infallible, MidiError>>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `bounding_box_height` found for struct `DeviceCanvas` in the current scope
[INFO] [stdout]   --> src/canvas/canvas.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 6  | assert_eq!(canvas.bounding_box_height(), 9);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^ method not found in `DeviceCanvas<launchy::launchpad_mk2::Spec>`
[INFO] [stdout]    | 
[INFO] [stdout]   ::: /opt/rustwide/workdir/src/canvas/canvas.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn bounding_box_height(&self) -> u32;
[INFO] [stdout]    |        ------------------- the method is available for `DeviceCanvas<launchy::launchpad_mk2::Spec>` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stdout]    |
[INFO] [stdout] 3  | use crate::launchy::Canvas;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output (line 213) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:216:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | output.light_all(PaletteColor::BLACK); // clear screen
[INFO] [stdout]   |                  ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:219:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | output.light_row(4, PaletteColor::RED);
[INFO] [stdout]   |                     ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:220:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | output.light_row(5, PaletteColor::RED);
[INFO] [stdout]   |                     ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]   --> src/launchpad_mk2/output.rs:221:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | output.light_column(4, PaletteColor::RED);
[INFO] [stdout]    |                        ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]   --> src/launchpad_mk2/output.rs:222:24
[INFO] [stdout]    |
[INFO] [stdout] 11 | output.light_column(5, PaletteColor::RED);
[INFO] [stdout]    |                        ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]   --> src/launchpad_mk2/output.rs:225:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | output.light(Button::GridButton { x: 0, y: 0 }, PaletteColor::MAGENTA);
[INFO] [stdout]    |              ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]   --> src/launchpad_mk2/output.rs:225:49
[INFO] [stdout]    |
[INFO] [stdout] 14 | output.light(Button::GridButton { x: 0, y: 0 }, PaletteColor::MAGENTA);
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Output`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:214:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | let mut output = Output::guess();
[INFO] [stdout]   |                  ^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launch_control::Output;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launchpad_mk2::Output;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launchpad_s::Output;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::Output;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 8 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 30) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/lib.rs:31:41
[INFO] [stdout]   |
[INFO] [stdout] 3 | canvas[msg.pad()] = if msg.is_press() { Color::WHITE } else { Color::BLACK };
[INFO] [stdout]   |                                         ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/lib.rs:31:63
[INFO] [stdout]   |
[INFO] [stdout] 3 | canvas[msg.pad()] = if msg.is_press() { Color::WHITE } else { Color::BLACK };
[INFO] [stdout]   |                                                               ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `canvas` in this scope
[INFO] [stdout]  --> src/lib.rs:31:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | canvas[msg.pad()] = if msg.is_press() { Color::WHITE } else { Color::BLACK };
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `msg` in this scope
[INFO] [stdout]  --> src/lib.rs:31:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | canvas[msg.pad()] = if msg.is_press() { Color::WHITE } else { Color::BLACK };
[INFO] [stdout]   |        ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `msg` in this scope
[INFO] [stdout]  --> src/lib.rs:31:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | canvas[msg.pad()] = if msg.is_press() { Color::WHITE } else { Color::BLACK };
[INFO] [stdout]   |                        ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/canvas.rs - canvas::canvas::Canvas::bounding_box_width (line 37) stdout ----
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/canvas/canvas.rs:38:49
[INFO] [stdout]   |
[INFO] [stdout] 3 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_canvas_canvas_rs_37_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 4 | | let canvas = launchy::mk2::Canvas::guess(|_| {})?;
[INFO] [stdout]   | |                                                 ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 5 | |  
[INFO] [stdout] 6 | | assert_eq!(canvas.bounding_box_width(), 9);
[INFO] [stdout] 7 | | } _doctest_main_src_canvas_canvas_rs_37_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<Result<Infallible, MidiError>>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `bounding_box_width` found for struct `DeviceCanvas` in the current scope
[INFO] [stdout]   --> src/canvas/canvas.rs:40:19
[INFO] [stdout]    |
[INFO] [stdout] 6  | assert_eq!(canvas.bounding_box_width(), 9);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^ method not found in `DeviceCanvas<launchy::launchpad_mk2::Spec>`
[INFO] [stdout]    | 
[INFO] [stdout]   ::: /opt/rustwide/workdir/src/canvas/canvas.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn bounding_box_width(&self) -> u32;
[INFO] [stdout]    |        ------------------ the method is available for `DeviceCanvas<launchy::launchpad_mk2::Spec>` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stdout]    |
[INFO] [stdout] 3  | use crate::launchy::Canvas;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/layout.rs - canvas::layout::CanvasLayout (line 109) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `CanvasLayout`
[INFO] [stdout]  --> src/canvas/layout.rs:110:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | let mut canvas_layout = CanvasLayout::new(|msg| println!("Got a message: {:?}", msg));
[INFO] [stdout]   |                         ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::CanvasLayout;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/padded.rs - canvas::padded::PaddingCanvas (line 21) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Result<DeviceCanvas<launchy::launchpad_mk2::Spec>, MidiError>: Canvas` is not satisfied
[INFO] [stdout]  --> src/canvas/padded.rs:26:47
[INFO] [stdout]   |
[INFO] [stdout] 8 | let mut canvas = launchy::PaddingCanvas::from(canvas);
[INFO] [stdout]   |                                               ^^^^^^ the trait `Canvas` is not implemented for `Result<DeviceCanvas<launchy::launchpad_mk2::Spec>, MidiError>`
[INFO] [stdout]   |
[INFO] [stdout]   = note: required by `PaddingCanvas::<C>::from`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Result<DeviceCanvas<launchy::launchpad_mk2::Spec>, MidiError>: Canvas` is not satisfied
[INFO] [stdout]   --> src/canvas/padded.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 8  | let mut canvas = launchy::PaddingCanvas::from(canvas);
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Canvas` is not implemented for `Result<DeviceCanvas<launchy::launchpad_mk2::Spec>, MidiError>`
[INFO] [stdout]    | 
[INFO] [stdout]   ::: /opt/rustwide/workdir/src/canvas/padded.rs:35:29
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct PaddingCanvas<C: Canvas> {
[INFO] [stdout]    |                             ------ required by this bound in `PaddingCanvas`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `set` found for struct `PaddingCanvas` in the current scope
[INFO] [stdout]    --> src/canvas/padded.rs:31:10
[INFO] [stdout]     |
[INFO] [stdout] 13  |         canvas.set(x, y, launchy::Color::WHITE);
[INFO] [stdout]     |                ^^^ method not found in `PaddingCanvas<Result<DeviceCanvas<launchy::launchpad_mk2::Spec>, MidiError>>`
[INFO] [stdout]     |
[INFO] [stdout] help: consider wrapping the receiver expression with the appropriate type
[INFO] [stdout]     |
[INFO] [stdout] 13  |         Pin::new(&mut canvas).set(x, y, launchy::Color::WHITE);
[INFO] [stdout]     |         ^^^^^^^^^^^^^       ^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_column (line 689) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:690:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light_column(8, PaletteColor::WHITE)?;
[INFO] [stdout]   |                        ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:690:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light_column(8, PaletteColor::WHITE)?;
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:690:44
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_689_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | output.light_column(8, PaletteColor::WHITE)?;
[INFO] [stdout]   | |                                            ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 4 | | } _doctest_main_src_launchpad_mk2_output_rs_689_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_multiple_rgb (line 391) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:393:3
[INFO] [stdout]   |
[INFO] [stdout] 4 |     (Button::GridButton { x: 0, y: 0 }, RgbColor.new(0, 0, 63)),
[INFO] [stdout]   |      ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:394:3
[INFO] [stdout]   |
[INFO] [stdout] 5 |     (Button::GridButton { x: 7, y: 0 }, RgbColor.new(63, 0, 0)),
[INFO] [stdout]   |      ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:392:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light_multiple_rgb(&[
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `RgbColor` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:393:38
[INFO] [stdout]   |
[INFO] [stdout] 4 |     (Button::GridButton { x: 0, y: 0 }, RgbColor.new(0, 0, 63)),
[INFO] [stdout]   |                                         ^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `RgbColor` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:394:38
[INFO] [stdout]   |
[INFO] [stdout] 5 |     (Button::GridButton { x: 7, y: 0 }, RgbColor.new(63, 0, 0)),
[INFO] [stdout]   |                                         ^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:395:3
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_391_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | output.light_multiple_rgb(&[
[INFO] [stdout] 4 | |     (Button::GridButton { x: 0, y: 0 }, RgbColor.new(0, 0, 63)),
[INFO] [stdout] 5 | |     (Button::GridButton { x: 7, y: 0 }, RgbColor.new(63, 0, 0)),
[INFO] [stdout] 6 | | ])?;
[INFO] [stdout]   | |   ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 7 | | } _doctest_main_src_launchpad_mk2_output_rs_391_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/canvas.rs - canvas::canvas::Canvas::toggle (line 201) stdout ----
[INFO] [stdout] error: `mut` must be attached to each individual binding
[INFO] [stdout]  --> src/canvas/canvas.rs:202:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | let mut (canvas, poller) = launchy::mk2::Canvas::guess();
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^ help: add `mut` to each binding: `(mut canvas, mut poller)`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `mut` may be followed by `variable` and `variable @ pattern`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `CanvasMessage`
[INFO] [stdout]  --> src/canvas/canvas.rs:205:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     if let CanvasMessage::Press { x, y } = msg {
[INFO] [stdout]   |            ^^^^^^^^^^^^^ use of undeclared type `CanvasMessage`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/canvas.rs:206:23
[INFO] [stdout]   |
[INFO] [stdout] 8 |         canvas.toggle(x, y, Color::WHITE);
[INFO] [stdout]   |                             ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 0 arguments were supplied
[INFO] [stdout]   --> src/canvas/canvas.rs:202:28
[INFO] [stdout]    |
[INFO] [stdout] 4  | let mut (canvas, poller) = launchy::mk2::Canvas::guess();
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^-- supplied 0 arguments
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            expected 1 argument
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> /opt/rustwide/workdir/src/canvas/generic.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn guess(
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]  --> src/canvas/canvas.rs:202:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | let mut (canvas, poller) = launchy::mk2::Canvas::guess();
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^   ----------------------------- this expression has type `Result<DeviceCanvas<launchy::launchpad_mk2::Spec>, MidiError>`
[INFO] [stdout]   |     |
[INFO] [stdout]   |     expected enum `Result`, found tuple
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected enum `Result<DeviceCanvas<launchy::launchpad_mk2::Spec>, MidiError>`
[INFO] [stdout]             found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/canvas/canvas.rs:207:17
[INFO] [stdout]    |
[INFO] [stdout] 3  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_canvas_canvas_rs_201_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 4  | | let mut (canvas, poller) = launchy::mk2::Canvas::guess();
[INFO] [stdout] 5  | |  
[INFO] [stdout] 6  | | for msg in poller.iter() {
[INFO] [stdout] ...  |
[INFO] [stdout] 9  | |         canvas.flush()?;
[INFO] [stdout]    | |                       ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 10 | |     }
[INFO] [stdout] 11 | | }
[INFO] [stdout] 12 | | } _doctest_main_src_canvas_canvas_rs_201_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0308, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_all (line 462) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:463:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light_all(PaletteColor::BLACK)?;
[INFO] [stdout]   |                  ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:463:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light_all(PaletteColor::BLACK)?;
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:463:38
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_462_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | output.light_all(PaletteColor::BLACK)?;
[INFO] [stdout]   | |                                      ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 4 | | } _doctest_main_src_launchpad_mk2_output_rs_462_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/canvas.rs - canvas::canvas::Canvas::get (line 92) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/canvas.rs:95:49
[INFO] [stdout]   |
[INFO] [stdout] 6 | assert_eq!(canvas.get(Pad { x: 5, y: 5 }), Some(Color::BLACK));
[INFO] [stdout]   |                                                 ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/canvas.rs:97:30
[INFO] [stdout]   |
[INFO] [stdout] 8 | canvas[Pad { x: 5, y: 5 }] = Color::RED;
[INFO] [stdout]   |                              ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/canvas.rs:98:49
[INFO] [stdout]   |
[INFO] [stdout] 9 | assert_eq!(canvas.get(Pad { x: 5, y: 5 }), Some(Color::BLACK));
[INFO] [stdout]   |                                                 ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]   --> src/canvas/canvas.rs:101:49
[INFO] [stdout]    |
[INFO] [stdout] 12 | assert_eq!(canvas.get(Pad { x: 5, y: 5 }), Some(Color::RED));
[INFO] [stdout]    |                                                 ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Pad` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:95:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | assert_eq!(canvas.get(Pad { x: 5, y: 5 }), Some(Color::BLACK));
[INFO] [stdout]   |                       ^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::launch_control::Button::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Pad` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:97:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | canvas[Pad { x: 5, y: 5 }] = Color::RED;
[INFO] [stdout]   |        ^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::launch_control::Button::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Pad` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:98:23
[INFO] [stdout]   |
[INFO] [stdout] 9 | assert_eq!(canvas.get(Pad { x: 5, y: 5 }), Some(Color::BLACK));
[INFO] [stdout]   |                       ^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::launch_control::Button::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Pad` in this scope
[INFO] [stdout]   --> src/canvas/canvas.rs:101:23
[INFO] [stdout]    |
[INFO] [stdout] 12 | assert_eq!(canvas.get(Pad { x: 5, y: 5 }), Some(Color::RED));
[INFO] [stdout]    |                       ^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]    |
[INFO] [stdout] 3  | use launchy::Pad;
[INFO] [stdout]    |
[INFO] [stdout] 3  | use launchy::launch_control::Button::Pad;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/canvas/canvas.rs:93:49
[INFO] [stdout]    |
[INFO] [stdout] 3  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_canvas_canvas_rs_92_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 4  | | let canvas = launchy::mk2::Canvas::guess(|_| {})?;
[INFO] [stdout]    | |                                                 ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 5  | |  
[INFO] [stdout] 6  | | assert_eq!(canvas.get(Pad { x: 5, y: 5 }), Some(Color::BLACK));
[INFO] [stdout] ...  |
[INFO] [stdout] 12 | | assert_eq!(canvas.get(Pad { x: 5, y: 5 }), Some(Color::RED));
[INFO] [stdout] 13 | | } _doctest_main_src_canvas_canvas_rs_92_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Result<Infallible, MidiError>>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get` found for struct `DeviceCanvas` in the current scope
[INFO] [stdout]    --> src/canvas/canvas.rs:95:19
[INFO] [stdout]     |
[INFO] [stdout] 6   | assert_eq!(canvas.get(Pad { x: 5, y: 5 }), Some(Color::BLACK));
[INFO] [stdout]     |                   ^^^ method not found in `DeviceCanvas<launchy::launchpad_mk2::Spec>`
[INFO] [stdout]     | 
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/canvas/canvas.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn get(&self, pad: Pad) -> Option<Color> {
[INFO] [stdout]     |        --- the method is available for `DeviceCanvas<launchy::launchpad_mk2::Spec>` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stdout]     |
[INFO] [stdout] 3   | use crate::launchy::Canvas;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get` found for struct `DeviceCanvas` in the current scope
[INFO] [stdout]    --> src/canvas/canvas.rs:98:19
[INFO] [stdout]     |
[INFO] [stdout] 9   | assert_eq!(canvas.get(Pad { x: 5, y: 5 }), Some(Color::BLACK));
[INFO] [stdout]     |                   ^^^ method not found in `DeviceCanvas<launchy::launchpad_mk2::Spec>`
[INFO] [stdout]     | 
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/canvas/canvas.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn get(&self, pad: Pad) -> Option<Color> {
[INFO] [stdout]     |        --- the method is available for `DeviceCanvas<launchy::launchpad_mk2::Spec>` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stdout]     |
[INFO] [stdout] 3   | use crate::launchy::Canvas;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `flush` found for struct `DeviceCanvas` in the current scope
[INFO] [stdout]   --> src/canvas/canvas.rs:100:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | canvas.flush()?;
[INFO] [stdout]    |        ^^^^^ method not found in `DeviceCanvas<launchy::launchpad_mk2::Spec>`
[INFO] [stdout]    | 
[INFO] [stdout]   ::: /opt/rustwide/workdir/src/canvas/canvas.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 |     fn flush(&mut self) -> Result<(), crate::MidiError>;
[INFO] [stdout]    |        ----- the method is available for `DeviceCanvas<launchy::launchpad_mk2::Spec>` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stdout]    |
[INFO] [stdout] 3  | use crate::launchy::Canvas;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/canvas/canvas.rs:100:15
[INFO] [stdout]    |
[INFO] [stdout] 3  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_canvas_canvas_rs_92_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 4  | | let canvas = launchy::mk2::Canvas::guess(|_| {})?;
[INFO] [stdout] 5  | |  
[INFO] [stdout] 6  | | assert_eq!(canvas.get(Pad { x: 5, y: 5 }), Some(Color::BLACK));
[INFO] [stdout] ...  |
[INFO] [stdout] 11 | | canvas.flush()?;
[INFO] [stdout]    | |               ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 12 | | assert_eq!(canvas.get(Pad { x: 5, y: 5 }), Some(Color::RED));
[INFO] [stdout] 13 | | } _doctest_main_src_canvas_canvas_rs_92_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get` found for struct `DeviceCanvas` in the current scope
[INFO] [stdout]    --> src/canvas/canvas.rs:101:19
[INFO] [stdout]     |
[INFO] [stdout] 12  | assert_eq!(canvas.get(Pad { x: 5, y: 5 }), Some(Color::RED));
[INFO] [stdout]     |                   ^^^ method not found in `DeviceCanvas<launchy::launchpad_mk2::Spec>`
[INFO] [stdout]     | 
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/canvas/canvas.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn get(&self, pad: Pad) -> Option<Color> {
[INFO] [stdout]     |        --- the method is available for `DeviceCanvas<launchy::launchpad_mk2::Spec>` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stdout]     |
[INFO] [stdout] 3   | use crate::launchy::Canvas;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 14 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0422, E0433, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/canvas.rs - canvas::canvas::Canvas::flush (line 71) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/canvas.rs:74:30
[INFO] [stdout]   |
[INFO] [stdout] 6 | canvas[Pad { x: 0, y: 0 }] = Color::RED;
[INFO] [stdout]   |                              ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/canvas.rs:75:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | canvas[Pad { x: 1, y: 0 }] = Color::GREEN;
[INFO] [stdout]   |                              ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/canvas.rs:76:30
[INFO] [stdout]   |
[INFO] [stdout] 8 | canvas[Pad { x: 2, y: 0 }] = Color::RED;
[INFO] [stdout]   |                              ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/canvas.rs:77:30
[INFO] [stdout]   |
[INFO] [stdout] 9 | canvas[Pad { x: 3, y: 0 }] = Color::GREEN;
[INFO] [stdout]   |                              ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Pad` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:74:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | canvas[Pad { x: 0, y: 0 }] = Color::RED;
[INFO] [stdout]   |        ^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::launch_control::Button::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Pad` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:75:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | canvas[Pad { x: 1, y: 0 }] = Color::GREEN;
[INFO] [stdout]   |        ^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::launch_control::Button::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Pad` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:76:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | canvas[Pad { x: 2, y: 0 }] = Color::RED;
[INFO] [stdout]   |        ^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::launch_control::Button::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Pad` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:77:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | canvas[Pad { x: 3, y: 0 }] = Color::GREEN;
[INFO] [stdout]   |        ^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::launch_control::Button::Pad;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/canvas/canvas.rs:72:53
[INFO] [stdout]    |
[INFO] [stdout] 3  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_canvas_canvas_rs_71_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 4  | | let mut canvas = launchy::mk2::Canvas::guess(|_| {})?;
[INFO] [stdout]    | |                                                     ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 5  | |  
[INFO] [stdout] 6  | | canvas[Pad { x: 0, y: 0 }] = Color::RED;
[INFO] [stdout] ...  |
[INFO] [stdout] 12 | | canvas.flush()?;
[INFO] [stdout] 13 | | } _doctest_main_src_canvas_canvas_rs_71_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Result<Infallible, MidiError>>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `flush` found for struct `DeviceCanvas` in the current scope
[INFO] [stdout]   --> src/canvas/canvas.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | canvas.flush()?;
[INFO] [stdout]    |        ^^^^^ method not found in `DeviceCanvas<launchy::launchpad_mk2::Spec>`
[INFO] [stdout]    | 
[INFO] [stdout]   ::: /opt/rustwide/workdir/src/canvas/canvas.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 |     fn flush(&mut self) -> Result<(), crate::MidiError>;
[INFO] [stdout]    |        ----- the method is available for `DeviceCanvas<launchy::launchpad_mk2::Spec>` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stdout]    |
[INFO] [stdout] 3  | use crate::launchy::Canvas;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/canvas/canvas.rs:80:15
[INFO] [stdout]    |
[INFO] [stdout] 3  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_canvas_canvas_rs_71_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 4  | | let mut canvas = launchy::mk2::Canvas::guess(|_| {})?;
[INFO] [stdout] 5  | |  
[INFO] [stdout] 6  | | canvas[Pad { x: 0, y: 0 }] = Color::RED;
[INFO] [stdout] ...  |
[INFO] [stdout] 12 | | canvas.flush()?;
[INFO] [stdout]    | |               ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 13 | | } _doctest_main_src_canvas_canvas_rs_71_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 11 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0422, E0433, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/color.rs - canvas::color::Color::from_hue (line 34) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:35:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | let red = Color::from_hue(0.0);
[INFO] [stdout]   |           ^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::Color;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launch_control::Color;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:36:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | let orange = Color::from_hue(0.1);
[INFO] [stdout]   |              ^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::Color;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launch_control::Color;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:37:23
[INFO] [stdout]   |
[INFO] [stdout] 5 | let greenish_yellow = Color::from_hue(0.2);
[INFO] [stdout]   |                       ^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::Color;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launch_control::Color;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:38:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | let green = Color::from_hue(0.3);
[INFO] [stdout]   |             ^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::Color;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launch_control::Color;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:39:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | let cyan = Color::from_hue(0.4);
[INFO] [stdout]   |            ^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::Color;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launch_control::Color;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:40:18
[INFO] [stdout]   |
[INFO] [stdout] 8 | let light_blue = Color::from_hue(0.5);
[INFO] [stdout]   |                  ^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::Color;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launch_control::Color;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:41:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | let blue = Color::from_hue(0.6);
[INFO] [stdout]   |            ^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::Color;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launch_control::Color;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]   --> src/canvas/color.rs:42:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | let purple = Color::from_hue(0.7);
[INFO] [stdout]    |              ^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]    |
[INFO] [stdout] 2  | use launchy::Color;
[INFO] [stdout]    |
[INFO] [stdout] 2  | use launchy::launch_control::Color;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]   --> src/canvas/color.rs:43:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | let light_pink = Color::from_hue(0.8);
[INFO] [stdout]    |                  ^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]    |
[INFO] [stdout] 2  | use launchy::Color;
[INFO] [stdout]    |
[INFO] [stdout] 2  | use launchy::launch_control::Color;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]   --> src/canvas/color.rs:44:19
[INFO] [stdout]    |
[INFO] [stdout] 12 | let strong_pink = Color::from_hue(0.9);
[INFO] [stdout]    |                   ^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]    |
[INFO] [stdout] 2  | use launchy::Color;
[INFO] [stdout]    |
[INFO] [stdout] 2  | use launchy::launch_control::Color;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 10 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/color.rs - canvas::color::Color::new (line 23) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:24:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | let lime = Color::new(0.75, 1.0, 0.0);
[INFO] [stdout]   |            ^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::Color;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launch_control::Color;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/color.rs:25:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | let beige = Color::new(0.96, 0.96, 0.86);
[INFO] [stdout]   |             ^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::Color;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launch_control::Color;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/canvas.rs - canvas::canvas::Canvas::is_valid (line 53) stdout ----
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/canvas/canvas.rs:54:49
[INFO] [stdout]   |
[INFO] [stdout] 3 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_canvas_canvas_rs_53_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 4 | | let canvas = launchy::mk2::Canvas::guess(|_| {})?;
[INFO] [stdout]   | |                                                 ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 5 | |  
[INFO] [stdout] 6 | | assert!(canvas.is_valid(7, 0));
[INFO] [stdout] 7 | | assert!(!canvas.is_valid(8, 0));
[INFO] [stdout] 8 | | } _doctest_main_src_canvas_canvas_rs_53_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<Result<Infallible, MidiError>>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `is_valid` found for struct `DeviceCanvas` in the current scope
[INFO] [stdout]   --> src/canvas/canvas.rs:56:16
[INFO] [stdout]    |
[INFO] [stdout] 6  | assert!(canvas.is_valid(7, 0));
[INFO] [stdout]    |                ^^^^^^^^ method not found in `DeviceCanvas<launchy::launchpad_mk2::Spec>`
[INFO] [stdout]    | 
[INFO] [stdout]   ::: /opt/rustwide/workdir/src/canvas/canvas.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn is_valid(&self, x: u32, y: u32) -> bool;
[INFO] [stdout]    |        -------- the method is available for `DeviceCanvas<launchy::launchpad_mk2::Spec>` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stdout]    |
[INFO] [stdout] 3  | use crate::launchy::Canvas;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `is_valid` found for struct `DeviceCanvas` in the current scope
[INFO] [stdout]   --> src/canvas/canvas.rs:57:17
[INFO] [stdout]    |
[INFO] [stdout] 7  | assert!(!canvas.is_valid(8, 0));
[INFO] [stdout]    |                 ^^^^^^^^ method not found in `DeviceCanvas<launchy::launchpad_mk2::Spec>`
[INFO] [stdout]    | 
[INFO] [stdout]   ::: /opt/rustwide/workdir/src/canvas/canvas.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn is_valid(&self, x: u32, y: u32) -> bool;
[INFO] [stdout]    |        -------- the method is available for `DeviceCanvas<launchy::launchpad_mk2::Spec>` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stdout]    |
[INFO] [stdout] 3  | use crate::launchy::Canvas;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light (line 654) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:655:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light(Button::VOLUME, PaletteColor::CYAN)?;
[INFO] [stdout]   |              ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:655:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light(Button::VOLUME, PaletteColor::CYAN)?;
[INFO] [stdout]   |                              ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:655:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light(Button::VOLUME, PaletteColor::CYAN)?;
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:655:49
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_654_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | output.light(Button::VOLUME, PaletteColor::CYAN)?;
[INFO] [stdout]   | |                                                 ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 4 | | } _doctest_main_src_launchpad_mk2_output_rs_654_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::flash_multiple (line 742) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:744:3
[INFO] [stdout]   |
[INFO] [stdout] 4 |     (Button::USER_1, PaletteColor::new(9)),
[INFO] [stdout]   |      ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:745:3
[INFO] [stdout]   |
[INFO] [stdout] 5 |     (Button::USER_2, PaletteColor::new(9)),
[INFO] [stdout]   |      ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:743:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.flash_multiple(&[
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:744:19
[INFO] [stdout]   |
[INFO] [stdout] 4 |     (Button::USER_1, PaletteColor::new(9)),
[INFO] [stdout]   |                      ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launchpad_mk2::PaletteColor;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:745:19
[INFO] [stdout]   |
[INFO] [stdout] 5 |     (Button::USER_2, PaletteColor::new(9)),
[INFO] [stdout]   |                      ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launchpad_mk2::PaletteColor;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:746:3
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_742_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | output.flash_multiple(&[
[INFO] [stdout] 4 | |     (Button::USER_1, PaletteColor::new(9)),
[INFO] [stdout] 5 | |     (Button::USER_2, PaletteColor::new(9)),
[INFO] [stdout] 6 | | ])?;
[INFO] [stdout]   | |   ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 7 | | } _doctest_main_src_launchpad_mk2_output_rs_742_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_columns (line 425) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:427:6
[INFO] [stdout]   |
[INFO] [stdout] 4 |     (0, PaletteColor::YELLOW),
[INFO] [stdout]   |         ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:428:6
[INFO] [stdout]   |
[INFO] [stdout] 5 |     (1, PaletteColor::BLUE),
[INFO] [stdout]   |         ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:426:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light_columns(&[
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:429:3
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_425_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | output.light_columns(&[
[INFO] [stdout] 4 | |     (0, PaletteColor::YELLOW),
[INFO] [stdout] 5 | |     (1, PaletteColor::BLUE),
[INFO] [stdout] 6 | | ])?;
[INFO] [stdout]   | |   ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 7 | | } _doctest_main_src_launchpad_mk2_output_rs_425_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/layout.rs - canvas::layout::CanvasLayout::add (line 163) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `canvas_layout` in this scope
[INFO] [stdout]  --> src/canvas/layout.rs:164:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | canvas_layout.add(0, 0, |callback| launchy::mk2::Canvas::guess(callback))?;
[INFO] [stdout]   | ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `canvas_layout` in this scope
[INFO] [stdout]  --> src/canvas/layout.rs:167:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | canvas_layout.add(0, 0, |callback| {
[INFO] [stdout]   | ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `CanvasLayout`
[INFO] [stdout]  --> src/canvas/layout.rs:168:32
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut inner_canvas_layout = CanvasLayout::new(callback);
[INFO] [stdout]   |                                   ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 3 | use launchy::CanvasLayout;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/canvas/layout.rs:164:74
[INFO] [stdout]    |
[INFO] [stdout] 3  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_canvas_layout_rs_163_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 4  | | canvas_layout.add(0, 0, |callback| launchy::mk2::Canvas::guess(callback))?;
[INFO] [stdout]    | |                                                                          ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 5  | |  
[INFO] [stdout] 6  | | // or even nested layouts:
[INFO] [stdout] ...  |
[INFO] [stdout] 10 | | })?;
[INFO] [stdout] 11 | | } _doctest_main_src_canvas_layout_rs_163_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/canvas/layout.rs:170:3
[INFO] [stdout]    |
[INFO] [stdout] 3  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_canvas_layout_rs_163_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 4  | | canvas_layout.add(0, 0, |callback| launchy::mk2::Canvas::guess(callback))?;
[INFO] [stdout] 5  | |  
[INFO] [stdout] 6  | | // or even nested layouts:
[INFO] [stdout] ...  |
[INFO] [stdout] 10 | | })?;
[INFO] [stdout]    | |   ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 11 | | } _doctest_main_src_canvas_layout_rs_163_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 49) stdout ----
[INFO] [stdout] error[E0599]: no function or associated item named `guess` found for struct `launchy::launchpad_s::Output` in the current scope
[INFO] [stdout]  --> src/lib.rs:53:38
[INFO] [stdout]   |
[INFO] [stdout] 7 | let mut output = launchy::s::Output::guess()?;
[INFO] [stdout]   |                                      ^^^^^ function or associated item not found in `launchy::launchpad_s::Output`
[INFO] [stdout]   |
[INFO] [stdout]   = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::launchy::OutputDevice;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/lib.rs:53:45
[INFO] [stdout]    |
[INFO] [stdout] 3  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_49_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 4  | | use launchy::Color;
[INFO] [stdout] 5  | | use launchy::s::{DoubleBuffering, DoubleBufferingBehavior, Buffer};
[INFO] [stdout] 6  | |
[INFO] [stdout] 7  | | let mut output = launchy::s::Output::guess()?;
[INFO] [stdout]    | |                                             ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] ...  |
[INFO] [stdout] 32 | | });
[INFO] [stdout] 33 | | } _doctest_main_src_lib_rs_49_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 16) stdout ----
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/lib.rs:19:69
[INFO] [stdout]    |
[INFO] [stdout] 3  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_16_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 4  | | use launchy::{CanvasMessage, Color};
[INFO] [stdout] 5  | |
[INFO] [stdout] 6  | | let (mut canvas, input_poller) = launchy::s::Canvas::guess_polling()?;
[INFO] [stdout]    | |                                                                     ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] ...  |
[INFO] [stdout] 14 | | }
[INFO] [stdout] 15 | | } _doctest_main_src_lib_rs_16_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Result<Infallible, MidiError>>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `iter` found for struct `DeviceCanvasPoller` in the current scope
[INFO] [stdout]    --> src/lib.rs:21:25
[INFO] [stdout]     |
[INFO] [stdout] 8   | for msg in input_poller.iter() {
[INFO] [stdout]     |                         ^^^^ method not found in `DeviceCanvasPoller`
[INFO] [stdout]     | 
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/midi_io.rs:190:8
[INFO] [stdout]     |
[INFO] [stdout] 190 |     fn iter(&self) -> std::sync::mpsc::Iter<Self::Message> {
[INFO] [stdout]     |        ---- the method is available for `DeviceCanvasPoller` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stdout]     |
[INFO] [stdout] 3   | use crate::launchy::MsgPollingWrapper;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0026]: variant `launchy::CanvasMessage::Press` does not have a field named `pad`
[INFO] [stdout]   --> src/lib.rs:23:26
[INFO] [stdout]    |
[INFO] [stdout] 10 |         CanvasMessage::Press { pad } => canvas[pad] = Color::WHITE,
[INFO] [stdout]    |                                ^^^ variant `launchy::CanvasMessage::Press` does not have this field
[INFO] [stdout] 
[INFO] [stdout] error[E0027]: pattern does not mention fields `x`, `y`
[INFO] [stdout]   --> src/lib.rs:23:3
[INFO] [stdout]    |
[INFO] [stdout] 10 |         CanvasMessage::Press { pad } => canvas[pad] = Color::WHITE,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing fields `x`, `y`
[INFO] [stdout]    |
[INFO] [stdout] help: include the missing fields in the pattern
[INFO] [stdout]    |
[INFO] [stdout] 10 |         CanvasMessage::Press { pad, x, y } => canvas[pad] = Color::WHITE,
[INFO] [stdout]    |                                   ^^^^^^^^
[INFO] [stdout] help: if you don't care about these missing fields, you can explicitly ignore them
[INFO] [stdout]    |
[INFO] [stdout] 10 |         CanvasMessage::Press { pad, .. } => canvas[pad] = Color::WHITE,
[INFO] [stdout]    |                                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0026]: variant `launchy::CanvasMessage::Release` does not have a field named `pad`
[INFO] [stdout]   --> src/lib.rs:24:28
[INFO] [stdout]    |
[INFO] [stdout] 11 |         CanvasMessage::Release { pad } => canvas[pad] = Color::BLACK,
[INFO] [stdout]    |                                  ^^^ variant `launchy::CanvasMessage::Release` does not have this field
[INFO] [stdout] 
[INFO] [stdout] error[E0027]: pattern does not mention fields `x`, `y`
[INFO] [stdout]   --> src/lib.rs:24:3
[INFO] [stdout]    |
[INFO] [stdout] 11 |         CanvasMessage::Release { pad } => canvas[pad] = Color::BLACK,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing fields `x`, `y`
[INFO] [stdout]    |
[INFO] [stdout] help: include the missing fields in the pattern
[INFO] [stdout]    |
[INFO] [stdout] 11 |         CanvasMessage::Release { pad, x, y } => canvas[pad] = Color::BLACK,
[INFO] [stdout]    |                                     ^^^^^^^^
[INFO] [stdout] help: if you don't care about these missing fields, you can explicitly ignore them
[INFO] [stdout]    |
[INFO] [stdout] 11 |         CanvasMessage::Release { pad, .. } => canvas[pad] = Color::BLACK,
[INFO] [stdout]    |                                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `flush` found for struct `DeviceCanvas` in the current scope
[INFO] [stdout]   --> src/lib.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     canvas.flush()?;
[INFO] [stdout]    |            ^^^^^ method not found in `DeviceCanvas<launchy::launchpad_s::Spec>`
[INFO] [stdout]    | 
[INFO] [stdout]   ::: /opt/rustwide/workdir/src/canvas/canvas.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 |     fn flush(&mut self) -> Result<(), crate::MidiError>;
[INFO] [stdout]    |        ----- the method is available for `DeviceCanvas<launchy::launchpad_s::Spec>` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stdout]    |
[INFO] [stdout] 3  | use crate::launchy::Canvas;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/lib.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 3  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_16_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 4  | | use launchy::{CanvasMessage, Color};
[INFO] [stdout] 5  | |
[INFO] [stdout] 6  | | let (mut canvas, input_poller) = launchy::s::Canvas::guess_polling()?;
[INFO] [stdout] ...  |
[INFO] [stdout] 13 | |     canvas.flush()?;
[INFO] [stdout]    | |                   ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 14 | | }
[INFO] [stdout] 15 | | } _doctest_main_src_lib_rs_16_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 8 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0026, E0027, E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0026`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/canvas.rs - canvas::canvas::Canvas::clear (line 222) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/canvas.rs:225:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | canvas.set(0, 0, Color::MAGENTA);
[INFO] [stdout]   |                  ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/canvas.rs:226:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | canvas.set(0, 1, Color::MAGENTA);
[INFO] [stdout]   |                  ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/canvas.rs:227:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | canvas.set(1, 0, Color::MAGENTA);
[INFO] [stdout]   |                  ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/canvas.rs:228:18
[INFO] [stdout]   |
[INFO] [stdout] 8 | canvas.set(1, 1, Color::MAGENTA);
[INFO] [stdout]   |                  ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `canvas` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:225:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | canvas.set(0, 0, Color::MAGENTA);
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `canvas` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:226:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | canvas.set(0, 1, Color::MAGENTA);
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `canvas` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:227:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | canvas.set(1, 0, Color::MAGENTA);
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `canvas` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:228:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | canvas.set(1, 1, Color::MAGENTA);
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `canvas` in this scope
[INFO] [stdout]   --> src/canvas/canvas.rs:232:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | canvas.clear();
[INFO] [stdout]    | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `canvas` in this scope
[INFO] [stdout]   --> src/canvas/canvas.rs:233:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | canvas.flush()?;
[INFO] [stdout]    | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::thread::sleep_ms`: replaced by `std::thread::sleep`
[INFO] [stdout]   --> src/canvas/canvas.rs:230:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | std::thread::sleep_ms(1000);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/canvas/canvas.rs:233:15
[INFO] [stdout]    |
[INFO] [stdout] 4  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_canvas_canvas_rs_222_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 5  | | canvas.set(0, 0, Color::MAGENTA);
[INFO] [stdout] 6  | | canvas.set(0, 1, Color::MAGENTA);
[INFO] [stdout] 7  | | canvas.set(1, 0, Color::MAGENTA);
[INFO] [stdout] ...  |
[INFO] [stdout] 13 | | canvas.flush()?;
[INFO] [stdout]    | |               ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 14 | | } _doctest_main_src_canvas_canvas_rs_222_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 11 previous errors; 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_rows (line 442) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:444:6
[INFO] [stdout]   |
[INFO] [stdout] 4 |     (0, PaletteColor::MAGENTA),
[INFO] [stdout]   |         ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:445:6
[INFO] [stdout]   |
[INFO] [stdout] 5 |     (1, PaletteColor::GREEN),
[INFO] [stdout]   |         ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:443:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light_rows(&[
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:446:3
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_442_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | output.light_rows(&[
[INFO] [stdout] 4 | |     (0, PaletteColor::MAGENTA),
[INFO] [stdout] 5 | |     (1, PaletteColor::GREEN),
[INFO] [stdout] 6 | | ])?;
[INFO] [stdout]   | |   ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 7 | | } _doctest_main_src_launchpad_mk2_output_rs_442_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::pulse (line 679) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:680:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.pulse(Button::GridButton { x: 7, y: 0 }, PaletteColor::MAGENTA)?;
[INFO] [stdout]   |              ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:680:49
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.pulse(Button::GridButton { x: 7, y: 0 }, PaletteColor::MAGENTA)?;
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:680:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.pulse(Button::GridButton { x: 7, y: 0 }, PaletteColor::MAGENTA)?;
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:680:71
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_679_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | output.pulse(Button::GridButton { x: 7, y: 0 }, PaletteColor::MAGENTA)?;
[INFO] [stdout]   | |                                                                       ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 4 | | } _doctest_main_src_launchpad_mk2_output_rs_679_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::set_button (line 326) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:329:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | let button = Button::ControlButton { index: 0 };
[INFO] [stdout]   |              ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:330:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | let color = PaletteColor::YELLOW;
[INFO] [stdout]   |             ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LightMode`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:331:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | let light_mode = LightMode::Pulse;
[INFO] [stdout]   |                  ^^^^^^^^^ use of undeclared type `LightMode`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Output`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:327:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | let mut output = Output::guess();
[INFO] [stdout]   |                  ^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launch_control::Output;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launchpad_mk2::Output;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launchpad_s::Output;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::Output;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:332:45
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_326_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | let mut output = Output::guess();
[INFO] [stdout] 4 | |  
[INFO] [stdout] 5 | | let button = Button::ControlButton { index: 0 };
[INFO] [stdout] ... |
[INFO] [stdout] 8 | | output.set_button(button, color, light_mode)?;
[INFO] [stdout]   | |                                             ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 9 | | } _doctest_main_src_launchpad_mk2_output_rs_326_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::enter_fader_mode (line 568) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:572:16
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Fader::new(0, PaletteColor::GREEN, 0),
[INFO] [stdout]   |                   ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:573:16
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Fader::new(1, PaletteColor::GREEN, 127),
[INFO] [stdout]   |                   ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:574:16
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Fader::new(7, PaletteColor::WHITE, 63),
[INFO] [stdout]   |                   ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:569:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | let mut fader_setup = output.enter_fader_mode()?;
[INFO] [stdout]   |                       ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `fader_mode` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:571:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | fader_mode.designate_faders(&[
[INFO] [stdout]   | ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Fader`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:572:2
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Fader::new(0, PaletteColor::GREEN, 0),
[INFO] [stdout]   |     ^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launchpad_mk2::Fader;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Fader`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:573:2
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Fader::new(1, PaletteColor::GREEN, 127),
[INFO] [stdout]   |     ^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launchpad_mk2::Fader;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Fader`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:574:2
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Fader::new(7, PaletteColor::WHITE, 63),
[INFO] [stdout]   |     ^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launchpad_mk2::Fader;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/launchpad_mk2/output.rs:569:48
[INFO] [stdout]    |
[INFO] [stdout] 2  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_568_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 3  | | let mut fader_setup = output.enter_fader_mode()?;
[INFO] [stdout]    | |                                                ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 4  | |  
[INFO] [stdout] 5  | | fader_mode.designate_faders(&[
[INFO] [stdout] ...  |
[INFO] [stdout] 11 | | let mut output = fader_setup.exit()?;
[INFO] [stdout] 12 | | } _doctest_main_src_launchpad_mk2_output_rs_568_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/launchpad_mk2/output.rs:575:3
[INFO] [stdout]    |
[INFO] [stdout] 2  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_568_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 3  | | let mut fader_setup = output.enter_fader_mode()?;
[INFO] [stdout] 4  | |  
[INFO] [stdout] 5  | | fader_mode.designate_faders(&[
[INFO] [stdout] ...  |
[INFO] [stdout] 9  | | ])?;
[INFO] [stdout]    | |   ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 10 | |  
[INFO] [stdout] 11 | | let mut output = fader_setup.exit()?;
[INFO] [stdout] 12 | | } _doctest_main_src_launchpad_mk2_output_rs_568_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/launchpad_mk2/output.rs:577:36
[INFO] [stdout]    |
[INFO] [stdout] 2  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_568_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 3  | | let mut fader_setup = output.enter_fader_mode()?;
[INFO] [stdout] 4  | |  
[INFO] [stdout] 5  | | fader_mode.designate_faders(&[
[INFO] [stdout] ...  |
[INFO] [stdout] 11 | | let mut output = fader_setup.exit()?;
[INFO] [stdout]    | |                                    ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 12 | | } _doctest_main_src_launchpad_mk2_output_rs_568_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 11 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::set_buttons (line 356) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:358:3
[INFO] [stdout]   |
[INFO] [stdout] 4 |     (Button::ControlButton { index: 0 }, PaletteColor::YELLOW),
[INFO] [stdout]   |      ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:358:39
[INFO] [stdout]   |
[INFO] [stdout] 4 |     (Button::ControlButton { index: 0 }, PaletteColor::YELLOW),
[INFO] [stderr] error: test failed, to rerun pass '--doc'
[INFO] [stdout]   |                                          ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:359:3
[INFO] [stdout]   |
[INFO] [stdout] 5 |     (Button::ControlButton { index: 1 }, PaletteColor::RED),
[INFO] [stdout]   |      ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:359:39
[INFO] [stdout]   |
[INFO] [stdout] 5 |     (Button::ControlButton { index: 1 }, PaletteColor::RED),
[INFO] [stdout]   |                                          ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LightMode`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:360:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | ], LightMode::Flash)?;
[INFO] [stdout]   |    ^^^^^^^^^ use of undeclared type `LightMode`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:357:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.set_buttons(&[
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:360:21
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_356_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | output.set_buttons(&[
[INFO] [stdout] 4 | |     (Button::ControlButton { index: 0 }, PaletteColor::YELLOW),
[INFO] [stdout] 5 | |     (Button::ControlButton { index: 1 }, PaletteColor::RED),
[INFO] [stdout] 6 | | ], LightMode::Flash)?;
[INFO] [stdout]   | |                     ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 7 | | } _doctest_main_src_launchpad_mk2_output_rs_356_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 7 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/canvas.rs - canvas::canvas::Canvas::iter (line 180) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `canvas` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:181:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | for pad in canvas.iter() {
[INFO] [stdout]   |            ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `canvas` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:183:23
[INFO] [stdout]   |
[INFO] [stdout] 5 |     if let Some(color) = canvas[pad.left(1)] {
[INFO] [stdout]   |                          ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `canvas` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:185:3
[INFO] [stdout]   |
[INFO] [stdout] 7 |         canvas[pad] = color;
[INFO] [stdout]   |         ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `canvas` in this scope
[INFO] [stdout]   --> src/canvas/canvas.rs:188:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | canvas.flush()?;
[INFO] [stdout]    | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/canvas/canvas.rs:188:15
[INFO] [stdout]    |
[INFO] [stdout] 2  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_canvas_canvas_rs_180_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 3  | | for pad in canvas.iter() {
[INFO] [stdout] 4  | |     // If there's a pad to the left
[INFO] [stdout] 5  | |     if let Some(color) = canvas[pad.left(1)] {
[INFO] [stdout] ...  |
[INFO] [stdout] 10 | | canvas.flush()?;
[INFO] [stdout]    | |               ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 11 | | } _doctest_main_src_canvas_canvas_rs_180_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_row (line 702) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:703:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light_row(1, PaletteColor::GREEN)?;
[INFO] [stdout]   |                     ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:703:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light_row(1, PaletteColor::GREEN)?;
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:703:41
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_702_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | output.light_row(1, PaletteColor::GREEN)?;
[INFO] [stdout]   | |                                         ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 4 | | } _doctest_main_src_launchpad_mk2_output_rs_702_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::scroll_text (line 534) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:535:46
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.scroll_text(b"\x01Hello, \x07world!", PaletteColor::BLUE, false)?;
[INFO] [stdout]   |                                              ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:535:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.scroll_text(b"\x01Hello, \x07world!", PaletteColor::BLUE, false)?;
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:535:72
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_534_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | output.scroll_text(b"\x01Hello, \x07world!", PaletteColor::BLUE, false)?;
[INFO] [stdout]   | |                                                                        ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 4 | | } _doctest_main_src_launchpad_mk2_output_rs_534_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::send_clock_tick (line 480) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:485:2
[INFO] [stdout]   |
[INFO] [stdout] 7 |     output.send_clock_tick()?;
[INFO] [stdout]   |     ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/launchpad_mk2/output.rs:485:26
[INFO] [stdout]    |
[INFO] [stdout] 2  |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_480_0() {
[INFO] [stdout]    |  ______________________________________-
[INFO] [stdout] 3  | | let beats_per_minute = 200;
[INFO] [stdout] 4  | | let clock_ticks_per_second = beats_per_minute * 60 * 24;
[INFO] [stdout] 5  | | let clock_tick_interval = std::time::Duration::from_millis(1000 / clock_ticks_per_second);
[INFO] [stdout] 6  | | loop {
[INFO] [stdout] 7  | |     output.send_clock_tick()?;
[INFO] [stdout]    | |                             ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 8  | |     std::thread::sleep(clock_tick_interval);
[INFO] [stdout] 9  | | }
[INFO] [stdout] 10 | | } _doctest_main_src_launchpad_mk2_output_rs_480_0() }
[INFO] [stdout]    | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]    = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_rgb (line 714) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:715:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light_rgb(Button::GridButton { x: 7, y: 7 }, RgbColor::new(0, 63, 63))?;
[INFO] [stdout]   |                  ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:715:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light_rgb(Button::GridButton { x: 7, y: 7 }, RgbColor::new(0, 63, 63))?;
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `RgbColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:715:53
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light_rgb(Button::GridButton { x: 7, y: 7 }, RgbColor::new(0, 63, 63))?;
[INFO] [stdout]   |                                                     ^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 | use embedded_graphics::prelude::RgbColor;
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launchpad_mk2::RgbColor;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:715:78
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_714_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | output.light_rgb(Button::GridButton { x: 7, y: 7 }, RgbColor::new(0, 63, 63))?;
[INFO] [stdout]   | |                                                                              ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 4 | | } _doctest_main_src_launchpad_mk2_output_rs_714_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/canvas/canvas.rs - canvas::canvas::Canvas::iter (line 172) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Color`
[INFO] [stdout]  --> src/canvas/canvas.rs:174:16
[INFO] [stdout]   |
[INFO] [stdout] 4 |     canvas[pad] = Color::WHITE;
[INFO] [stdout]   |                   ^^^^^ use of undeclared type `Color`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `canvas` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:173:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | for pad in canvas.iter() {
[INFO] [stdout]   |            ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `canvas` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:174:2
[INFO] [stdout]   |
[INFO] [stdout] 4 |     canvas[pad] = Color::WHITE;
[INFO] [stdout]   |     ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `canvas` in this scope
[INFO] [stdout]  --> src/canvas/canvas.rs:176:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | canvas.flush()?;
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/canvas/canvas.rs:176:15
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_canvas_canvas_rs_172_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | for pad in canvas.iter() {
[INFO] [stdout] 4 | |     canvas[pad] = Color::WHITE;
[INFO] [stdout] 5 | | }
[INFO] [stdout] 6 | | canvas.flush()?;
[INFO] [stdout]   | |               ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 7 | | } _doctest_main_src_canvas_canvas_rs_172_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::pulse_multiple (line 759) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:761:3
[INFO] [stdout]   |
[INFO] [stdout] 4 |     (Button::USER_1, PaletteColor::new(9)),
[INFO] [stdout]   |      ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:762:3
[INFO] [stdout]   |
[INFO] [stdout] 5 |     (Button::USER_2, PaletteColor::new(9)),
[INFO] [stdout]   |      ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:760:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.pulse_multiple(&[
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:761:19
[INFO] [stdout]   |
[INFO] [stdout] 4 |     (Button::USER_1, PaletteColor::new(9)),
[INFO] [stdout]   |                      ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launchpad_mk2::PaletteColor;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:762:19
[INFO] [stdout]   |
[INFO] [stdout] 5 |     (Button::USER_2, PaletteColor::new(9)),
[INFO] [stdout]   |                      ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launchpad_mk2::PaletteColor;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:763:3
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_759_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | output.pulse_multiple(&[
[INFO] [stdout] 4 | |     (Button::USER_1, PaletteColor::new(9)),
[INFO] [stdout] 5 | |     (Button::USER_2, PaletteColor::new(9)),
[INFO] [stdout] 6 | | ])?;
[INFO] [stdout]   | |   ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 7 | | } _doctest_main_src_launchpad_mk2_output_rs_759_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_multiple (line 725) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:727:3
[INFO] [stdout]   |
[INFO] [stdout] 4 |     (Button::USER_1, PaletteColor::new(9)),
[INFO] [stdout]   |      ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:728:3
[INFO] [stdout]   |
[INFO] [stdout] 5 |     (Button::USER_2, PaletteColor::new(9)),
[INFO] [stdout]   |      ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:726:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.light_multiple(&[
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:727:19
[INFO] [stdout]   |
[INFO] [stdout] 4 |     (Button::USER_1, PaletteColor::new(9)),
[INFO] [stdout]   |                      ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launchpad_mk2::PaletteColor;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:728:19
[INFO] [stdout]   |
[INFO] [stdout] 5 |     (Button::USER_2, PaletteColor::new(9)),
[INFO] [stdout]   |                      ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 | use launchy::launchpad_mk2::PaletteColor;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:729:3
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_725_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | output.light_multiple(&[
[INFO] [stdout] 4 | |     (Button::USER_1, PaletteColor::new(9)),
[INFO] [stdout] 5 | |     (Button::USER_2, PaletteColor::new(9)),
[INFO] [stdout] 6 | | ])?;
[INFO] [stdout]   | |   ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 7 | | } _doctest_main_src_launchpad_mk2_output_rs_725_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::flash (line 668) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Button`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:669:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.flash(Button::UP, PaletteColor::RED)?;
[INFO] [stdout]   |              ^^^^^^ use of undeclared type `Button`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PaletteColor`
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:669:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.flash(Button::UP, PaletteColor::RED)?;
[INFO] [stdout]   |                          ^^^^^^^^^^^^ use of undeclared type `PaletteColor`
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output` in this scope
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:669:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | output.flash(Button::UP, PaletteColor::RED)?;
[INFO] [stdout]   | ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]  --> src/launchpad_mk2/output.rs:669:44
[INFO] [stdout]   |
[INFO] [stdout] 2 |   fn main() { #[allow(non_snake_case)] fn _doctest_main_src_launchpad_mk2_output_rs_668_0() {
[INFO] [stdout]   |  ______________________________________-
[INFO] [stdout] 3 | | output.flash(Button::UP, PaletteColor::RED)?;
[INFO] [stdout]   | |                                            ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout] 4 | | } _doctest_main_src_launchpad_mk2_output_rs_668_0() }
[INFO] [stdout]   | |_- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromResidual<_>` is not implemented for `()`
[INFO] [stdout]   = note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/canvas/canvas.rs - canvas::canvas::Canvas (line 16)
[INFO] [stdout]     src/canvas/canvas.rs - canvas::canvas::Canvas::bounding_box_height (line 45)
[INFO] [stdout]     src/canvas/canvas.rs - canvas::canvas::Canvas::bounding_box_width (line 37)
[INFO] [stdout]     src/canvas/canvas.rs - canvas::canvas::Canvas::clear (line 222)
[INFO] [stdout]     src/canvas/canvas.rs - canvas::canvas::Canvas::flush (line 71)
[INFO] [stdout]     src/canvas/canvas.rs - canvas::canvas::Canvas::get (line 92)
[INFO] [stdout]     src/canvas/canvas.rs - canvas::canvas::Canvas::is_valid (line 53)
[INFO] [stdout]     src/canvas/canvas.rs - canvas::canvas::Canvas::iter (line 172)
[INFO] [stdout]     src/canvas/canvas.rs - canvas::canvas::Canvas::iter (line 180)
[INFO] [stdout]     src/canvas/canvas.rs - canvas::canvas::Canvas::toggle (line 201)
[INFO] [stdout]     src/canvas/color.rs - canvas::color::Color::from_hue (line 34)
[INFO] [stdout]     src/canvas/color.rs - canvas::color::Color::mix (line 100)
[INFO] [stdout]     src/canvas/color.rs - canvas::color::Color::new (line 23)
[INFO] [stdout]     src/canvas/layout.rs - canvas::layout::CanvasLayout (line 109)
[INFO] [stdout]     src/canvas/layout.rs - canvas::layout::CanvasLayout::add (line 163)
[INFO] [stdout]     src/canvas/layout.rs - canvas::layout::CanvasLayout::add_by_guess (line 226)
[INFO] [stdout]     src/canvas/pad.rs - canvas::pad::Pad (line 10)
[INFO] [stdout]     src/canvas/padded.rs - canvas::padded::PaddingCanvas (line 21)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output (line 213)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::enter_fader_mode (line 568)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::flash (line 668)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::flash_multiple (line 742)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light (line 654)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_all (line 462)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_column (line 689)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_columns (line 425)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_multiple (line 725)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_multiple_rgb (line 391)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_rgb (line 714)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_row (line 702)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::light_rows (line 442)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::pulse (line 679)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::pulse_multiple (line 759)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::scroll_text (line 534)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::send_clock_tick (line 480)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::set_button (line 326)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::Output::set_buttons (line 356)
[INFO] [stdout]     src/launchpad_mk2/output.rs - launchpad_mk2::output::PaletteColor (line 11)
[INFO] [stdout]     src/lib.rs - (line 16)
[INFO] [stdout]     src/lib.rs - (line 30)
[INFO] [stdout]     src/lib.rs - (line 49)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 41 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.45s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "89c55a3e8b3baa2e208a5cad0e8bcfb1be7de23755b8caac7abf2b3fe4fbbc96", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "89c55a3e8b3baa2e208a5cad0e8bcfb1be7de23755b8caac7abf2b3fe4fbbc96", kill_on_drop: false }`
[INFO] [stdout] 89c55a3e8b3baa2e208a5cad0e8bcfb1be7de23755b8caac7abf2b3fe4fbbc96
