[INFO] cloning repository https://github.com/MacTuitui/toio-nannou
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/MacTuitui/toio-nannou" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMacTuitui%2Ftoio-nannou", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMacTuitui%2Ftoio-nannou'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 08d889ad517e1b3111eec2fff65cac356f83bb21
[INFO] checking MacTuitui/toio-nannou against try#163937523761cc0def32f1ba9ed63fdf65ad3478 for pr-156749
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMacTuitui%2Ftoio-nannou" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/MacTuitui/toio-nannou
[INFO] finished tweaking git repo https://github.com/MacTuitui/toio-nannou
[INFO] tweaked toml for git repo https://github.com/MacTuitui/toio-nannou written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/MacTuitui/toio-nannou on toolchain 163937523761cc0def32f1ba9ed63fdf65ad3478
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+163937523761cc0def32f1ba9ed63fdf65ad3478" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/MacTuitui/toio-nannou already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+163937523761cc0def32f1ba9ed63fdf65ad3478" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 412dc1d670b7f4602aaa529f104993d377bfbddea6e97b0ff356c44fede3dd7f
[INFO] running `Command { std: "docker" "start" "412dc1d670b7f4602aaa529f104993d377bfbddea6e97b0ff356c44fede3dd7f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "412dc1d670b7f4602aaa529f104993d377bfbddea6e97b0ff356c44fede3dd7f" "/opt/rustwide/cargo-home/bin/cargo" "+163937523761cc0def32f1ba9ed63fdf65ad3478" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "412dc1d670b7f4602aaa529f104993d377bfbddea6e97b0ff356c44fede3dd7f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "412dc1d670b7f4602aaa529f104993d377bfbddea6e97b0ff356c44fede3dd7f" "/opt/rustwide/cargo-home/bin/cargo" "+163937523761cc0def32f1ba9ed63fdf65ad3478" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.0.1
[INFO] [stderr]    Compiling libc v0.2.82
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]     Checking byteorder v1.4.2
[INFO] [stderr]    Compiling proc-macro2 v1.0.24
[INFO] [stderr]    Compiling unicode-xid v0.2.1
[INFO] [stderr]     Checking scopeguard v1.1.0
[INFO] [stderr]    Compiling syn v1.0.58
[INFO] [stderr]    Compiling log v0.4.13
[INFO] [stderr]     Checking libloading v0.6.7
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]    Compiling xml-rs v0.8.3
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]    Compiling crossbeam-utils v0.8.1
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]    Compiling pkg-config v0.3.19
[INFO] [stderr]     Checking rand_core v0.4.2
[INFO] [stderr]    Compiling nix v0.14.1
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking net2 v0.2.37
[INFO] [stderr]    Compiling quote v1.0.8
[INFO] [stderr]    Compiling memoffset v0.6.1
[INFO] [stderr]    Compiling const_fn v0.4.5
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking raw-window-handle v0.3.3
[INFO] [stderr]    Compiling wayland-scanner v0.23.6
[INFO] [stderr]     Checking dlib v0.4.2
[INFO] [stderr]     Checking lazycell v1.3.0
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]    Compiling autocfg v0.1.7
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]     Checking ordered-float v1.1.1
[INFO] [stderr]     Checking wayland-sys v0.23.6
[INFO] [stderr]     Checking crossbeam-deque v0.7.3
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]     Checking stb_truetype v0.3.1
[INFO] [stderr]    Compiling rayon-core v1.9.0
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]    Compiling serde_derive v1.0.120
[INFO] [stderr]     Checking linked-hash-map v0.5.4
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]     Checking rusttype v0.8.3
[INFO] [stderr]     Checking gfx-hal v0.5.3
[INFO] [stderr]     Checking crossbeam-epoch v0.9.1
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]     Checking downcast-rs v1.2.0
[INFO] [stderr]     Checking smallvec v1.6.1
[INFO] [stderr]    Compiling serde v1.0.120
[INFO] [stderr]     Checking walkdir v2.3.1
[INFO] [stderr]     Checking crossbeam-deque v0.8.0
[INFO] [stderr]     Checking line_drawing v0.7.0
[INFO] [stderr]     Checking rusttype v0.7.9
[INFO] [stderr]     Checking crossbeam-channel v0.5.0
[INFO] [stderr]    Compiling x11 v2.18.2
[INFO] [stderr]    Compiling rayon v1.5.0
[INFO] [stderr]     Checking xdg v2.2.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.10
[INFO] [stderr]    Compiling wayland-client v0.23.6
[INFO] [stderr]    Compiling wayland-protocols v0.23.6
[INFO] [stderr]     Checking andrew v0.2.1
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]     Checking parking_lot_core v0.7.2
[INFO] [stderr]    Compiling rand_pcg v0.2.1
[INFO] [stderr]    Compiling xcb v0.9.0
[INFO] [stderr]     Checking memmap v0.7.0
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]     Checking calloop v0.4.4
[INFO] [stderr]     Checking wayland-commons v0.23.6
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]     Checking lock_api v0.3.4
[INFO] [stderr]    Compiling proc-macro-hack v0.5.19
[INFO] [stderr]    Compiling siphasher v0.3.3
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]     Checking atom v0.3.6
[INFO] [stderr]     Checking hibitset v0.6.3
[INFO] [stderr]    Compiling phf_shared v0.8.0
[INFO] [stderr]     Checking parking_lot v0.10.2
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]     Checking euclid v0.20.14
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]     Checking ash v0.31.0
[INFO] [stderr]     Checking fixedbitset v0.1.9
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]    Compiling memchr v2.3.4
[INFO] [stderr]    Compiling proc-macro-nested v0.1.7
[INFO] [stderr]     Checking petgraph v0.4.13
[INFO] [stderr]     Checking lyon_geom v0.15.3
[INFO] [stderr]    Compiling phf_generator v0.8.0
[INFO] [stderr]    Compiling synstructure v0.12.4
[INFO] [stderr]     Checking jpeg-decoder v0.1.20
[INFO] [stderr]     Checking gfx-memory v0.1.3
[INFO] [stderr]     Checking gfx-backend-empty v0.5.2
[INFO] [stderr]     Checking gfx-descriptor v0.1.0
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling miniz_oxide v0.4.3
[INFO] [stderr]     Checking copyless v0.1.5
[INFO] [stderr]    Compiling crc32fast v1.2.1
[INFO] [stderr]     Checking once_cell v1.5.2
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking futures-core v0.3.12
[INFO] [stderr]     Checking futures-sink v0.3.12
[INFO] [stderr]     Checking piston-float v0.3.0
[INFO] [stderr]     Checking futures-channel v0.3.12
[INFO] [stderr]     Checking piston-viewport v0.5.0
[INFO] [stderr]     Checking futures-task v0.3.12
[INFO] [stderr]     Checking lyon_path v0.15.2
[INFO] [stderr]    Compiling phf_codegen v0.8.0
[INFO] [stderr]     Checking inflate v0.3.4
[INFO] [stderr]     Checking deflate v0.7.20
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]     Checking sid v0.6.1
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]    Compiling x11-dl v2.18.5
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]     Checking instant v0.1.9
[INFO] [stderr]    Compiling ryu v1.0.5
[INFO] [stderr]     Checking weezl v0.1.3
[INFO] [stderr]     Checking lzw v0.10.0
[INFO] [stderr]    Compiling peek-poke-derive v0.2.1
[INFO] [stderr]    Compiling futures-macro v0.3.12
[INFO] [stderr]     Checking adler v0.2.3
[INFO] [stderr]     Checking futures-io v0.3.12
[INFO] [stderr]     Checking pin-project-lite v0.2.4
[INFO] [stderr]     Checking scoped_threadpool v0.1.9
[INFO] [stderr]     Checking gif v0.9.2
[INFO] [stderr]     Checking peek-poke v0.2.0
[INFO] [stderr]     Checking wgpu-types v0.5.1
[INFO] [stderr]    Compiling conrod_derive v0.70.0
[INFO] [stderr]     Checking futures-util v0.3.12
[INFO] [stderr]     Checking png v0.11.0
[INFO] [stderr]     Checking enum_primitive v0.1.1
[INFO] [stderr]     Checking num v0.2.1
[INFO] [stderr]    Compiling palette v0.5.0
[INFO] [stderr]     Checking daggy v0.5.0
[INFO] [stderr]     Checking rand_xorshift v0.1.1
[INFO] [stderr]     Checking rand_isaac v0.1.1
[INFO] [stderr]     Checking rand_hc v0.1.0
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]     Checking num-rational v0.1.42
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]     Checking rand_jitter v0.1.4
[INFO] [stderr]    Compiling serde_json v1.0.61
[INFO] [stderr]    Compiling cgmath v0.17.0
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]     Checking image v0.18.0
[INFO] [stderr]     Checking gfx-backend-vulkan v0.5.11
[INFO] [stderr]     Checking phf v0.8.0
[INFO] [stderr]     Checking futures-executor v0.3.12
[INFO] [stderr]     Checking tiff v0.6.1
[INFO] [stderr]     Checking gif v0.11.1
[INFO] [stderr]     Checking wgpu-core v0.5.6
[INFO] [stderr]    Compiling palette_derive v0.5.0
[INFO] [stderr]     Checking lyon_algorithms v0.15.1
[INFO] [stderr]     Checking lyon_tessellation v0.15.9
[INFO] [stderr]     Checking rand v0.5.6
[INFO] [stderr]     Checking bytemuck v1.5.0
[INFO] [stderr]     Checking percent-encoding v2.1.0
[INFO] [stderr]     Checking itoa v0.4.7
[INFO] [stderr]     Checking lyon v0.15.9
[INFO] [stderr]     Checking image v0.23.12
[INFO] [stderr]     Checking noise v0.6.0
[INFO] [stderr]     Checking futures v0.3.12
[INFO] [stderr]     Checking daggy v0.6.0
[INFO] [stderr]     Checking wgpu-native v0.5.1
[INFO] [stderr]     Checking wgpu v0.5.2
[INFO] [stderr]     Checking pennereq v0.3.1
[INFO] [stderr]     Checking rosc v0.1.6
[INFO] [stderr]     Checking conrod_winit v0.70.0
[INFO] [stderr]     Checking find_folder v0.3.0
[INFO] [stderr]     Checking notosans v0.1.0
[INFO] [stderr]     Checking nannou_osc v0.15.0
[INFO] [stderr]     Checking x11-clipboard v0.5.1
[INFO] [stderr]     Checking pistoncore-input v0.24.0
[INFO] [stderr]     Checking toml v0.5.8
[INFO] [stderr]     Checking smithay-client-toolkit v0.6.6
[INFO] [stderr]     Checking smithay-clipboard v0.4.0
[INFO] [stderr]     Checking winit v0.22.2
[INFO] [stderr]     Checking copypasta v0.6.3
[INFO] [stderr]     Checking conrod_core v0.70.0
[INFO] [stderr]     Checking conrod_wgpu v0.70.0
[INFO] [stderr]     Checking nannou v0.15.0
[INFO] [stderr]     Checking toiotest v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/toiotask.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |             _ => true,
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/toiotask.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 180 |             TaskType::Wiggle | TaskType::Spin | TaskType::Wait => {
[INFO] [stdout]     |             -------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 184 |             TaskType::PairMovement => {
[INFO] [stdout]     |             ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 192 |             TaskType::PairMovementShift => {
[INFO] [stdout]     |             --------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 199 |             TaskType::SingleMovement => {
[INFO] [stdout]     |             ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 247 |             _ => true,
[INFO] [stdout]     |             ^ ...and 4 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/toiotask.rs:163:14
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let (mut x0, mut y0, mut angle0) = data[0];
[INFO] [stdout]     |              ----^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/toiotask.rs:163:22
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let (mut x0, mut y0, mut angle0) = data[0];
[INFO] [stdout]     |                      ----^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/toiotask.rs:163:30
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let (mut x0, mut y0, mut angle0) = data[0];
[INFO] [stdout]     |                              ----^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `x2` is assigned to, but never used
[INFO] [stdout]    --> src/toiotask.rs:165:14
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let (mut x2, mut y2, mut angle2) = data[0];
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_x2` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `y2` is assigned to, but never used
[INFO] [stdout]    --> src/toiotask.rs:165:22
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let (mut x2, mut y2, mut angle2) = data[0];
[INFO] [stdout]     |                      ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_y2` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `angle2` is assigned to, but never used
[INFO] [stdout]    --> src/toiotask.rs:165:30
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let (mut x2, mut y2, mut angle2) = data[0];
[INFO] [stdout]     |                              ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_angle2` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x2` is never read
[INFO] [stdout]    --> src/toiotask.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |             x2 = data[2].0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y2` is never read
[INFO] [stdout]    --> src/toiotask.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |             y2 = data[2].1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `angle2` is never read
[INFO] [stdout]    --> src/toiotask.rs:174:13
[INFO] [stdout]     |
[INFO] [stdout] 174 |             angle2 = data[2].2;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/toiotask.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |             _ => true,
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/toiotask.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 180 |             TaskType::Wiggle | TaskType::Spin | TaskType::Wait => {
[INFO] [stdout]     |             -------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 184 |             TaskType::PairMovement => {
[INFO] [stdout]     |             ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 192 |             TaskType::PairMovementShift => {
[INFO] [stdout]     |             --------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 199 |             TaskType::SingleMovement => {
[INFO] [stdout]     |             ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 247 |             _ => true,
[INFO] [stdout]     |             ^ ...and 4 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:236:41
[INFO] [stdout]     |
[INFO] [stdout] 236 | ...                   let mut new_x = marg[2] as i32 - CENTER_X;
[INFO] [stdout]     |                           ----^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:237:41
[INFO] [stdout]     |
[INFO] [stdout] 237 | ...                   let mut new_y = CENTER_Y - marg[3] as i32;
[INFO] [stdout]     |                           ----^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/main.rs:214:18
[INFO] [stdout]     |
[INFO] [stdout] 214 |     for (packet, addr) in model.receiver.try_iter() {
[INFO] [stdout]     |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/main.rs:269:33
[INFO] [stdout]     |
[INFO] [stdout] 269 | ...                   let index = marg[1] as usize;
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `button_pressed`
[INFO] [stdout]    --> src/main.rs:270:33
[INFO] [stdout]     |
[INFO] [stdout] 270 | ...                   let button_pressed = marg[2] as usize;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_button_pressed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_now`
[INFO] [stdout]    --> src/main.rs:328:21
[INFO] [stdout]     |
[INFO] [stdout] 328 |                 let type_now = &task.what;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_now`
[INFO] [stdout]    --> src/main.rs:331:52
[INFO] [stdout]     |
[INFO] [stdout] 331 |                     && matches!(TaskType::GetAway, type_now) == false
[INFO] [stdout]     |                                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `angle1_to_center`
[INFO] [stdout]    --> src/main.rs:376:37
[INFO] [stdout]     |
[INFO] [stdout] 376 | ...                   let angle1_to_center = (cy - y1).atan2(cx - x1);
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_angle1_to_center`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x2` is never read
[INFO] [stdout]    --> src/main.rs:316:30
[INFO] [stdout]     |
[INFO] [stdout] 316 |                 let mut x2 = 0.0;
[INFO] [stdout]     |                              ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 321 |                     x2 = cube2.x as f32;
[INFO] [stdout]     |                     ------------------- `x2` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y2` is never read
[INFO] [stdout]    --> src/main.rs:317:30
[INFO] [stdout]     |
[INFO] [stdout] 317 |                 let mut y2 = 0.0;
[INFO] [stdout]     |                              ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 322 |                     y2 = cube2.y as f32;
[INFO] [stdout]     |                     ------------------- `y2` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `angle2` is never read
[INFO] [stdout]    --> src/main.rs:318:34
[INFO] [stdout]     |
[INFO] [stdout] 318 |                 let mut angle2 = 0.0;
[INFO] [stdout]     |                                  ^^^ this value is reassigned later and never used
[INFO] [stdout] 319 |                 if let Some(cube2) = cube2o {
[INFO] [stdout] 320 |                     angle2 = cube2.angle as f32 / 360.0 * TAU;
[INFO] [stdout]     |                     ----------------------------------------- `angle2` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:576:14
[INFO] [stdout]     |
[INFO] [stdout] 576 | fn aim_angle(x: f32, y: f32, angle: f32, target_angle: f32) -> [i32; 2] {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main.rs:576:22
[INFO] [stdout]     |
[INFO] [stdout] 576 | fn aim_angle(x: f32, y: f32, angle: f32, target_angle: f32) -> [i32; 2] {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scale`
[INFO] [stdout]    --> src/main.rs:671:9
[INFO] [stdout]     |
[INFO] [stdout] 671 |     let scale = 20;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_scale`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/toiotask.rs:163:14
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let (mut x0, mut y0, mut angle0) = data[0];
[INFO] [stdout]     |              ----^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/toiotask.rs:163:22
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let (mut x0, mut y0, mut angle0) = data[0];
[INFO] [stdout]     |                      ----^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/toiotask.rs:163:30
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let (mut x0, mut y0, mut angle0) = data[0];
[INFO] [stdout]     |                              ----^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aim_back` is never used
[INFO] [stdout]    --> src/main.rs:594:4
[INFO] [stdout]     |
[INFO] [stdout] 594 | fn aim_back(x: f32, y: f32, angle: f32, tx: f32, ty: f32) -> [i32; 2] {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `facetarget` is never used
[INFO] [stdout]    --> src/main.rs:670:4
[INFO] [stdout]     |
[INFO] [stdout] 670 | fn facetarget(x: f32, y: f32, angle: f32, tx: f32, ty: f32) -> [i32; 2] {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aimstable` is never used
[INFO] [stdout]    --> src/main.rs:691:4
[INFO] [stdout]     |
[INFO] [stdout] 691 | fn aimstable(x: f32, y: f32, angle: f32, tx: f32, ty: f32) -> [i32; 2] {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aim` is never used
[INFO] [stdout]    --> src/main.rs:721:4
[INFO] [stdout]     |
[INFO] [stdout] 721 | fn aim(x: f32, y: f32, angle: f32, tx: f32, ty: f32) -> [i32; 2] {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/toiotask.rs:4:5
[INFO] [stdout]    |
[INFO] [stdout]  3 | pub enum TaskType {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout]  4 |     PairMovement,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]  5 |     SingleMovement,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]  6 |     PairMovementShift,
[INFO] [stdout]  7 |     Wiggle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]  8 |     Spin,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     TargetAngle,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 12 |     TargetAngles,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 13 |     Wait,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/toiotask.rs:28:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl ToioTask {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout]  28 |     pub fn new_pair_move(x0: f32, y0: f32, x1: f32, y1: f32, d: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn new_single_move(x0: f32, y0: f32, d: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn new_wait(t: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn new_wiggle(t: u64, power: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn new_spin(t: u64, power: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn new_target_angle(a0: f32, d: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn new_target_angles(a0: f32, a1: f32, d: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `x2` is assigned to, but never used
[INFO] [stdout]    --> src/toiotask.rs:165:14
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let (mut x2, mut y2, mut angle2) = data[0];
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_x2` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `y2` is assigned to, but never used
[INFO] [stdout]    --> src/toiotask.rs:165:22
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let (mut x2, mut y2, mut angle2) = data[0];
[INFO] [stdout]     |                      ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_y2` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `angle2` is assigned to, but never used
[INFO] [stdout]    --> src/toiotask.rs:165:30
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let (mut x2, mut y2, mut angle2) = data[0];
[INFO] [stdout]     |                              ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_angle2` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x2` is never read
[INFO] [stdout]    --> src/toiotask.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |             x2 = data[2].0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y2` is never read
[INFO] [stdout]    --> src/toiotask.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |             y2 = data[2].1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `angle2` is never read
[INFO] [stdout]    --> src/toiotask.rs:174:13
[INFO] [stdout]     |
[INFO] [stdout] 174 |             angle2 = data[2].2;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:236:41
[INFO] [stdout]     |
[INFO] [stdout] 236 | ...                   let mut new_x = marg[2] as i32 - CENTER_X;
[INFO] [stdout]     |                           ----^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:237:41
[INFO] [stdout]     |
[INFO] [stdout] 237 | ...                   let mut new_y = CENTER_Y - marg[3] as i32;
[INFO] [stdout]     |                           ----^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/main.rs:214:18
[INFO] [stdout]     |
[INFO] [stdout] 214 |     for (packet, addr) in model.receiver.try_iter() {
[INFO] [stdout]     |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/main.rs:269:33
[INFO] [stdout]     |
[INFO] [stdout] 269 | ...                   let index = marg[1] as usize;
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `button_pressed`
[INFO] [stdout]    --> src/main.rs:270:33
[INFO] [stdout]     |
[INFO] [stdout] 270 | ...                   let button_pressed = marg[2] as usize;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_button_pressed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_now`
[INFO] [stdout]    --> src/main.rs:328:21
[INFO] [stdout]     |
[INFO] [stdout] 328 |                 let type_now = &task.what;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_now`
[INFO] [stdout]    --> src/main.rs:331:52
[INFO] [stdout]     |
[INFO] [stdout] 331 |                     && matches!(TaskType::GetAway, type_now) == false
[INFO] [stdout]     |                                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `angle1_to_center`
[INFO] [stdout]    --> src/main.rs:376:37
[INFO] [stdout]     |
[INFO] [stdout] 376 | ...                   let angle1_to_center = (cy - y1).atan2(cx - x1);
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_angle1_to_center`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x2` is never read
[INFO] [stdout]    --> src/main.rs:316:30
[INFO] [stdout]     |
[INFO] [stdout] 316 |                 let mut x2 = 0.0;
[INFO] [stdout]     |                              ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 321 |                     x2 = cube2.x as f32;
[INFO] [stdout]     |                     ------------------- `x2` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y2` is never read
[INFO] [stdout]    --> src/main.rs:317:30
[INFO] [stdout]     |
[INFO] [stdout] 317 |                 let mut y2 = 0.0;
[INFO] [stdout]     |                              ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 322 |                     y2 = cube2.y as f32;
[INFO] [stdout]     |                     ------------------- `y2` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `angle2` is never read
[INFO] [stdout]    --> src/main.rs:318:34
[INFO] [stdout]     |
[INFO] [stdout] 318 |                 let mut angle2 = 0.0;
[INFO] [stdout]     |                                  ^^^ this value is reassigned later and never used
[INFO] [stdout] 319 |                 if let Some(cube2) = cube2o {
[INFO] [stdout] 320 |                     angle2 = cube2.angle as f32 / 360.0 * TAU;
[INFO] [stdout]     |                     ----------------------------------------- `angle2` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:576:14
[INFO] [stdout]     |
[INFO] [stdout] 576 | fn aim_angle(x: f32, y: f32, angle: f32, target_angle: f32) -> [i32; 2] {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main.rs:576:22
[INFO] [stdout]     |
[INFO] [stdout] 576 | fn aim_angle(x: f32, y: f32, angle: f32, target_angle: f32) -> [i32; 2] {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scale`
[INFO] [stdout]    --> src/main.rs:671:9
[INFO] [stdout]     |
[INFO] [stdout] 671 |     let scale = 20;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_scale`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aim_back` is never used
[INFO] [stdout]    --> src/main.rs:594:4
[INFO] [stdout]     |
[INFO] [stdout] 594 | fn aim_back(x: f32, y: f32, angle: f32, tx: f32, ty: f32) -> [i32; 2] {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `facetarget` is never used
[INFO] [stdout]    --> src/main.rs:670:4
[INFO] [stdout]     |
[INFO] [stdout] 670 | fn facetarget(x: f32, y: f32, angle: f32, tx: f32, ty: f32) -> [i32; 2] {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aimstable` is never used
[INFO] [stdout]    --> src/main.rs:691:4
[INFO] [stdout]     |
[INFO] [stdout] 691 | fn aimstable(x: f32, y: f32, angle: f32, tx: f32, ty: f32) -> [i32; 2] {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aim` is never used
[INFO] [stdout]    --> src/main.rs:721:4
[INFO] [stdout]     |
[INFO] [stdout] 721 | fn aim(x: f32, y: f32, angle: f32, tx: f32, ty: f32) -> [i32; 2] {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/toiotask.rs:4:5
[INFO] [stdout]    |
[INFO] [stdout]  3 | pub enum TaskType {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout]  4 |     PairMovement,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]  5 |     SingleMovement,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]  6 |     PairMovementShift,
[INFO] [stdout]  7 |     Wiggle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]  8 |     Spin,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     TargetAngle,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 12 |     TargetAngles,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 13 |     Wait,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/toiotask.rs:28:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl ToioTask {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout]  28 |     pub fn new_pair_move(x0: f32, y0: f32, x1: f32, y1: f32, d: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn new_single_move(x0: f32, y0: f32, d: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn new_wait(t: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn new_wiggle(t: u64, power: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn new_spin(t: u64, power: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn new_target_angle(a0: f32, d: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn new_target_angles(a0: f32, a1: f32, d: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 51s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: xcb v0.9.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "412dc1d670b7f4602aaa529f104993d377bfbddea6e97b0ff356c44fede3dd7f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "412dc1d670b7f4602aaa529f104993d377bfbddea6e97b0ff356c44fede3dd7f", kill_on_drop: false }`
[INFO] [stdout] 412dc1d670b7f4602aaa529f104993d377bfbddea6e97b0ff356c44fede3dd7f
