[INFO] fetching crate nextlaunch 0.2.33...
[INFO] testing nextlaunch-0.2.33 against 1.54.0 for beta-1.55-1
[INFO] extracting crate nextlaunch 0.2.33 into /workspace/builds/worker-4/source
[INFO] validating manifest of crates.io crate nextlaunch 0.2.33 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 nextlaunch 0.2.33
[INFO] finished tweaking crates.io crate nextlaunch 0.2.33
[INFO] tweaked toml for crates.io crate nextlaunch 0.2.33 written to /workspace/builds/worker-4/source/Cargo.toml
[INFO] crate crates.io crate nextlaunch 0.2.33 already has a lockfile, it will not be regenerated
[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-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/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] 241da95833b1a478ccd6df2d6e6ba2a75729b1eb0d8f696fb1d00aab5f096b62
[INFO] running `Command { std: "docker" "start" "-a" "241da95833b1a478ccd6df2d6e6ba2a75729b1eb0d8f696fb1d00aab5f096b62", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "241da95833b1a478ccd6df2d6e6ba2a75729b1eb0d8f696fb1d00aab5f096b62", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "241da95833b1a478ccd6df2d6e6ba2a75729b1eb0d8f696fb1d00aab5f096b62", kill_on_drop: false }`
[INFO] [stdout] 241da95833b1a478ccd6df2d6e6ba2a75729b1eb0d8f696fb1d00aab5f096b62
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/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] 578e493d67b8ade6c3a8d7fda548693bdc84ceb0baa7c583329d649a6d48c0e0
[INFO] running `Command { std: "docker" "start" "-a" "578e493d67b8ade6c3a8d7fda548693bdc84ceb0baa7c583329d649a6d48c0e0", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.86
[INFO] [stderr]    Compiling syn v1.0.60
[INFO] [stderr]    Compiling pin-project-lite v0.2.4
[INFO] [stderr]    Compiling memchr v2.3.4
[INFO] [stderr]    Compiling cc v1.0.66
[INFO] [stderr]    Compiling const_fn v0.4.5
[INFO] [stderr]    Compiling bytes v1.0.1
[INFO] [stderr]    Compiling pin-project-internal v0.4.27
[INFO] [stderr]    Compiling serde_derive v1.0.123
[INFO] [stderr]    Compiling futures-core v0.3.12
[INFO] [stderr]    Compiling hashbrown v0.9.1
[INFO] [stderr]    Compiling serde v1.0.123
[INFO] [stderr]    Compiling once_cell v1.5.2
[INFO] [stderr]    Compiling openssl v0.10.32
[INFO] [stderr]    Compiling httparse v1.3.5
[INFO] [stderr]    Compiling futures-sink v0.3.12
[INFO] [stderr]    Compiling futures-io v0.3.12
[INFO] [stderr]    Compiling openssl-probe v0.1.2
[INFO] [stderr]    Compiling byteorder v1.4.2
[INFO] [stderr]    Compiling weezl v0.1.4
[INFO] [stderr]    Compiling httpdate v0.3.2
[INFO] [stderr]    Compiling unicode-segmentation v1.7.1
[INFO] [stderr]    Compiling adler v0.2.3
[INFO] [stderr]    Compiling serde_json v1.0.62
[INFO] [stderr]    Compiling tower-service v0.3.1
[INFO] [stderr]    Compiling ipnet v2.3.0
[INFO] [stderr]    Compiling base64 v0.13.0
[INFO] [stderr]    Compiling bytemuck v1.5.0
[INFO] [stderr]    Compiling os_str_bytes v2.4.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.1
[INFO] [stderr]    Compiling memoffset v0.6.1
[INFO] [stderr]    Compiling tokio v1.2.0
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling indexmap v1.6.1
[INFO] [stderr]    Compiling miniz_oxide v0.4.3
[INFO] [stderr]    Compiling tracing-core v0.1.17
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling tinyvec v1.1.1
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling crc32fast v1.2.1
[INFO] [stderr]    Compiling form_urlencoded v1.0.0
[INFO] [stderr]    Compiling miniz_oxide v0.3.7
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling textwrap v0.12.1
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling want v0.3.0
[INFO] [stderr]    Compiling encoding_rs v0.8.28
[INFO] [stderr]    Compiling futures-channel v0.3.12
[INFO] [stderr]    Compiling deflate v0.8.6
[INFO] [stderr]    Compiling futures-task v0.3.12
[INFO] [stderr]    Compiling gif v0.11.1
[INFO] [stderr]    Compiling http v0.2.3
[INFO] [stderr]    Compiling heck v0.3.2
[INFO] [stderr]    Compiling futures-util v0.3.12
[INFO] [stderr]    Compiling tracing v0.1.23
[INFO] [stderr]    Compiling png v0.16.8
[INFO] [stderr]    Compiling unicode-normalization v0.1.17
[INFO] [stderr]    Compiling openssl-sys v0.9.60
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.1
[INFO] [stderr]    Compiling crossbeam-channel v0.5.0
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling mio v0.7.7
[INFO] [stderr]    Compiling socket2 v0.3.19
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling time v0.1.44
[INFO] [stderr]    Compiling crossbeam-deque v0.8.0
[INFO] [stderr]    Compiling rayon-core v1.9.0
[INFO] [stderr]    Compiling idna v0.2.1
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling chrono v0.4.19
[INFO] [stderr]    Compiling http-body v0.4.0
[INFO] [stderr]    Compiling native-tls v0.2.7
[INFO] [stderr]    Compiling rayon v1.5.0
[INFO] [stderr]    Compiling url v2.2.0
[INFO] [stderr]    Compiling jpeg-decoder v0.1.22
[INFO] [stderr]    Compiling tokio-util v0.6.3
[INFO] [stderr]    Compiling tiff v0.6.1
[INFO] [stderr]    Compiling tokio-native-tls v0.3.0
[INFO] [stderr]    Compiling pin-project-internal v1.0.5
[INFO] [stderr]    Compiling clap_derive v3.0.0-beta.2
[INFO] [stderr]    Compiling image v0.23.13
[INFO] [stderr]    Compiling clap v3.0.0-beta.2
[INFO] [stderr]    Compiling pin-project v1.0.5
[INFO] [stderr]    Compiling pin-project v0.4.27
[INFO] [stderr]    Compiling tracing-futures v0.2.4
[INFO] [stderr]    Compiling h2 v0.3.0
[INFO] [stderr]    Compiling hyper v0.14.4
[INFO] [stderr]    Compiling serde_urlencoded v0.7.0
[INFO] [stderr]    Compiling bincode v1.3.1
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling reqwest v0.11.0
[INFO] [stderr]    Compiling nextlaunch v0.2.33 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::process::exit`
[INFO] [stdout]  --> src/minimal.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `image::DynamicImage::to_luma`: replaced by `to_luma8`
[INFO] [stdout]    --> src/main.rs:574:28
[INFO] [stdout]     |
[INFO] [stdout] 574 |         Ok(image) => image.to_luma(),
[INFO] [stdout]     |                            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     for x in 0..50 {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/main.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         for y in 0..80 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `image_path` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:113:18
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let (mut image_path, prv) = parse_path(previous_launch.clone());
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_image_path` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `image_path` is never read
[INFO] [stdout]    --> src/main.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |             image_path = path;
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `previous` is never read
[INFO] [stdout]    --> src/main.rs:378:33
[INFO] [stdout]     |
[INFO] [stdout] 378 |                         let mut previous = "";
[INFO] [stdout]     |                                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `seconds` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:466:56
[INFO] [stdout]     |
[INFO] [stdout] 466 |             let (mut days, mut hours, mut minutes, mut seconds) = countdown(next.net.clone().unwrap().as_str(), false);
[INFO] [stdout]     |                                                        ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_seconds` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `seconds` is never read
[INFO] [stdout]    --> src/main.rs:471:17
[INFO] [stdout]     |
[INFO] [stdout] 471 |                 seconds = secs;
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `seconds` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:518:41
[INFO] [stdout]     |
[INFO] [stdout] 518 |             let (_, _, mut minutes, mut seconds) = countdown(next.net.clone().unwrap().as_str(), false);
[INFO] [stdout]     |                                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_seconds` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `seconds` is never read
[INFO] [stdout]    --> src/main.rs:522:17
[INFO] [stdout]     |
[INFO] [stdout] 522 |                 seconds = secs;
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `meta` is never read
[INFO] [stdout]    --> src/main.rs:529:13
[INFO] [stdout]     |
[INFO] [stdout] 529 |             meta = mta;
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `articles` is never read
[INFO] [stdout]    --> src/main.rs:543:13
[INFO] [stdout]     |
[INFO] [stdout] 543 |     let mut articles: Vec<Article> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `launch`
[INFO] [stdout]    --> src/main.rs:572:30
[INFO] [stdout]     |
[INFO] [stdout] 572 | fn process_image(path: &str, launch: structure::Launch) -> Vec<String> {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_launch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_t_plus` is never read
[INFO] [stdout]    --> src/minimal.rs:448:17
[INFO] [stdout]     |
[INFO] [stdout] 448 |                 is_t_plus = true;
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_t_plus` is never read
[INFO] [stdout]    --> src/minimal.rs:473:17
[INFO] [stdout]     |
[INFO] [stdout] 473 |                 is_t_plus = true;
[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:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |     let mut url: &str = "https://ll.thespacedevs.com/2.1.0/launch/upcoming/?format=json&mode=detailed&limit=5";
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let mut lines: Vec<String> = process_image(img.as_str(), previous_launch.clone().unwrap());
[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:462:17
[INFO] [stdout]     |
[INFO] [stdout] 462 |             let mut results = json.results.clone().unwrap();
[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:513:17
[INFO] [stdout]     |
[INFO] [stdout] 513 |             let mut file = std::fs::File::open(launch_path.clone()).unwrap();
[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:515:17
[INFO] [stdout]     |
[INFO] [stdout] 515 |             let mut results = json.results.unwrap();
[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:541:9
[INFO] [stdout]     |
[INFO] [stdout] 541 |     let mut news_request = client.get("https://spaceflightnewsapi.net/api/v2/articles").send();
[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:560:17
[INFO] [stdout]     |
[INFO] [stdout] 560 |             let mut file = std::fs::File::open(article_path.clone()).unwrap();
[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:616:9
[INFO] [stdout]     |
[INFO] [stdout] 616 |     let mut components: Vec<&str> = source.split(".").collect();
[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:617:9
[INFO] [stdout]     |
[INFO] [stdout] 617 |     let mut extension: String = components.last().unwrap().clone().to_string();
[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:635:13
[INFO] [stdout]     |
[INFO] [stdout] 635 | fn get_time(mut seconds: i64) -> (i32, i32, i32, i64) {
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:488:17
[INFO] [stdout]     |
[INFO] [stdout] 488 |                 std::fs::remove_file(image_path.as_str());
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:501:17
[INFO] [stdout]     |
[INFO] [stdout] 501 |                 std::fs::remove_file(launch_path.clone());
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:554:13
[INFO] [stdout]     |
[INFO] [stdout] 554 |             std::fs::remove_file(article_path.as_str());
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `imageUrl` should have a snake case name
[INFO] [stdout]    --> src/structure.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |     pub imageUrl: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `image_url`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `newsSite` should have a snake case name
[INFO] [stdout]    --> src/structure.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub newsSite: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `news_site`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 39.40s
[INFO] running `Command { std: "docker" "inspect" "578e493d67b8ade6c3a8d7fda548693bdc84ceb0baa7c583329d649a6d48c0e0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "578e493d67b8ade6c3a8d7fda548693bdc84ceb0baa7c583329d649a6d48c0e0", kill_on_drop: false }`
[INFO] [stdout] 578e493d67b8ade6c3a8d7fda548693bdc84ceb0baa7c583329d649a6d48c0e0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/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] cb901cfc0b6193e324ebae56a3e5f6cba40acdcca9fe4f9e192cceb3d9f599d5
[INFO] running `Command { std: "docker" "start" "-a" "cb901cfc0b6193e324ebae56a3e5f6cba40acdcca9fe4f9e192cceb3d9f599d5", kill_on_drop: false }`
[INFO] [stderr]    Compiling nextlaunch v0.2.33 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::process::exit`
[INFO] [stdout]  --> src/minimal.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::process::exit;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `image::DynamicImage::to_luma`: replaced by `to_luma8`
[INFO] [stdout]    --> src/main.rs:574:28
[INFO] [stdout]     |
[INFO] [stdout] 574 |         Ok(image) => image.to_luma(),
[INFO] [stdout]     |                            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     for x in 0..50 {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/main.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         for y in 0..80 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `image_path` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:113:18
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let (mut image_path, prv) = parse_path(previous_launch.clone());
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_image_path` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `image_path` is never read
[INFO] [stdout]    --> src/main.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 119 |             image_path = path;
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `previous` is never read
[INFO] [stdout]    --> src/main.rs:378:33
[INFO] [stdout]     |
[INFO] [stdout] 378 |                         let mut previous = "";
[INFO] [stdout]     |                                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `seconds` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:466:56
[INFO] [stdout]     |
[INFO] [stdout] 466 |             let (mut days, mut hours, mut minutes, mut seconds) = countdown(next.net.clone().unwrap().as_str(), false);
[INFO] [stdout]     |                                                        ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_seconds` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `seconds` is never read
[INFO] [stdout]    --> src/main.rs:471:17
[INFO] [stdout]     |
[INFO] [stdout] 471 |                 seconds = secs;
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `seconds` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:518:41
[INFO] [stdout]     |
[INFO] [stdout] 518 |             let (_, _, mut minutes, mut seconds) = countdown(next.net.clone().unwrap().as_str(), false);
[INFO] [stdout]     |                                         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_seconds` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `seconds` is never read
[INFO] [stdout]    --> src/main.rs:522:17
[INFO] [stdout]     |
[INFO] [stdout] 522 |                 seconds = secs;
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `meta` is never read
[INFO] [stdout]    --> src/main.rs:529:13
[INFO] [stdout]     |
[INFO] [stdout] 529 |             meta = mta;
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `articles` is never read
[INFO] [stdout]    --> src/main.rs:543:13
[INFO] [stdout]     |
[INFO] [stdout] 543 |     let mut articles: Vec<Article> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `launch`
[INFO] [stdout]    --> src/main.rs:572:30
[INFO] [stdout]     |
[INFO] [stdout] 572 | fn process_image(path: &str, launch: structure::Launch) -> Vec<String> {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_launch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_t_plus` is never read
[INFO] [stdout]    --> src/minimal.rs:448:17
[INFO] [stdout]     |
[INFO] [stdout] 448 |                 is_t_plus = true;
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_t_plus` is never read
[INFO] [stdout]    --> src/minimal.rs:473:17
[INFO] [stdout]     |
[INFO] [stdout] 473 |                 is_t_plus = true;
[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:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |     let mut url: &str = "https://ll.thespacedevs.com/2.1.0/launch/upcoming/?format=json&mode=detailed&limit=5";
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let mut lines: Vec<String> = process_image(img.as_str(), previous_launch.clone().unwrap());
[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:462:17
[INFO] [stdout]     |
[INFO] [stdout] 462 |             let mut results = json.results.clone().unwrap();
[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:513:17
[INFO] [stdout]     |
[INFO] [stdout] 513 |             let mut file = std::fs::File::open(launch_path.clone()).unwrap();
[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:515:17
[INFO] [stdout]     |
[INFO] [stdout] 515 |             let mut results = json.results.unwrap();
[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:541:9
[INFO] [stdout]     |
[INFO] [stdout] 541 |     let mut news_request = client.get("https://spaceflightnewsapi.net/api/v2/articles").send();
[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:560:17
[INFO] [stdout]     |
[INFO] [stdout] 560 |             let mut file = std::fs::File::open(article_path.clone()).unwrap();
[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:616:9
[INFO] [stdout]     |
[INFO] [stdout] 616 |     let mut components: Vec<&str> = source.split(".").collect();
[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:617:9
[INFO] [stdout]     |
[INFO] [stdout] 617 |     let mut extension: String = components.last().unwrap().clone().to_string();
[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:635:13
[INFO] [stdout]     |
[INFO] [stdout] 635 | fn get_time(mut seconds: i64) -> (i32, i32, i32, i64) {
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:488:17
[INFO] [stdout]     |
[INFO] [stdout] 488 |                 std::fs::remove_file(image_path.as_str());
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:501:17
[INFO] [stdout]     |
[INFO] [stdout] 501 |                 std::fs::remove_file(launch_path.clone());
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:554:13
[INFO] [stdout]     |
[INFO] [stdout] 554 |             std::fs::remove_file(article_path.as_str());
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `imageUrl` should have a snake case name
[INFO] [stdout]    --> src/structure.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |     pub imageUrl: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `image_url`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `newsSite` should have a snake case name
[INFO] [stdout]    --> src/structure.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub newsSite: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `news_site`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 5.39s
[INFO] running `Command { std: "docker" "inspect" "cb901cfc0b6193e324ebae56a3e5f6cba40acdcca9fe4f9e192cceb3d9f599d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cb901cfc0b6193e324ebae56a3e5f6cba40acdcca9fe4f9e192cceb3d9f599d5", kill_on_drop: false }`
[INFO] [stdout] cb901cfc0b6193e324ebae56a3e5f6cba40acdcca9fe4f9e192cceb3d9f599d5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/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] a9d0d1a148a4e115dbec55b1d72ef4ea0b13e656e6525a6c547e33b4c7c4c532
[INFO] running `Command { std: "docker" "start" "-a" "a9d0d1a148a4e115dbec55b1d72ef4ea0b13e656e6525a6c547e33b4c7c4c532", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::process::exit`
[INFO] [stderr]  --> src/minimal.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::process::exit;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `image::DynamicImage::to_luma`: replaced by `to_luma8`
[INFO] [stderr]    --> src/main.rs:574:28
[INFO] [stderr]     |
[INFO] [stderr] 574 |         Ok(image) => image.to_luma(),
[INFO] [stderr]     |                            ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]   --> src/main.rs:82:9
[INFO] [stderr]    |
[INFO] [stderr] 82 |     for x in 0..50 {
[INFO] [stderr]    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `y`
[INFO] [stderr]   --> src/main.rs:83:13
[INFO] [stderr]    |
[INFO] [stderr] 83 |         for y in 0..80 {
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `image_path` is assigned to, but never used
[INFO] [stderr]    --> src/main.rs:113:18
[INFO] [stderr]     |
[INFO] [stderr] 113 |         let (mut image_path, prv) = parse_path(previous_launch.clone());
[INFO] [stderr]     |                  ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_image_path` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `image_path` is never read
[INFO] [stderr]    --> src/main.rs:119:13
[INFO] [stderr]     |
[INFO] [stderr] 119 |             image_path = path;
[INFO] [stderr]     |             ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `previous` is never read
[INFO] [stderr]    --> src/main.rs:378:33
[INFO] [stderr]     |
[INFO] [stderr] 378 |                         let mut previous = "";
[INFO] [stderr]     |                                 ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable `seconds` is assigned to, but never used
[INFO] [stderr]    --> src/main.rs:466:56
[INFO] [stderr]     |
[INFO] [stderr] 466 |             let (mut days, mut hours, mut minutes, mut seconds) = countdown(next.net.clone().unwrap().as_str(), false);
[INFO] [stderr]     |                                                        ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_seconds` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `seconds` is never read
[INFO] [stderr]    --> src/main.rs:471:17
[INFO] [stderr]     |
[INFO] [stderr] 471 |                 seconds = secs;
[INFO] [stderr]     |                 ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable `seconds` is assigned to, but never used
[INFO] [stderr]    --> src/main.rs:518:41
[INFO] [stderr]     |
[INFO] [stderr] 518 |             let (_, _, mut minutes, mut seconds) = countdown(next.net.clone().unwrap().as_str(), false);
[INFO] [stderr]     |                                         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_seconds` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `seconds` is never read
[INFO] [stderr]    --> src/main.rs:522:17
[INFO] [stderr]     |
[INFO] [stderr] 522 |                 seconds = secs;
[INFO] [stderr]     |                 ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `meta` is never read
[INFO] [stderr]    --> src/main.rs:529:13
[INFO] [stderr]     |
[INFO] [stderr] 529 |             meta = mta;
[INFO] [stderr]     |             ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `articles` is never read
[INFO] [stderr]    --> src/main.rs:543:13
[INFO] [stderr]     |
[INFO] [stderr] 543 |     let mut articles: Vec<Article> = Vec::new();
[INFO] [stderr]     |             ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `launch`
[INFO] [stderr]    --> src/main.rs:572:30
[INFO] [stderr]     |
[INFO] [stderr] 572 | fn process_image(path: &str, launch: structure::Launch) -> Vec<String> {
[INFO] [stderr]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_launch`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `is_t_plus` is never read
[INFO] [stderr]    --> src/minimal.rs:448:17
[INFO] [stderr]     |
[INFO] [stderr] 448 |                 is_t_plus = true;
[INFO] [stderr]     |                 ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `is_t_plus` is never read
[INFO] [stderr]    --> src/minimal.rs:473:17
[INFO] [stderr]     |
[INFO] [stderr] 473 |                 is_t_plus = true;
[INFO] [stderr]     |                 ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:106:9
[INFO] [stderr]     |
[INFO] [stderr] 106 |     let mut url: &str = "https://ll.thespacedevs.com/2.1.0/launch/upcoming/?format=json&mode=detailed&limit=5";
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:110:9
[INFO] [stderr]     |
[INFO] [stderr] 110 |     let mut lines: Vec<String> = process_image(img.as_str(), previous_launch.clone().unwrap());
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:462:17
[INFO] [stderr]     |
[INFO] [stderr] 462 |             let mut results = json.results.clone().unwrap();
[INFO] [stderr]     |                 ----^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:513:17
[INFO] [stderr]     |
[INFO] [stderr] 513 |             let mut file = std::fs::File::open(launch_path.clone()).unwrap();
[INFO] [stderr]     |                 ----^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:515:17
[INFO] [stderr]     |
[INFO] [stderr] 515 |             let mut results = json.results.unwrap();
[INFO] [stderr]     |                 ----^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:541:9
[INFO] [stderr]     |
[INFO] [stderr] 541 |     let mut news_request = client.get("https://spaceflightnewsapi.net/api/v2/articles").send();
[INFO] [stderr]     |         ----^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:560:17
[INFO] [stderr]     |
[INFO] [stderr] 560 |             let mut file = std::fs::File::open(article_path.clone()).unwrap();
[INFO] [stderr]     |                 ----^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:616:9
[INFO] [stderr]     |
[INFO] [stderr] 616 |     let mut components: Vec<&str> = source.split(".").collect();
[INFO] [stderr]     |         ----^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:617:9
[INFO] [stderr]     |
[INFO] [stderr] 617 |     let mut extension: String = components.last().unwrap().clone().to_string();
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:635:13
[INFO] [stderr]     |
[INFO] [stderr] 635 | fn get_time(mut seconds: i64) -> (i32, i32, i32, i64) {
[INFO] [stderr]     |             ----^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main.rs:488:17
[INFO] [stderr]     |
[INFO] [stderr] 488 |                 std::fs::remove_file(image_path.as_str());
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main.rs:501:17
[INFO] [stderr]     |
[INFO] [stderr] 501 |                 std::fs::remove_file(launch_path.clone());
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main.rs:554:13
[INFO] [stderr]     |
[INFO] [stderr] 554 |             std::fs::remove_file(article_path.as_str());
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `imageUrl` should have a snake case name
[INFO] [stderr]    --> src/structure.rs:193:9
[INFO] [stderr]     |
[INFO] [stderr] 193 |     pub imageUrl: Option<String>,
[INFO] [stderr]     |         ^^^^^^^^ help: convert the identifier to snake case: `image_url`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `newsSite` should have a snake case name
[INFO] [stderr]    --> src/structure.rs:195:9
[INFO] [stderr]     |
[INFO] [stderr] 195 |     pub newsSite: Option<String>,
[INFO] [stderr]     |         ^^^^^^^^ help: convert the identifier to snake case: `news_site`
[INFO] [stderr] 
[INFO] [stderr] warning: 31 warnings emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.13s
[INFO] [stderr]      Running unittests (/opt/rustwide/target/debug/deps/nextlaunch-d333f5580b221c6b)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[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] running `Command { std: "docker" "inspect" "a9d0d1a148a4e115dbec55b1d72ef4ea0b13e656e6525a6c547e33b4c7c4c532", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a9d0d1a148a4e115dbec55b1d72ef4ea0b13e656e6525a6c547e33b4c7c4c532", kill_on_drop: false }`
[INFO] [stdout] a9d0d1a148a4e115dbec55b1d72ef4ea0b13e656e6525a6c547e33b4c7c4c532
