[INFO] cloning repository https://github.com/LEDMann/dissertation-product [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/LEDMann/dissertation-product" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLEDMann%2Fdissertation-product", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLEDMann%2Fdissertation-product'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] bd5194fb6b82332e2d7677c3f2c8ecbf4d26078f [INFO] checking LEDMann/dissertation-product/bd5194fb6b82332e2d7677c3f2c8ecbf4d26078f against master#ab869e094a907cc5d19b4080f22eccaf347f1f95 for pr-129604 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLEDMann%2Fdissertation-product" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/LEDMann/dissertation-product on toolchain ab869e094a907cc5d19b4080f22eccaf347f1f95 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/LEDMann/dissertation-product [INFO] finished tweaking git repo https://github.com/LEDMann/dissertation-product [INFO] tweaked toml for git repo https://github.com/LEDMann/dissertation-product written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/LEDMann/dissertation-product 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" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 856f126a51dba8c79d8a6437f543672110912f9343a3bb806eb045d4bb9e0fd0 [INFO] running `Command { std: "docker" "start" "-a" "856f126a51dba8c79d8a6437f543672110912f9343a3bb806eb045d4bb9e0fd0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "856f126a51dba8c79d8a6437f543672110912f9343a3bb806eb045d4bb9e0fd0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "856f126a51dba8c79d8a6437f543672110912f9343a3bb806eb045d4bb9e0fd0", kill_on_drop: false }` [INFO] [stdout] 856f126a51dba8c79d8a6437f543672110912f9343a3bb806eb045d4bb9e0fd0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4cd322dc1a73c0fe70378db3f038adb605cd17753b81862cf0c4d811c3487895 [INFO] running `Command { std: "docker" "start" "-a" "4cd322dc1a73c0fe70378db3f038adb605cd17753b81862cf0c4d811c3487895", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Compiling proc-macro2 v1.0.81 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling smallvec v1.13.2 [INFO] [stderr] Compiling serde v1.0.198 [INFO] [stderr] Compiling interpolator v0.5.0 [INFO] [stderr] Compiling collection_literals v1.0.1 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking regex-syntax v0.8.3 [INFO] [stderr] Compiling serde_json v1.0.116 [INFO] [stderr] Checking either v1.11.0 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking quote v1.0.36 [INFO] [stderr] Compiling syn v2.0.60 [INFO] [stderr] Compiling proc-macro-utils v0.8.0 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking regex-automata v0.4.6 [INFO] [stderr] Checking regex v1.10.4 [INFO] [stderr] Compiling derive-where v1.2.7 [INFO] [stderr] Compiling serde_derive v1.0.198 [INFO] [stderr] Compiling quote-use-macros v0.7.2 [INFO] [stderr] Compiling quote-use v0.7.2 [INFO] [stderr] Compiling attribute-derive-macro v0.6.1 [INFO] [stderr] Compiling attribute-derive v0.6.1 [INFO] [stderr] Compiling get-size-derive v0.1.3 [INFO] [stderr] Checking get-size v0.1.4 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking obj_db v0.1.0 (/opt/rustwide/workdir/obj_db) [INFO] [stdout] warning: unused import: `regex::Regex` [INFO] [stdout] --> obj_db/src/lib.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use regex::Regex; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `BufWriter`, `File`, `Read`, `Write`, `borrow::BorrowMut`, `create_dir`, `env`, `fs`, `ops::Deref`, `path::Path`, `self`, and `vec` [INFO] [stdout] --> obj_db/src/lib.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | borrow::BorrowMut, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 4 | vec, [INFO] [stdout] | ^^^ [INFO] [stdout] 5 | env, [INFO] [stdout] | ^^^ [INFO] [stdout] 6 | fs, [INFO] [stdout] | ^^ [INFO] [stdout] 7 | ops::Deref, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 8 | path::Path, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 9 | fs::{ [INFO] [stdout] 10 | create_dir, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 11 | File [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | }, [INFO] [stdout] 13 | io::{self, [INFO] [stdout] | ^^^^ [INFO] [stdout] 14 | BufRead, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 15 | BufReader, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 16 | BufWriter, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 17 | Read, [INFO] [stdout] | ^^^^ [INFO] [stdout] 18 | Write [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MutexGuard`, `borrow::Borrow`, `collections::HashMap`, `ops::Deref`, and `path::Path` [INFO] [stdout] --> obj_db/src/database.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | ...::{borrow::Borrow, collections::HashMap, env, fs::{self, File}, io::{Read, Write}, ops::Deref, path::Path, sync::{Arc, Mutex, MutexGuard... [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufRead` [INFO] [stdout] --> obj_db/src/database/part.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::BufRead; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufReader` [INFO] [stdout] --> obj_db/src/database/part.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::BufReader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Seek` [INFO] [stdout] --> obj_db/src/database/part.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::Seek; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> obj_db/src/database/cell.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{default, fmt::Display}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::cell::CellValue` [INFO] [stdout] --> obj_db/src/database/record.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use super::cell::CellValue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `collections::HashMap`, `iter::Map`, `ops::Deref`, `path::Path`, and `ptr::null` [INFO] [stdout] --> obj_db/src/database/table.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, env, fs::{self, File}, io::{Read, Write}, iter::Map, ops::Deref, path::Path, ptr::null}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CellValue` [INFO] [stdout] --> obj_db/src/database/table.rs:4:32 [INFO] [stdout] | [INFO] [stdout] 4 | use super::{cell::{self, Cell, CellValue}, conditional, part, record}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `get_size::GetSize` [INFO] [stdout] --> obj_db/src/database/table.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use get_size::GetSize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Value` and `json` [INFO] [stdout] --> obj_db/src/database/table.rs:6:18 [INFO] [stdout] | [INFO] [stdout] 6 | use serde_json::{Value, json}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> obj_db/src/database.rs:126:36 [INFO] [stdout] | [INFO] [stdout] 126 | None => return Err(("unable to parse path as str".to_string())) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 126 - None => return Err(("unable to parse path as str".to_string())) [INFO] [stdout] 126 + None => return Err("unable to parse path as str".to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> obj_db/src/database.rs:128:34 [INFO] [stdout] | [INFO] [stdout] 128 | Err(e) => return Err((["unable to find current directory\n".to_string(), e.to_string()].concat())), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 128 - Err(e) => return Err((["unable to find current directory\n".to_string(), e.to_string()].concat())), [INFO] [stdout] 128 + Err(e) => return Err(["unable to find current directory\n".to_string(), e.to_string()].concat()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> obj_db/src/database.rs:137:34 [INFO] [stdout] | [INFO] [stdout] 137 | Err(e) => return Err((["unable to create specified directories\n".to_string(), e.to_string()].concat())), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 137 - Err(e) => return Err((["unable to create specified directories\n".to_string(), e.to_string()].concat())), [INFO] [stdout] 137 + Err(e) => return Err(["unable to create specified directories\n".to_string(), e.to_string()].concat()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> obj_db/src/database.rs:141:34 [INFO] [stdout] | [INFO] [stdout] 141 | Err(e) => return Err((["unable to create database definition file\n".to_string(), e.to_string()].concat())) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 141 - Err(e) => return Err((["unable to create database definition file\n".to_string(), e.to_string()].concat())) [INFO] [stdout] 141 + Err(e) => return Err(["unable to create database definition file\n".to_string(), e.to_string()].concat()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> obj_db/src/database.rs:145:34 [INFO] [stdout] | [INFO] [stdout] 145 | Err(e) => return Err((["unable to create database log file\n".to_string(), e.to_string()].concat())) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 145 - Err(e) => return Err((["unable to create database log file\n".to_string(), e.to_string()].concat())) [INFO] [stdout] 145 + Err(e) => return Err(["unable to create database log file\n".to_string(), e.to_string()].concat()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `endpoint::query::QueryDatabaseCreateTable` [INFO] [stdout] --> obj_db/src/endpoint.rs:5:48 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::{database::{self, table, Database}, endpoint::query::QueryDatabaseCreateTable}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `cell::Cell`, `default`, and `fs::DirEntry` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{cell::Cell, default, fs::DirEntry, sync::{Arc, Mutex, MutexGuard}}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::database::{self, cell::{self, CellValue}, conditional::{self, Condition, Conditional, Relation}, record::{self, Record}, table... [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regex::Regex` [INFO] [stdout] --> obj_db/src/lib.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use regex::Regex; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `BufWriter`, `File`, `Read`, `Write`, `borrow::BorrowMut`, `create_dir`, `env`, `fs`, `ops::Deref`, `path::Path`, `self`, and `vec` [INFO] [stdout] --> obj_db/src/lib.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | borrow::BorrowMut, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 4 | vec, [INFO] [stdout] | ^^^ [INFO] [stdout] 5 | env, [INFO] [stdout] | ^^^ [INFO] [stdout] 6 | fs, [INFO] [stdout] | ^^ [INFO] [stdout] 7 | ops::Deref, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 8 | path::Path, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 9 | fs::{ [INFO] [stdout] 10 | create_dir, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 11 | File [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | }, [INFO] [stdout] 13 | io::{self, [INFO] [stdout] | ^^^^ [INFO] [stdout] 14 | BufRead, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 15 | BufReader, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 16 | BufWriter, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 17 | Read, [INFO] [stdout] | ^^^^ [INFO] [stdout] 18 | Write [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MutexGuard`, `borrow::Borrow`, `collections::HashMap`, `ops::Deref`, and `path::Path` [INFO] [stdout] --> obj_db/src/database.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | ...::{borrow::Borrow, collections::HashMap, env, fs::{self, File}, io::{Read, Write}, ops::Deref, path::Path, sync::{Arc, Mutex, MutexGuard... [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufRead` [INFO] [stdout] --> obj_db/src/database/part.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::BufRead; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufReader` [INFO] [stdout] --> obj_db/src/database/part.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::BufReader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Seek` [INFO] [stdout] --> obj_db/src/database/part.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::Seek; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> obj_db/src/database/cell.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{default, fmt::Display}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::cell::CellValue` [INFO] [stdout] --> obj_db/src/database/record.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use super::cell::CellValue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `collections::HashMap`, `iter::Map`, `ops::Deref`, `path::Path`, and `ptr::null` [INFO] [stdout] --> obj_db/src/database/table.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, env, fs::{self, File}, io::{Read, Write}, iter::Map, ops::Deref, path::Path, ptr::null}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CellValue` [INFO] [stdout] --> obj_db/src/database/table.rs:4:32 [INFO] [stdout] | [INFO] [stdout] 4 | use super::{cell::{self, Cell, CellValue}, conditional, part, record}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `get_size::GetSize` [INFO] [stdout] --> obj_db/src/database/table.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use get_size::GetSize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Value` and `json` [INFO] [stdout] --> obj_db/src/database/table.rs:6:18 [INFO] [stdout] | [INFO] [stdout] 6 | use serde_json::{Value, json}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> obj_db/src/database.rs:126:36 [INFO] [stdout] | [INFO] [stdout] 126 | None => return Err(("unable to parse path as str".to_string())) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 126 - None => return Err(("unable to parse path as str".to_string())) [INFO] [stdout] 126 + None => return Err("unable to parse path as str".to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> obj_db/src/database.rs:128:34 [INFO] [stdout] | [INFO] [stdout] 128 | Err(e) => return Err((["unable to find current directory\n".to_string(), e.to_string()].concat())), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 128 - Err(e) => return Err((["unable to find current directory\n".to_string(), e.to_string()].concat())), [INFO] [stdout] 128 + Err(e) => return Err(["unable to find current directory\n".to_string(), e.to_string()].concat()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> obj_db/src/database.rs:137:34 [INFO] [stdout] | [INFO] [stdout] 137 | Err(e) => return Err((["unable to create specified directories\n".to_string(), e.to_string()].concat())), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 137 - Err(e) => return Err((["unable to create specified directories\n".to_string(), e.to_string()].concat())), [INFO] [stdout] 137 + Err(e) => return Err(["unable to create specified directories\n".to_string(), e.to_string()].concat()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> obj_db/src/database.rs:141:34 [INFO] [stdout] | [INFO] [stdout] 141 | Err(e) => return Err((["unable to create database definition file\n".to_string(), e.to_string()].concat())) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 141 - Err(e) => return Err((["unable to create database definition file\n".to_string(), e.to_string()].concat())) [INFO] [stdout] 141 + Err(e) => return Err(["unable to create database definition file\n".to_string(), e.to_string()].concat()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> obj_db/src/database.rs:145:34 [INFO] [stdout] | [INFO] [stdout] 145 | Err(e) => return Err((["unable to create database log file\n".to_string(), e.to_string()].concat())) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 145 - Err(e) => return Err((["unable to create database log file\n".to_string(), e.to_string()].concat())) [INFO] [stdout] 145 + Err(e) => return Err(["unable to create database log file\n".to_string(), e.to_string()].concat()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `endpoint::query::QueryDatabaseCreateTable` [INFO] [stdout] --> obj_db/src/endpoint.rs:5:48 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::{database::{self, table, Database}, endpoint::query::QueryDatabaseCreateTable}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `cell::Cell`, `default`, and `fs::DirEntry` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{cell::Cell, default, fs::DirEntry, sync::{Arc, Mutex, MutexGuard}}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::database::{self, cell::{self, CellValue}, conditional::{self, Condition, Conditional, Relation}, record::{self, Record}, table... [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `index` [INFO] [stdout] --> obj_db/src/database/part.rs:131:30 [INFO] [stdout] | [INFO] [stdout] 131 | pub fn delete(&mut self, index: u32) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> obj_db/src/database/table.rs:101:17 [INFO] [stdout] | [INFO] [stdout] 101 | Err(e) => (false, vec![]) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> obj_db/src/database/table.rs:80:41 [INFO] [stdout] | [INFO] [stdout] 80 | ... Err(e) => "".to_string(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d` [INFO] [stdout] --> obj_db/src/database/table.rs:140:16 [INFO] [stdout] | [INFO] [stdout] 140 | Ok(d) => self.directory = table_dir.clone(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_d` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> obj_db/src/database.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | ... let mut new_db: Arc>> = Arc::new(Mutex::new(Database { name: name.clone(), indev: true, directory: "".to_string(... [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: unused variable: `index` [INFO] [stdout] --> obj_db/src/database/part.rs:131:30 [INFO] [stdout] | [INFO] [stdout] 131 | pub fn delete(&mut self, index: u32) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> obj_db/src/database.rs:73:17 [INFO] [stdout] | [INFO] [stdout] 73 | Err(e) => return Err("unable to find database directory".to_string()), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> obj_db/src/database.rs:81:17 [INFO] [stdout] | [INFO] [stdout] 81 | Err(e) => Err("unable to open database defintion file".to_string()), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> obj_db/src/database.rs:69:25 [INFO] [stdout] | [INFO] [stdout] 69 | Err(e) => "".to_string(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> obj_db/src/database.rs:162:17 [INFO] [stdout] | [INFO] [stdout] 162 | Err(e) => Err("unable to open database defintion file".to_string()), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> obj_db/src/database.rs:173:75 [INFO] [stdout] | [INFO] [stdout] 173 | ...les.iter_mut().enumerate().find(|(i, table)| match table.try_lock() { Ok(table) => table.name == table_name, Err(e) => panic!("{}", ["... [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `q` [INFO] [stdout] --> obj_db/src/endpoint/runnable.rs:17:30 [INFO] [stdout] | [INFO] [stdout] 17 | Runnable::Script(q) => {} [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_q` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> obj_db/src/endpoint/runnable.rs:14:71 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn run(&mut self, admin_db: Option>>>, mut database: Option<&mut MutexGuard>>, body: Value, d... [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `q` [INFO] [stdout] --> obj_db/src/endpoint/runnable.rs:24:30 [INFO] [stdout] | [INFO] [stdout] 24 | Runnable::Script(q) => Err("scripts not implemented".to_owned()) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_q` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `q` [INFO] [stdout] --> obj_db/src/endpoint/runnable.rs:31:30 [INFO] [stdout] | [INFO] [stdout] 31 | Runnable::Script(q) => Err("not a query".to_owned()), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_q` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> obj_db/src/endpoint/query.rs:21:71 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn run(&mut self, admin_db: Option>>>, mut database: Option<&mut MutexGuard>>, body: Value, d... [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] --> obj_db/src/endpoint/query.rs:57:71 [INFO] [stdout] | [INFO] [stdout] 57 | pub fn run(&mut self, admin_db: Option>>>, mut body: Value, dir_override: Option) { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> obj_db/src/endpoint/query.rs:155:41 [INFO] [stdout] | [INFO] [stdout] 155 | ... _ => CellValue::String { name: "".to_owned(), data: Some("".to_owned()) } [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> obj_db/src/endpoint/query.rs:155:41 [INFO] [stdout] | [INFO] [stdout] 147 | ... cell::CellValue::String {..} => cell::CellValue::String { name: record_name.to_owned(), data: match record_value.as_str() { Some(va... [INFO] [stdout] | ---------------------------- matches some of the same values [INFO] [stdout] 148 | ... cell::CellValue::Bool {..} => cell::CellValue::Bool { name: record_name.to_owned(), data: record_value.as_bool() }, [INFO] [stdout] | ---------------------------- matches some of the same values [INFO] [stdout] 149 | ... cell::CellValue::UInt {..} => cell::CellValue::UInt { name: record_name.to_owned(), data: match record_value.as_str() { Some(va... [INFO] [stdout] | ---------------------------- matches some of the same values [INFO] [stdout] 150 | ... cell::CellValue::ULong {..} => cell::CellValue::ULong { name: record_name.to_owned(), data: match record_value.as_str() { Some(va... [INFO] [stdout] | ---------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 155 | ... _ => CellValue::String { name: "".to_owned(), data: Some("".to_owned()) } [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> obj_db/src/endpoint/query.rs:184:27 [INFO] [stdout] | [INFO] [stdout] 184 | pub fn run(&mut self, mut records: Vec ) { [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> obj_db/src/endpoint/query.rs:278:45 [INFO] [stdout] | [INFO] [stdout] 278 | ... _ => None, [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> obj_db/src/endpoint/query.rs:278:45 [INFO] [stdout] | [INFO] [stdout] 270 | ... cell::CellValue::String { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 271 | ... cell::CellValue::Bool { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 272 | ... cell::CellValue::UInt { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 273 | ... cell::CellValue::ULong { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 278 | ... _ => None, [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> obj_db/src/endpoint/query.rs:292:45 [INFO] [stdout] | [INFO] [stdout] 292 | ... _ => None, [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> obj_db/src/endpoint/query.rs:292:45 [INFO] [stdout] | [INFO] [stdout] 284 | ... cell::CellValue::String { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 285 | ... cell::CellValue::Bool { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 286 | ... cell::CellValue::UInt { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 287 | ... cell::CellValue::ULong { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 292 | ... _ => None, [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `body` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:355:29 [INFO] [stdout] | [INFO] [stdout] 355 | pub fn parse(&mut self, body: Value) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `conditions` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:359:27 [INFO] [stdout] | [INFO] [stdout] 359 | pub fn run(&mut self, conditions: Vec, mut records: Vec) { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conditions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `records` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:359:72 [INFO] [stdout] | [INFO] [stdout] 359 | pub fn run(&mut self, conditions: Vec, mut records: Vec) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_records` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> obj_db/src/endpoint/query.rs:359:68 [INFO] [stdout] | [INFO] [stdout] 359 | pub fn run(&mut self, conditions: Vec, mut records: Vec) { [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> obj_db/src/endpoint/query.rs:419:45 [INFO] [stdout] | [INFO] [stdout] 419 | ... _ => None, [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> obj_db/src/endpoint/query.rs:419:45 [INFO] [stdout] | [INFO] [stdout] 411 | ... cell::CellValue::String { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 412 | ... cell::CellValue::Bool { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 413 | ... cell::CellValue::UInt { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 414 | ... cell::CellValue::ULong { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 419 | ... _ => None, [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> obj_db/src/endpoint/query.rs:433:45 [INFO] [stdout] | [INFO] [stdout] 433 | ... _ => None, [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> obj_db/src/endpoint/query.rs:433:45 [INFO] [stdout] | [INFO] [stdout] 425 | ... cell::CellValue::String { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 426 | ... cell::CellValue::Bool { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 427 | ... cell::CellValue::UInt { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 428 | ... cell::CellValue::ULong { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 433 | ... _ => None, [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> obj_db/src/endpoint/query.rs:512:67 [INFO] [stdout] | [INFO] [stdout] 512 | pub fn run<'a>(&mut self, admin_db: Arc>>, mut database: Option<&mut MutexGuard>>, body: Value) { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `admin_db` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:615:29 [INFO] [stdout] | [INFO] [stdout] 615 | pub fn parse(&mut self, admin_db: Arc>, database: &mut MutexGuard, body: Value) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_admin_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `body` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:615:98 [INFO] [stdout] | [INFO] [stdout] 615 | pub fn parse(&mut self, admin_db: Arc>, database: &mut MutexGuard, body: Value) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `database` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:620:27 [INFO] [stdout] | [INFO] [stdout] 620 | pub fn run(&mut self, database: &mut MutexGuard) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_database` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> obj_db/src/endpoint.rs:22:17 [INFO] [stdout] | [INFO] [stdout] 22 | Err(e) => panic!("shits fucked") [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> obj_db/src/endpoint.rs:19:27 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn run(&mut self, mut database: Option<&mut MutexGuard>>, body: Value, dir_override: Option) { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `database` [INFO] [stdout] --> obj_db/src/endpoint.rs:58:19 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn new_db(database: Arc>>, admin_db: Arc>>, role: String) -> Vec>> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_database` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `database` [INFO] [stdout] --> obj_db/src/endpoint.rs:72:20 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn prod_db(database: Arc>>, admin_db: Arc>>, role: String) -> Vec... [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_database` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> obj_db/src/lib.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from` is never used [INFO] [stdout] --> obj_db/src/database/record.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 42 | impl RecordCollection { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn from(records: Vec) -> RecordCollection { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `check_role` is never used [INFO] [stdout] --> obj_db/src/endpoint.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 18 | impl<'a> Endpoint<'a> { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 40 | fn check_role(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:49:35 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct QueryNewDatabase<'a> { name: String, pub result: Result>>, String> } [INFO] [stdout] | ---------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:116:64 [INFO] [stdout] | [INFO] [stdout] 116 | pub struct TableQueryCreate { table: Arc>, name: String, pub result: Result } [INFO] [stdout] | ---------------- field in this struct ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:226:64 [INFO] [stdout] | [INFO] [stdout] 226 | pub struct TableQueryRead { table: Arc>, name: String, pub result: Result } [INFO] [stdout] | -------------- field in this struct ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:348:64 [INFO] [stdout] | [INFO] [stdout] 348 | pub struct TableQueryUpdate { table: Arc>, name: String, pub result: Result } [INFO] [stdout] | ---------------- field in this struct ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:367:64 [INFO] [stdout] | [INFO] [stdout] 367 | pub struct TableQueryDelete { table: Arc>, name: String, pub result: Result } [INFO] [stdout] | ---------------- field in this struct ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:543:39 [INFO] [stdout] | [INFO] [stdout] 543 | pub struct QueryDatabaseCreateTable { name: String, pub result: Result } [INFO] [stdout] | ------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:608:39 [INFO] [stdout] | [INFO] [stdout] 608 | pub struct QueryDatabaseUpdateTable { name: String, pub result: Result } [INFO] [stdout] | ------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:630:39 [INFO] [stdout] | [INFO] [stdout] 630 | pub struct QueryDatabaseDeleteTable { name: String, pub result: Result } [INFO] [stdout] | ------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:652:39 [INFO] [stdout] | [INFO] [stdout] 652 | pub struct QueryDatabaseInDevToggle { name: String, pub result: Result } [INFO] [stdout] | ------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/script.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Script { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 4 | name: String [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> obj_db/src/database.rs:78:17 [INFO] [stdout] | [INFO] [stdout] 78 | e.read_to_string(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 78 | let _ = e.read_to_string(&mut buf); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> obj_db/src/database.rs:159:17 [INFO] [stdout] | [INFO] [stdout] 159 | e.read_to_string(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 159 | let _ = e.read_to_string(&mut buf); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> obj_db/src/database/record.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | fmt.write_str("{{"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 72 | let _ = fmt.write_str("{{"); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> obj_db/src/database/record.rs:73:38 [INFO] [stdout] | [INFO] [stdout] 73 | self.0.iter().for_each(|a| { fmt.write_str(&a.to_string()); }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 73 | self.0.iter().for_each(|a| { let _ = fmt.write_str(&a.to_string()); }); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> obj_db/src/database/record.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | fmt.write_str("}},"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 74 | let _ = fmt.write_str("}},"); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `Result`. This is more readably written as an `if let` statement [INFO] [stdout] --> obj_db/src/database/table.rs:162:40 [INFO] [stdout] | [INFO] [stdout] 162 | Ok(_) => for record in part.query_search_columns(conditions) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 162 | Ok(_) => while let Ok(record) = part.query_search_columns(conditions) { [INFO] [stdout] | ~~~~~~~~~~~~~ ~~~ [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 162 | Ok(_) => if let Ok(record) = part.query_search_columns(conditions) { [INFO] [stdout] | ~~~~~~~~~~ ~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> obj_db/src/database/table.rs:181:13 [INFO] [stdout] | [INFO] [stdout] 181 | part.save(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 181 | let _ = part.save(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQC` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:87:42 [INFO] [stdout] | [INFO] [stdout] 87 | QueryTable::TableQueryCreate(TQC) => TQC.parse(body), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqc` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQR` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:88:40 [INFO] [stdout] | [INFO] [stdout] 88 | QueryTable::TableQueryRead(TQR) => TQR.parse(body), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQU` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:89:42 [INFO] [stdout] | [INFO] [stdout] 89 | QueryTable::TableQueryUpdate(TQU) => TQU.parse(body), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQD` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:90:42 [INFO] [stdout] | [INFO] [stdout] 90 | QueryTable::TableQueryDelete(TQD) => TQD.parse(body), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQC` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:96:42 [INFO] [stdout] | [INFO] [stdout] 96 | QueryTable::TableQueryCreate(TQC) => TQC.result.clone(), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQR` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:97:40 [INFO] [stdout] | [INFO] [stdout] 97 | QueryTable::TableQueryRead(TQR) => TQR.result.clone(), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQU` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:98:42 [INFO] [stdout] | [INFO] [stdout] 98 | QueryTable::TableQueryUpdate(TQU) => TQU.result.clone(), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQD` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:99:42 [INFO] [stdout] | [INFO] [stdout] 99 | QueryTable::TableQueryDelete(TQD) => TQD.result.clone(), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQC` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:105:42 [INFO] [stdout] | [INFO] [stdout] 105 | QueryTable::TableQueryCreate(TQC) => Ok(TQC.table.clone()), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQR` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:106:40 [INFO] [stdout] | [INFO] [stdout] 106 | QueryTable::TableQueryRead(TQR) => Ok(TQR.table.clone()), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQU` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:107:42 [INFO] [stdout] | [INFO] [stdout] 107 | QueryTable::TableQueryUpdate(TQU) => Ok(TQU.table.clone()), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQD` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:108:42 [INFO] [stdout] | [INFO] [stdout] 108 | QueryTable::TableQueryDelete(TQD) => Ok(TQD.table.clone()), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDCT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:514:53 [INFO] [stdout] | [INFO] [stdout] 514 | ... QueryDatabase::QueryDatabaseCreateTable(QDCT) => match database { Some(db) => QDCT.parse(admin_db, db, body), None => QDCT.result =... [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qdct` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDUT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:515:53 [INFO] [stdout] | [INFO] [stdout] 515 | ... QueryDatabase::QueryDatabaseUpdateTable(QDUT) => match database { Some(db) => QDUT.parse(admin_db, db, body), None => QDUT.result =... [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qdut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDDT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:516:53 [INFO] [stdout] | [INFO] [stdout] 516 | ... QueryDatabase::QueryDatabaseDeleteTable(QDDT) => match database { Some(db) => QDDT.parse(db, body), None => QDDT.result = Err("no d... [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qddt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDIDT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:517:53 [INFO] [stdout] | [INFO] [stdout] 517 | ... QueryDatabase::QueryDatabaseInDevToggle(QDIDT) => match database { Some(db) => QDIDT.run(db), None => QDIDT.result = Err("no db poi... [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `qdidt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDCT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:523:53 [INFO] [stdout] | [INFO] [stdout] 523 | QueryDatabase::QueryDatabaseCreateTable(QDCT) => QDCT.result.clone(), [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qdct` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDUT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:524:53 [INFO] [stdout] | [INFO] [stdout] 524 | QueryDatabase::QueryDatabaseUpdateTable(QDUT) => QDUT.result.clone(), [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qdut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDDT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:525:53 [INFO] [stdout] | [INFO] [stdout] 525 | QueryDatabase::QueryDatabaseDeleteTable(QDDT) => QDDT.result.clone(), [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qddt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDIDT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:526:53 [INFO] [stdout] | [INFO] [stdout] 526 | QueryDatabase::QueryDatabaseInDevToggle(QDIDT) => QDIDT.result.clone(), [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `qdidt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDCT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:532:53 [INFO] [stdout] | [INFO] [stdout] 532 | QueryDatabase::QueryDatabaseCreateTable(QDCT) => QDCT.result = result, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qdct` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDUT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:533:53 [INFO] [stdout] | [INFO] [stdout] 533 | QueryDatabase::QueryDatabaseUpdateTable(QDUT) => QDUT.result = result, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qdut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDDT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:534:53 [INFO] [stdout] | [INFO] [stdout] 534 | QueryDatabase::QueryDatabaseDeleteTable(QDDT) => QDDT.result = result, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qddt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDIDT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:535:53 [INFO] [stdout] | [INFO] [stdout] 535 | QueryDatabase::QueryDatabaseInDevToggle(QDIDT) => QDIDT.result = result, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `qdidt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> obj_db/src/database/table.rs:101:17 [INFO] [stdout] | [INFO] [stdout] 101 | Err(e) => (false, vec![]) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> obj_db/src/database/table.rs:80:41 [INFO] [stdout] | [INFO] [stdout] 80 | ... Err(e) => "".to_string(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d` [INFO] [stdout] --> obj_db/src/database/table.rs:140:16 [INFO] [stdout] | [INFO] [stdout] 140 | Ok(d) => self.directory = table_dir.clone(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_d` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> obj_db/src/database.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | ... let mut new_db: Arc>> = Arc::new(Mutex::new(Database { name: name.clone(), indev: true, directory: "".to_string(... [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: unused variable: `e` [INFO] [stdout] --> obj_db/src/database.rs:73:17 [INFO] [stdout] | [INFO] [stdout] 73 | Err(e) => return Err("unable to find database directory".to_string()), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> obj_db/src/database.rs:81:17 [INFO] [stdout] | [INFO] [stdout] 81 | Err(e) => Err("unable to open database defintion file".to_string()), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 98 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> obj_db/src/database.rs:69:25 [INFO] [stdout] | [INFO] [stdout] 69 | Err(e) => "".to_string(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking api v0.1.0 (/opt/rustwide/workdir/api) [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> obj_db/src/database.rs:162:17 [INFO] [stdout] | [INFO] [stdout] 162 | Err(e) => Err("unable to open database defintion file".to_string()), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> obj_db/src/database.rs:173:75 [INFO] [stdout] | [INFO] [stdout] 173 | ...les.iter_mut().enumerate().find(|(i, table)| match table.try_lock() { Ok(table) => table.name == table_name, Err(e) => panic!("{}", ["... [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `q` [INFO] [stdout] --> obj_db/src/endpoint/runnable.rs:17:30 [INFO] [stdout] | [INFO] [stdout] 17 | Runnable::Script(q) => {} [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_q` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> obj_db/src/endpoint/runnable.rs:14:71 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn run(&mut self, admin_db: Option>>>, mut database: Option<&mut MutexGuard>>, body: Value, d... [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `q` [INFO] [stdout] --> obj_db/src/endpoint/runnable.rs:24:30 [INFO] [stdout] | [INFO] [stdout] 24 | Runnable::Script(q) => Err("scripts not implemented".to_owned()) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_q` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `q` [INFO] [stdout] --> obj_db/src/endpoint/runnable.rs:31:30 [INFO] [stdout] | [INFO] [stdout] 31 | Runnable::Script(q) => Err("not a query".to_owned()), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_q` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> obj_db/src/endpoint/query.rs:21:71 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn run(&mut self, admin_db: Option>>>, mut database: Option<&mut MutexGuard>>, body: Value, d... [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] --> obj_db/src/endpoint/query.rs:57:71 [INFO] [stdout] | [INFO] [stdout] 57 | pub fn run(&mut self, admin_db: Option>>>, mut body: Value, dir_override: Option) { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> obj_db/src/endpoint/query.rs:155:41 [INFO] [stdout] | [INFO] [stdout] 155 | ... _ => CellValue::String { name: "".to_owned(), data: Some("".to_owned()) } [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> obj_db/src/endpoint/query.rs:155:41 [INFO] [stdout] | [INFO] [stdout] 147 | ... cell::CellValue::String {..} => cell::CellValue::String { name: record_name.to_owned(), data: match record_value.as_str() { Some(va... [INFO] [stdout] | ---------------------------- matches some of the same values [INFO] [stdout] 148 | ... cell::CellValue::Bool {..} => cell::CellValue::Bool { name: record_name.to_owned(), data: record_value.as_bool() }, [INFO] [stdout] | ---------------------------- matches some of the same values [INFO] [stdout] 149 | ... cell::CellValue::UInt {..} => cell::CellValue::UInt { name: record_name.to_owned(), data: match record_value.as_str() { Some(va... [INFO] [stdout] | ---------------------------- matches some of the same values [INFO] [stdout] 150 | ... cell::CellValue::ULong {..} => cell::CellValue::ULong { name: record_name.to_owned(), data: match record_value.as_str() { Some(va... [INFO] [stdout] | ---------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 155 | ... _ => CellValue::String { name: "".to_owned(), data: Some("".to_owned()) } [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> obj_db/src/endpoint/query.rs:184:27 [INFO] [stdout] | [INFO] [stdout] 184 | pub fn run(&mut self, mut records: Vec ) { [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> obj_db/src/endpoint/query.rs:278:45 [INFO] [stdout] | [INFO] [stdout] 278 | ... _ => None, [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> obj_db/src/endpoint/query.rs:278:45 [INFO] [stdout] | [INFO] [stdout] 270 | ... cell::CellValue::String { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 271 | ... cell::CellValue::Bool { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 272 | ... cell::CellValue::UInt { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 273 | ... cell::CellValue::ULong { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 278 | ... _ => None, [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> obj_db/src/endpoint/query.rs:292:45 [INFO] [stdout] | [INFO] [stdout] 292 | ... _ => None, [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> obj_db/src/endpoint/query.rs:292:45 [INFO] [stdout] | [INFO] [stdout] 284 | ... cell::CellValue::String { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 285 | ... cell::CellValue::Bool { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 286 | ... cell::CellValue::UInt { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 287 | ... cell::CellValue::ULong { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 292 | ... _ => None, [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `body` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:355:29 [INFO] [stdout] | [INFO] [stdout] 355 | pub fn parse(&mut self, body: Value) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `conditions` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:359:27 [INFO] [stdout] | [INFO] [stdout] 359 | pub fn run(&mut self, conditions: Vec, mut records: Vec) { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conditions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `records` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:359:72 [INFO] [stdout] | [INFO] [stdout] 359 | pub fn run(&mut self, conditions: Vec, mut records: Vec) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_records` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> obj_db/src/endpoint/query.rs:359:68 [INFO] [stdout] | [INFO] [stdout] 359 | pub fn run(&mut self, conditions: Vec, mut records: Vec) { [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> obj_db/src/endpoint/query.rs:419:45 [INFO] [stdout] | [INFO] [stdout] 419 | ... _ => None, [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> obj_db/src/endpoint/query.rs:419:45 [INFO] [stdout] | [INFO] [stdout] 411 | ... cell::CellValue::String { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 412 | ... cell::CellValue::Bool { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 413 | ... cell::CellValue::UInt { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 414 | ... cell::CellValue::ULong { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 419 | ... _ => None, [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> obj_db/src/endpoint/query.rs:433:45 [INFO] [stdout] | [INFO] [stdout] 433 | ... _ => None, [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> obj_db/src/endpoint/query.rs:433:45 [INFO] [stdout] | [INFO] [stdout] 425 | ... cell::CellValue::String { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 426 | ... cell::CellValue::Bool { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 427 | ... cell::CellValue::UInt { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 428 | ... cell::CellValue::ULong { name, ..} => Some(conditional::Condition { target_column: conditionsarr[0].as_str().unwrap().to_owned(), ... [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 433 | ... _ => None, [INFO] [stdout] | ^ ...and 4 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::json` [INFO] [stdout] --> api/src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use serde_json::json; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DerefMut`, `Deref`, `DirEntry`, and `ReadDir` [INFO] [stdout] --> api/src/main.rs:4:27 [INFO] [stdout] | [INFO] [stdout] 4 | use std::{env, fs::{self, DirEntry, ReadDir}, io::Write, net::TcpListener, ops::{Deref, DerefMut}, sync::{Arc, Mutex, MutexGuard}}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> api/src/main.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | use obj_db::{database::{self, Database}, endpoint::{self, Endpoint, runnable}}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::json` [INFO] [stdout] --> api/src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use serde_json::json; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DerefMut`, `Deref`, `DirEntry`, and `ReadDir` [INFO] [stdout] --> api/src/main.rs:4:27 [INFO] [stdout] | [INFO] [stdout] 4 | use std::{env, fs::{self, DirEntry, ReadDir}, io::Write, net::TcpListener, ops::{Deref, DerefMut}, sync::{Arc, Mutex, MutexGuard}}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> api/src/main.rs:5:25 [INFO] [stdout] | [INFO] [stdout] 5 | use obj_db::{database::{self, Database}, endpoint::{self, Endpoint, runnable}}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> obj_db/src/endpoint/query.rs:512:67 [INFO] [stdout] | [INFO] [stdout] 512 | pub fn run<'a>(&mut self, admin_db: Arc>>, mut database: Option<&mut MutexGuard>>, body: Value) { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `admin_db` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:615:29 [INFO] [stdout] | [INFO] [stdout] 615 | pub fn parse(&mut self, admin_db: Arc>, database: &mut MutexGuard, body: Value) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_admin_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `body` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:615:98 [INFO] [stdout] | [INFO] [stdout] 615 | pub fn parse(&mut self, admin_db: Arc>, database: &mut MutexGuard, body: Value) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `database` [INFO] [stdout] --> obj_db/src/endpoint/query.rs:620:27 [INFO] [stdout] | [INFO] [stdout] 620 | pub fn run(&mut self, database: &mut MutexGuard) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_database` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> obj_db/src/endpoint.rs:22:17 [INFO] [stdout] | [INFO] [stdout] 22 | Err(e) => panic!("shits fucked") [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> obj_db/src/endpoint.rs:19:27 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn run(&mut self, mut database: Option<&mut MutexGuard>>, body: Value, dir_override: Option) { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `database` [INFO] [stdout] --> obj_db/src/endpoint.rs:58:19 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn new_db(database: Arc>>, admin_db: Arc>>, role: String) -> Vec>> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_database` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `database` [INFO] [stdout] --> obj_db/src/endpoint.rs:72:20 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn prod_db(database: Arc>>, admin_db: Arc>>, role: String) -> Vec... [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_database` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from` is never used [INFO] [stdout] --> obj_db/src/database/record.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 42 | impl RecordCollection { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn from(records: Vec) -> RecordCollection { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `check_role` is never used [INFO] [stdout] --> obj_db/src/endpoint.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 18 | impl<'a> Endpoint<'a> { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 40 | fn check_role(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:49:35 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct QueryNewDatabase<'a> { name: String, pub result: Result>>, String> } [INFO] [stdout] | ---------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:116:64 [INFO] [stdout] | [INFO] [stdout] 116 | pub struct TableQueryCreate { table: Arc>, name: String, pub result: Result } [INFO] [stdout] | ---------------- field in this struct ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:226:64 [INFO] [stdout] | [INFO] [stdout] 226 | pub struct TableQueryRead { table: Arc>, name: String, pub result: Result } [INFO] [stdout] | -------------- field in this struct ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:348:64 [INFO] [stdout] | [INFO] [stdout] 348 | pub struct TableQueryUpdate { table: Arc>, name: String, pub result: Result } [INFO] [stdout] | ---------------- field in this struct ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:367:64 [INFO] [stdout] | [INFO] [stdout] 367 | pub struct TableQueryDelete { table: Arc>, name: String, pub result: Result } [INFO] [stdout] | ---------------- field in this struct ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:543:39 [INFO] [stdout] | [INFO] [stdout] 543 | pub struct QueryDatabaseCreateTable { name: String, pub result: Result } [INFO] [stdout] | ------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:608:39 [INFO] [stdout] | [INFO] [stdout] 608 | pub struct QueryDatabaseUpdateTable { name: String, pub result: Result } [INFO] [stdout] | ------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:630:39 [INFO] [stdout] | [INFO] [stdout] 630 | pub struct QueryDatabaseDeleteTable { name: String, pub result: Result } [INFO] [stdout] | ------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/query.rs:652:39 [INFO] [stdout] | [INFO] [stdout] 652 | pub struct QueryDatabaseInDevToggle { name: String, pub result: Result } [INFO] [stdout] | ------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> obj_db/src/endpoint/script.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Script { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 4 | name: String [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> obj_db/src/database.rs:78:17 [INFO] [stdout] | [INFO] [stdout] 78 | e.read_to_string(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 78 | let _ = e.read_to_string(&mut buf); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> obj_db/src/database.rs:159:17 [INFO] [stdout] | [INFO] [stdout] 159 | e.read_to_string(&mut buf); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 159 | let _ = e.read_to_string(&mut buf); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> obj_db/src/database/record.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | fmt.write_str("{{"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 72 | let _ = fmt.write_str("{{"); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> obj_db/src/database/record.rs:73:38 [INFO] [stdout] | [INFO] [stdout] 73 | self.0.iter().for_each(|a| { fmt.write_str(&a.to_string()); }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 73 | self.0.iter().for_each(|a| { let _ = fmt.write_str(&a.to_string()); }); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> obj_db/src/database/record.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | fmt.write_str("}},"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 74 | let _ = fmt.write_str("}},"); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over a `Result`. This is more readably written as an `if let` statement [INFO] [stdout] --> obj_db/src/database/table.rs:162:40 [INFO] [stdout] | [INFO] [stdout] 162 | Ok(_) => for record in part.query_search_columns(conditions) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 162 | Ok(_) => while let Ok(record) = part.query_search_columns(conditions) { [INFO] [stdout] | ~~~~~~~~~~~~~ ~~~ [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 162 | Ok(_) => if let Ok(record) = part.query_search_columns(conditions) { [INFO] [stdout] | ~~~~~~~~~~ ~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> obj_db/src/database/table.rs:181:13 [INFO] [stdout] | [INFO] [stdout] 181 | part.save(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 181 | let _ = part.save(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQC` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:87:42 [INFO] [stdout] | [INFO] [stdout] 87 | QueryTable::TableQueryCreate(TQC) => TQC.parse(body), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqc` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQR` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:88:40 [INFO] [stdout] | [INFO] [stdout] 88 | QueryTable::TableQueryRead(TQR) => TQR.parse(body), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQU` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:89:42 [INFO] [stdout] | [INFO] [stdout] 89 | QueryTable::TableQueryUpdate(TQU) => TQU.parse(body), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQD` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:90:42 [INFO] [stdout] | [INFO] [stdout] 90 | QueryTable::TableQueryDelete(TQD) => TQD.parse(body), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQC` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:96:42 [INFO] [stdout] | [INFO] [stdout] 96 | QueryTable::TableQueryCreate(TQC) => TQC.result.clone(), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQR` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:97:40 [INFO] [stdout] | [INFO] [stdout] 97 | QueryTable::TableQueryRead(TQR) => TQR.result.clone(), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQU` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:98:42 [INFO] [stdout] | [INFO] [stdout] 98 | QueryTable::TableQueryUpdate(TQU) => TQU.result.clone(), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQD` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:99:42 [INFO] [stdout] | [INFO] [stdout] 99 | QueryTable::TableQueryDelete(TQD) => TQD.result.clone(), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQC` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:105:42 [INFO] [stdout] | [INFO] [stdout] 105 | QueryTable::TableQueryCreate(TQC) => Ok(TQC.table.clone()), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQR` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:106:40 [INFO] [stdout] | [INFO] [stdout] 106 | QueryTable::TableQueryRead(TQR) => Ok(TQR.table.clone()), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQU` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:107:42 [INFO] [stdout] | [INFO] [stdout] 107 | QueryTable::TableQueryUpdate(TQU) => Ok(TQU.table.clone()), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `TQD` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:108:42 [INFO] [stdout] | [INFO] [stdout] 108 | QueryTable::TableQueryDelete(TQD) => Ok(TQD.table.clone()), [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tqd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDCT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:514:53 [INFO] [stdout] | [INFO] [stdout] 514 | ... QueryDatabase::QueryDatabaseCreateTable(QDCT) => match database { Some(db) => QDCT.parse(admin_db, db, body), None => QDCT.result =... [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qdct` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDUT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:515:53 [INFO] [stdout] | [INFO] [stdout] 515 | ... QueryDatabase::QueryDatabaseUpdateTable(QDUT) => match database { Some(db) => QDUT.parse(admin_db, db, body), None => QDUT.result =... [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qdut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDDT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:516:53 [INFO] [stdout] | [INFO] [stdout] 516 | ... QueryDatabase::QueryDatabaseDeleteTable(QDDT) => match database { Some(db) => QDDT.parse(db, body), None => QDDT.result = Err("no d... [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qddt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDIDT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:517:53 [INFO] [stdout] | [INFO] [stdout] 517 | ... QueryDatabase::QueryDatabaseInDevToggle(QDIDT) => match database { Some(db) => QDIDT.run(db), None => QDIDT.result = Err("no db poi... [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `qdidt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDCT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:523:53 [INFO] [stdout] | [INFO] [stdout] 523 | QueryDatabase::QueryDatabaseCreateTable(QDCT) => QDCT.result.clone(), [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qdct` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDUT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:524:53 [INFO] [stdout] | [INFO] [stdout] 524 | QueryDatabase::QueryDatabaseUpdateTable(QDUT) => QDUT.result.clone(), [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qdut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDDT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:525:53 [INFO] [stdout] | [INFO] [stdout] 525 | QueryDatabase::QueryDatabaseDeleteTable(QDDT) => QDDT.result.clone(), [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qddt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDIDT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:526:53 [INFO] [stdout] | [INFO] [stdout] 526 | QueryDatabase::QueryDatabaseInDevToggle(QDIDT) => QDIDT.result.clone(), [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `qdidt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDCT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:532:53 [INFO] [stdout] | [INFO] [stdout] 532 | QueryDatabase::QueryDatabaseCreateTable(QDCT) => QDCT.result = result, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qdct` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDUT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:533:53 [INFO] [stdout] | [INFO] [stdout] 533 | QueryDatabase::QueryDatabaseUpdateTable(QDUT) => QDUT.result = result, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qdut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDDT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:534:53 [INFO] [stdout] | [INFO] [stdout] 534 | QueryDatabase::QueryDatabaseDeleteTable(QDDT) => QDDT.result = result, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `qddt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `QDIDT` should have a snake case name [INFO] [stdout] --> obj_db/src/endpoint/query.rs:535:53 [INFO] [stdout] | [INFO] [stdout] 535 | QueryDatabase::QueryDatabaseInDevToggle(QDIDT) => QDIDT.result = result, [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `qdidt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `msg` is never read [INFO] [stdout] --> api/src/main.rs:34:21 [INFO] [stdout] | [INFO] [stdout] 34 | let mut msg = "message not replaced".to_string(); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> api/src/main.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let mut databases: Arc>>>>> = Arc::new(Mutex::new(vec![Arc::clone(&admin_db)])); [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] --> api/src/main.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | let mut endpoints: Arc>>> = Arc::new(Mutex::new(Endpoint::new_server(admin_db, "ADMIN".to_owned()))); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `endpoints` [INFO] [stdout] --> api/src/main.rs:45:82 [INFO] [stdout] | [INFO] [stdout] 45 | ...tabase<'static>>>>>>, mut endpoints: Arc>>>) -> Result { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_endpoints` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> api/src/main.rs:61:53 [INFO] [stdout] | [INFO] [stdout] 61 | ... Err(e) => panic!("db could not be built from dir") [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> api/src/main.rs:66:41 [INFO] [stdout] | [INFO] [stdout] 66 | ... Err(e) => panic!("mutex poisoned") [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> api/src/main.rs:45:78 [INFO] [stdout] | [INFO] [stdout] 45 | fn build_from_dir(databases: Arc>>>>>, mut endpoints: Arc>>>) -> Result... [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 97 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `msg` is never read [INFO] [stdout] --> api/src/main.rs:34:21 [INFO] [stdout] | [INFO] [stdout] 34 | let mut msg = "message not replaced".to_string(); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> api/src/main.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let mut databases: Arc>>>>> = Arc::new(Mutex::new(vec![Arc::clone(&admin_db)])); [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] --> api/src/main.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | let mut endpoints: Arc>>> = Arc::new(Mutex::new(Endpoint::new_server(admin_db, "ADMIN".to_owned()))); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `endpoints` [INFO] [stdout] --> api/src/main.rs:45:82 [INFO] [stdout] | [INFO] [stdout] 45 | ...tabase<'static>>>>>>, mut endpoints: Arc>>>) -> Result { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_endpoints` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> api/src/main.rs:61:53 [INFO] [stdout] | [INFO] [stdout] 61 | ... Err(e) => panic!("db could not be built from dir") [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> api/src/main.rs:66:41 [INFO] [stdout] | [INFO] [stdout] 66 | ... Err(e) => panic!("mutex poisoned") [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> api/src/main.rs:45:78 [INFO] [stdout] | [INFO] [stdout] 45 | fn build_from_dir(databases: Arc>>>>>, mut endpoints: Arc>>>) -> Result... [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> api/src/main.rs:103:33 [INFO] [stdout] | [INFO] [stdout] 102 | ... _ => e = [e, "runnable is not a query".to_owned()].concat(), [INFO] [stdout] | - matches any value [INFO] [stdout] 103 | ... runnable::Runnable::Script(_) => e = "scripts not yet implemented".to_owned() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> api/src/main.rs:191:33 [INFO] [stdout] | [INFO] [stdout] 191 | ... Err(e) => "matching database could not be accessed do to multithreading blocking".to_owned() [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> api/src/main.rs:268:33 [INFO] [stdout] | [INFO] [stdout] 268 | ... Err(e) => "matching database could not be accessed do to multithreading blocking".to_owned() [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> api/src/main.rs:103:33 [INFO] [stdout] | [INFO] [stdout] 102 | ... _ => e = [e, "runnable is not a query".to_owned()].concat(), [INFO] [stdout] | - matches any value [INFO] [stdout] 103 | ... runnable::Runnable::Script(_) => e = "scripts not yet implemented".to_owned() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> api/src/main.rs:191:33 [INFO] [stdout] | [INFO] [stdout] 191 | ... Err(e) => "matching database could not be accessed do to multithreading blocking".to_owned() [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> api/src/main.rs:268:33 [INFO] [stdout] | [INFO] [stdout] 268 | ... Err(e) => "matching database could not be accessed do to multithreading blocking".to_owned() [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> api/src/main.rs:87:18 [INFO] [stdout] | [INFO] [stdout] 87 | Some(mut new_db_endpoint) => { [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] --> api/src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | build_from_dir(Arc::clone(&databases), Arc::clone(&endpoints)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 16 | let _ = build_from_dir(Arc::clone(&databases), Arc::clone(&endpoints)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 15 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> api/src/main.rs:87:18 [INFO] [stdout] | [INFO] [stdout] 87 | Some(mut new_db_endpoint) => { [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] --> api/src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | build_from_dir(Arc::clone(&databases), Arc::clone(&endpoints)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 16 | let _ = build_from_dir(Arc::clone(&databases), Arc::clone(&endpoints)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 15 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.09s [INFO] running `Command { std: "docker" "inspect" "4cd322dc1a73c0fe70378db3f038adb605cd17753b81862cf0c4d811c3487895", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4cd322dc1a73c0fe70378db3f038adb605cd17753b81862cf0c4d811c3487895", kill_on_drop: false }` [INFO] [stdout] 4cd322dc1a73c0fe70378db3f038adb605cd17753b81862cf0c4d811c3487895