[INFO] cloning repository https://github.com/teddy-otieno/Download-Manager
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/teddy-otieno/Download-Manager" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fteddy-otieno%2FDownload-Manager", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fteddy-otieno%2FDownload-Manager'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fa5a2ceb35f0d6c2fef6596054f22b40ccad502a
[INFO] testing teddy-otieno/Download-Manager against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fteddy-otieno%2FDownload-Manager" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/teddy-otieno/Download-Manager
[INFO] finished tweaking git repo https://github.com/teddy-otieno/Download-Manager
[INFO] tweaked toml for git repo https://github.com/teddy-otieno/Download-Manager written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/teddy-otieno/Download-Manager on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/teddy-otieno/Download-Manager 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" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded num_cpus v1.10.1
[INFO] [stderr]   Downloaded num-traits v0.2.8
[INFO] [stderr]   Downloaded num-integer v0.1.41
[INFO] [stderr]   Downloaded chrono v0.4.9
[INFO] [stderr]   Downloaded libc v0.2.65
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 83000bc678ffad09115f5d6c6e2e4d4c7f3bfb270e747973447b899078817416
[INFO] running `Command { std: "docker" "start" "-a" "83000bc678ffad09115f5d6c6e2e4d4c7f3bfb270e747973447b899078817416", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "83000bc678ffad09115f5d6c6e2e4d4c7f3bfb270e747973447b899078817416", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "83000bc678ffad09115f5d6c6e2e4d4c7f3bfb270e747973447b899078817416", kill_on_drop: false }`
[INFO] [stdout] 83000bc678ffad09115f5d6c6e2e4d4c7f3bfb270e747973447b899078817416
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bf1f52587ede150d9f85bcc5c7b0242dad172dd0ce41e2fdde373d1110fd1092
[INFO] running `Command { std: "docker" "start" "-a" "bf1f52587ede150d9f85bcc5c7b0242dad172dd0ce41e2fdde373d1110fd1092", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v0.1.7
[INFO] [stderr]    Compiling libc v0.2.65
[INFO] [stderr]    Compiling num-traits v0.2.8
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling num_cpus v1.10.1
[INFO] [stderr]    Compiling time v0.1.42
[INFO] [stderr]    Compiling threadpool v1.7.1
[INFO] [stderr]    Compiling chrono v0.4.9
[INFO] [stderr]    Compiling download_manager v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Rc`
[INFO] [stdout]  --> src/scheduler.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::{Rc, Weak};
[INFO] [stdout]   |               ^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::i32`
[INFO] [stdout]  --> src/scheduler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::i32;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TryFrom`
[INFO] [stdout]  --> src/scheduler.rs:4:26
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::convert::{From, TryFrom};
[INFO] [stdout]   |                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Builder`
[INFO] [stdout]  --> src/scheduler.rs:9:30
[INFO] [stdout]   |
[INFO] [stdout] 9 | use threadpool::{ThreadPool, Builder};
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::download_handler::DownloadHandle`
[INFO] [stdout]   --> src/scheduler.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::download_handler::DownloadHandle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufReader`
[INFO] [stdout]  --> src/download_handler.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{BufReader, SeekFrom};
[INFO] [stdout]   |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/download_handler.rs:143:11
[INFO] [stdout]     |
[INFO] [stdout] 143 |         if(entry_count == 0) {
[INFO] [stdout]     |           ^                ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 143 -         if(entry_count == 0) {
[INFO] [stdout] 143 +         if entry_count == 0  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/download_handler.rs:151:49
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let new_table_entries_buffer: Vec<u8> = (vec![0; entry_count as usize]);
[INFO] [stdout]     |                                                 ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 151 -         let new_table_entries_buffer: Vec<u8> = (vec![0; entry_count as usize]);
[INFO] [stdout] 151 +         let new_table_entries_buffer: Vec<u8> = vec![0; entry_count as usize] ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_entry` found for struct `DbTable<'a>` in the current scope
[INFO] [stdout]    --> src/download_handler.rs:209:32
[INFO] [stdout]     |
[INFO] [stdout]  64 | struct DbTable<'a>{
[INFO] [stdout]     | ------------------ method `add_entry` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 209 |         self.file_system_table.add_entry(&download);
[INFO] [stdout]     |                                ^^^^^^^^^ method not found in `DbTable<'a>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status_number`
[INFO] [stdout]   --> src/scheduler.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn from(status_number: u8) -> DownloadStatus {
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_status_number`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `char_bytes` as mutable, as it is not declared as mutable
[INFO] [stdout]   --> src/scheduler.rs:47:29
[INFO] [stdout]    |
[INFO] [stdout] 47 |         element.encode_utf8(&mut char_bytes);
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let mut char_bytes: [u8; 4] = [0; 4];
[INFO] [stdout]    |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `converted_bytes` as mutable, as it is not declared as mutable
[INFO] [stdout]   --> src/scheduler.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |             converted_bytes.push(*byte);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut converted_bytes : Vec<u8> = Vec::with_capacity(2048);
[INFO] [stdout]    |         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/scheduler.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 |     for (index, element) in char_slice.into_iter().enumerate() {
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/scheduler.rs:105:28
[INFO] [stdout]     |
[INFO] [stdout] 104 |           download_bytes.extend_from_slice(match download.download_size {
[INFO] [stdout]     |  __________________________________________-
[INFO] [stdout] 105 | |             Some(size) => &size.to_ne_bytes(),
[INFO] [stdout]     | |                            ^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                            |                |
[INFO] [stdout]     | |                            |                temporary value is freed at the end of this statement
[INFO] [stdout]     | |                            creates a temporary value which is freed while still in use
[INFO] [stdout] 106 | |             None => &[0u8; 8]
[INFO] [stdout] 107 | |             }
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout] help: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     |
[INFO] [stdout] 104 ~         let binding = size.to_ne_bytes();
[INFO] [stdout] 105 ~         download_bytes.extend_from_slice(match download.download_size {
[INFO] [stdout] 106 ~             Some(size) => &binding,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/scheduler.rs:112:28
[INFO] [stdout]     |
[INFO] [stdout] 111 |           download_bytes.extend_from_slice(match download.current_download_size {
[INFO] [stdout]     |  __________________________________________-
[INFO] [stdout] 112 | |             Some(size) => &size.to_ne_bytes(),
[INFO] [stdout]     | |                            ^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                            |                |
[INFO] [stdout]     | |                            |                temporary value is freed at the end of this statement
[INFO] [stdout]     | |                            creates a temporary value which is freed while still in use
[INFO] [stdout] 113 | |             None => &[0u8; 8]
[INFO] [stdout] 114 | |             }
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout] help: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     |
[INFO] [stdout] 111 ~         let binding = size.to_ne_bytes();
[INFO] [stdout] 112 ~         download_bytes.extend_from_slice(match download.current_download_size {
[INFO] [stdout] 113 ~             Some(size) => &binding,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/scheduler.rs:119:28
[INFO] [stdout]     |
[INFO] [stdout] 118 |           download_bytes.extend_from_slice( match download.time_start {
[INFO] [stdout]     |  ___________________________________________-
[INFO] [stdout] 119 | |             Some(time) => &time.timestamp().to_ne_bytes(),
[INFO] [stdout]     | |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                            |                            |
[INFO] [stdout]     | |                            |                            temporary value is freed at the end of this statement
[INFO] [stdout]     | |                            creates a temporary value which is freed while still in use
[INFO] [stdout] 120 | |             None => &[0u8; 8],
[INFO] [stdout] 121 | |             }
[INFO] [stdout]     | |_____________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout] help: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     |
[INFO] [stdout] 118 ~         let binding = time.timestamp().to_ne_bytes();
[INFO] [stdout] 119 ~         download_bytes.extend_from_slice( match download.time_start {
[INFO] [stdout] 120 ~             Some(time) => &binding,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/scheduler.rs:126:28
[INFO] [stdout]     |
[INFO] [stdout] 125 |           download_bytes.extend_from_slice( match download.time_finished {
[INFO] [stdout]     |  ___________________________________________-
[INFO] [stdout] 126 | |             Some(time) => &time.timestamp().to_ne_bytes(),
[INFO] [stdout]     | |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]     | |                            |                            |
[INFO] [stdout]     | |                            |                            temporary value is freed at the end of this statement
[INFO] [stdout]     | |                            creates a temporary value which is freed while still in use
[INFO] [stdout] 127 | |             None => &[0u8; 8]
[INFO] [stdout] 128 | |         });
[INFO] [stdout]     | |_________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout] help: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     |
[INFO] [stdout] 125 ~         let binding = time.timestamp().to_ne_bytes();
[INFO] [stdout] 126 ~         download_bytes.extend_from_slice( match download.time_finished {
[INFO] [stdout] 127 ~             Some(time) => &binding,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_threads`
[INFO] [stdout]    --> src/scheduler.rs:149:16
[INFO] [stdout]     |
[INFO] [stdout] 149 |     pub fn new(num_threads: usize) -> Self {
[INFO] [stdout]     |                ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `download`
[INFO] [stdout]    --> src/scheduler.rs:153:32
[INFO] [stdout]     |
[INFO] [stdout] 153 |     pub fn schedule(&mut self, download: Weak<Download>) -> Handle {
[INFO] [stdout]     |                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_download`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filesystem_download_path`
[INFO] [stdout]   --> src/download_handler.rs:46:34
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn new(download_url: String, filesystem_download_path: String, file_system_location: u64) -> Self {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filesystem_download_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry_bytes`
[INFO] [stdout]   --> src/download_handler.rs:53:19
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn from_bytes(entry_bytes: &[u8]) {
[INFO] [stdout]    |                   ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_entry_bytes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_seek_cursor_position`
[INFO] [stdout]   --> src/download_handler.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         let new_seek_cursor_position: u64 = match db_file.seek(SeekFrom::Start(0)) {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_seek_cursor_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cursor`
[INFO] [stdout]    --> src/download_handler.rs:108:13
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let cursor: u64 = match db_file.seek(SeekFrom::Start(8)) {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cursor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `new_table_entries_buffer` as mutable, as it is not declared as mutable
[INFO] [stdout]    --> src/download_handler.rs:158:27
[INFO] [stdout]     |
[INFO] [stdout] 158 |         db_file.read(&mut new_table_entries_buffer.as_mut_slice());
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut new_table_entries_buffer: Vec<u8> = (vec![0; entry_count as usize]);
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0515]: cannot return value referencing function parameter `db_file_path`
[INFO] [stdout]    --> src/download_handler.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 | /         Self {
[INFO] [stdout] 186 | |             download_records: Vec::new(),
[INFO] [stdout] 187 | |             file_system_table: DbTable::new(db_file_path.as_str()),
[INFO] [stdout]     | |                                             ------------ `db_file_path` is borrowed here
[INFO] [stdout] 188 | |             phantom: PhantomData,
[INFO] [stdout] 189 | |             db_file_path: db_file_path,
[INFO] [stdout] 190 | |         }
[INFO] [stdout]     | |_________^ returns a value referencing data owned by the current function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `db_file_path` because it is borrowed
[INFO] [stdout]    --> src/download_handler.rs:189:27
[INFO] [stdout]     |
[INFO] [stdout] 181 |   impl<'a> Database<'a> {
[INFO] [stdout]     |        -- lifetime `'a` defined here
[INFO] [stdout] 182 |       fn new(db_file_path: String) -> Self {
[INFO] [stdout]     |              ------------ binding `db_file_path` declared here
[INFO] [stdout] ...
[INFO] [stdout] 185 | /         Self {
[INFO] [stdout] 186 | |             download_records: Vec::new(),
[INFO] [stdout] 187 | |             file_system_table: DbTable::new(db_file_path.as_str()),
[INFO] [stdout]     | |                                             ------------ borrow of `db_file_path` occurs here
[INFO] [stdout] 188 | |             phantom: PhantomData,
[INFO] [stdout] 189 | |             db_file_path: db_file_path,
[INFO] [stdout]     | |                           ^^^^^^^^^^^^ move out of `db_file_path` occurs here
[INFO] [stdout] 190 | |         }
[INFO] [stdout]     | |_________- returning this value requires that `db_file_path` is borrowed for `'a`
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 187 |             file_system_table: DbTable::new(db_file_path.clone().as_str()),
[INFO] [stdout]     |                                                         ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> src/download_handler.rs:222:19
[INFO] [stdout]     |
[INFO] [stdout] 222 |     fn parse_file(buffer: &[u8]) -> Vec<Download>{
[INFO] [stdout]     |                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `download_ref`
[INFO] [stdout]    --> src/download_handler.rs:234:16
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn new(download_ref: &Rc<Download>) -> Self{
[INFO] [stdout]     |                ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_download_ref`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `url`
[INFO] [stdout]    --> src/download_handler.rs:273:16
[INFO] [stdout]     |
[INFO] [stdout] 273 |     fn add_job(url: String, path: String) {
[INFO] [stdout]     |                ^^^ help: if this is intentional, prefix it with an underscore: `_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/download_handler.rs:273:29
[INFO] [stdout]     |
[INFO] [stdout] 273 |     fn add_job(url: String, path: String) {
[INFO] [stdout]     |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `download_handle`
[INFO] [stdout]   --> src/main.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let download_handle = download_handler.add_download("hello".to_string(), "hello".to_string());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_download_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0505, E0515, E0596, E0599, E0716.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0505`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `download_manager` (bin "download_manager") due to 10 previous errors; 21 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "bf1f52587ede150d9f85bcc5c7b0242dad172dd0ce41e2fdde373d1110fd1092", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bf1f52587ede150d9f85bcc5c7b0242dad172dd0ce41e2fdde373d1110fd1092", kill_on_drop: false }`
[INFO] [stdout] bf1f52587ede150d9f85bcc5c7b0242dad172dd0ce41e2fdde373d1110fd1092
