[INFO] updating cached repository kodipe/website [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/kodipe/website [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/kodipe/website" "work/ex/clippy-test-run/sources/stable/gh/kodipe/website"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/kodipe/website'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/kodipe/website" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kodipe/website"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kodipe/website'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 00a5428f80e683e7d50aeff27502c3b20695a8f8 [INFO] sha for GitHub repo kodipe/website: 00a5428f80e683e7d50aeff27502c3b20695a8f8 [INFO] validating manifest of kodipe/website on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of kodipe/website on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing kodipe/website [INFO] finished frobbing kodipe/website [INFO] frobbed toml for kodipe/website written to work/ex/clippy-test-run/sources/stable/gh/kodipe/website/Cargo.toml [INFO] started frobbing kodipe/website [INFO] finished frobbing kodipe/website [INFO] frobbed toml for kodipe/website written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kodipe/website/Cargo.toml [INFO] crate kodipe/website has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting kodipe/website against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/kodipe/website:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 6ad01d56d15ce785c24e36f5bab87f3fa1e429f6580e06d888bd11434f37ed8d [INFO] running `"docker" "start" "-a" "6ad01d56d15ce785c24e36f5bab87f3fa1e429f6580e06d888bd11434f37ed8d"` [INFO] [stderr] Checking app v1.0.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/request.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | method: method, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `method` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/request.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/request.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | headers: headers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `headers` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/request.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | query: query, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `query` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/request.rs:83:13 [INFO] [stderr] | [INFO] [stderr] 83 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/request.rs:84:13 [INFO] [stderr] | [INFO] [stderr] 84 | cookies: cookies [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `cookies` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/response.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | stream: stream [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/static_file.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | mime: mime [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `mime` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dynamic/template.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | content: content, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `content` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/request.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | method: method, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `method` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/request.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/request.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | headers: headers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `headers` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/request.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | query: query, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `query` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/request.rs:83:13 [INFO] [stderr] | [INFO] [stderr] 83 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/request.rs:84:13 [INFO] [stderr] | [INFO] [stderr] 84 | cookies: cookies [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `cookies` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/response.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | stream: stream [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/static_file.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | mime: mime [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `mime` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dynamic/template.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | content: content, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `content` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server/router.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server/router.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | return self.routes.get(path).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.routes.get(path).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/server/url.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / pub mod url { [INFO] [stderr] 2 | | [INFO] [stderr] 3 | | use std::collections::HashMap; [INFO] [stderr] 4 | | use std::str; [INFO] [stderr] ... | [INFO] [stderr] 60 | | [INFO] [stderr] 61 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server/url.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | return String::from(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::from(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dynamic/template.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | return self.content.as_str() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.content.as_str()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/dynamic/template.rs:60:28 [INFO] [stderr] | [INFO] [stderr] 60 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 61 | | if is_token { [INFO] [stderr] 62 | | panic!("Syntax error"); [INFO] [stderr] 63 | | } else { [INFO] [stderr] 64 | | is_token = true; [INFO] [stderr] 65 | | } [INFO] [stderr] 66 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 60 | } else if is_token { [INFO] [stderr] 61 | panic!("Syntax error"); [INFO] [stderr] 62 | } else { [INFO] [stderr] 63 | is_token = true; [INFO] [stderr] 64 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/dynamic/template.rs:79:28 [INFO] [stderr] | [INFO] [stderr] 79 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 80 | | if is_token { [INFO] [stderr] 81 | | is_token = false; [INFO] [stderr] 82 | | [INFO] [stderr] ... | [INFO] [stderr] 109 | | } [INFO] [stderr] 110 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 79 | } else if is_token { [INFO] [stderr] 80 | is_token = false; [INFO] [stderr] 81 | [INFO] [stderr] 82 | { [INFO] [stderr] 83 | let prepared_token = token.clone(); [INFO] [stderr] 84 | if token == "include" { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/dynamic/template.rs:113:21 [INFO] [stderr] | [INFO] [stderr] 113 | / if is_token { [INFO] [stderr] 114 | | if is_token_variables { [INFO] [stderr] 115 | | if is_string { [INFO] [stderr] 116 | | is_string = false; [INFO] [stderr] ... | [INFO] [stderr] 121 | | } [INFO] [stderr] 122 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 113 | if is_token && is_token_variables { [INFO] [stderr] 114 | if is_string { [INFO] [stderr] 115 | is_string = false; [INFO] [stderr] 116 | } else { [INFO] [stderr] 117 | is_string = true; [INFO] [stderr] 118 | token_variables.push(String::new()); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/routes.rs:67:33 [INFO] [stderr] | [INFO] [stderr] 67 | return Ordering::Equal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ordering::Equal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/routes.rs:70:33 [INFO] [stderr] | [INFO] [stderr] 70 | return Ordering::Equal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ordering::Equal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/routes.rs:75:25 [INFO] [stderr] | [INFO] [stderr] 75 | return Ordering::Equal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ordering::Equal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/json/mod.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | mod json; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/database/mod.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | mod database; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/database/database.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Database` [INFO] [stderr] --> src/database/query.rs:1:23 [INFO] [stderr] | [INFO] [stderr] 1 | use super::database::{Database, DatabaseType}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server/router.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server/router.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | return self.routes.get(path).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.routes.get(path).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/server/url.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / pub mod url { [INFO] [stderr] 2 | | [INFO] [stderr] 3 | | use std::collections::HashMap; [INFO] [stderr] 4 | | use std::str; [INFO] [stderr] ... | [INFO] [stderr] 60 | | [INFO] [stderr] 61 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server/url.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | return String::from(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::from(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dynamic/template.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | return self.content.as_str() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.content.as_str()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/dynamic/template.rs:60:28 [INFO] [stderr] | [INFO] [stderr] 60 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 61 | | if is_token { [INFO] [stderr] 62 | | panic!("Syntax error"); [INFO] [stderr] 63 | | } else { [INFO] [stderr] 64 | | is_token = true; [INFO] [stderr] 65 | | } [INFO] [stderr] 66 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 60 | } else if is_token { [INFO] [stderr] 61 | panic!("Syntax error"); [INFO] [stderr] 62 | } else { [INFO] [stderr] 63 | is_token = true; [INFO] [stderr] 64 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/dynamic/template.rs:79:28 [INFO] [stderr] | [INFO] [stderr] 79 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 80 | | if is_token { [INFO] [stderr] 81 | | is_token = false; [INFO] [stderr] 82 | | [INFO] [stderr] ... | [INFO] [stderr] 109 | | } [INFO] [stderr] 110 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 79 | } else if is_token { [INFO] [stderr] 80 | is_token = false; [INFO] [stderr] 81 | [INFO] [stderr] 82 | { [INFO] [stderr] 83 | let prepared_token = token.clone(); [INFO] [stderr] 84 | if token == "include" { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/dynamic/template.rs:113:21 [INFO] [stderr] | [INFO] [stderr] 113 | / if is_token { [INFO] [stderr] 114 | | if is_token_variables { [INFO] [stderr] 115 | | if is_string { [INFO] [stderr] 116 | | is_string = false; [INFO] [stderr] ... | [INFO] [stderr] 121 | | } [INFO] [stderr] 122 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 113 | if is_token && is_token_variables { [INFO] [stderr] 114 | if is_string { [INFO] [stderr] 115 | is_string = false; [INFO] [stderr] 116 | } else { [INFO] [stderr] 117 | is_string = true; [INFO] [stderr] 118 | token_variables.push(String::new()); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/routes.rs:67:33 [INFO] [stderr] | [INFO] [stderr] 67 | return Ordering::Equal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ordering::Equal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/routes.rs:70:33 [INFO] [stderr] | [INFO] [stderr] 70 | return Ordering::Equal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ordering::Equal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/routes.rs:75:25 [INFO] [stderr] | [INFO] [stderr] 75 | return Ordering::Equal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ordering::Equal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/json/mod.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | mod json; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/database/mod.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | mod database; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/database/database.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Database` [INFO] [stderr] --> src/database/query.rs:1:23 [INFO] [stderr] | [INFO] [stderr] 1 | use super::database::{Database, DatabaseType}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `current_level` [INFO] [stderr] --> src/json/json.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | let current_level: Json = Json::Object(HashMap::new()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_current_level` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `parent` [INFO] [stderr] --> src/json/json.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | let parent: &str = "object"; [INFO] [stderr] | ^^^^^^ help: consider using `_parent` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `token_type` [INFO] [stderr] --> src/json/json.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | let token_type: &str = ""; [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_token_type` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/json/json.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | for (i, c) in json.chars().enumerate() { [INFO] [stderr] | ^ help: consider using `_c` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `content_type` [INFO] [stderr] --> src/server/request.rs:88:38 [INFO] [stderr] | [INFO] [stderr] 88 | fn parse_body(body: Vec, content_type: String) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_content_type` instead [INFO] [stderr] [INFO] [stderr] warning: variable `post_id` is assigned to, but never used [INFO] [stderr] --> src/blog/post.rs:69:17 [INFO] [stderr] | [INFO] [stderr] 69 | let mut post_id: u16 = 0; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_post_id` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `post_id` is never read [INFO] [stderr] --> src/blog/post.rs:77:21 [INFO] [stderr] | [INFO] [stderr] 77 | post_id = *id; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/database/database.rs:368:16 [INFO] [stderr] | [INFO] [stderr] 368 | Ok(x) => { [INFO] [stderr] | ^ help: consider using `_x` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/database/database.rs:388:17 [INFO] [stderr] | [INFO] [stderr] 388 | Err(e) => { [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/database/database.rs:404:17 [INFO] [stderr] | [INFO] [stderr] 404 | Err(e) => {} [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/database/database.rs:427:29 [INFO] [stderr] | [INFO] [stderr] 427 | Err(e) => {} [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/database/query.rs:14:22 [INFO] [stderr] | [INFO] [stderr] 14 | filter: |result| { [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/blog/post.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn new(path: PathBuf) -> Post { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `hash_title` [INFO] [stderr] --> src/blog/post.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | pub fn hash_title(title: String) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Bool` [INFO] [stderr] --> src/json/json.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | Bool(bool), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Null` [INFO] [stderr] --> src/json/json.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | Null [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Key` [INFO] [stderr] --> src/json/json.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | Key, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `String` [INFO] [stderr] --> src/json/json.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | String, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Number` [INFO] [stderr] --> src/json/json.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | Number, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Bool` [INFO] [stderr] --> src/json/json.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | Bool, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Array` [INFO] [stderr] --> src/json/json.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | Array, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `val` [INFO] [stderr] --> src/database/database.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn val(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `query` [INFO] [stderr] --> src/database/database.rs:98:5 [INFO] [stderr] | [INFO] [stderr] 98 | pub fn query(&mut self) -> Query { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Query` [INFO] [stderr] --> src/database/query.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub struct Query { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/database/query.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn new(database: &str) -> Query { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `select` [INFO] [stderr] --> src/database/query.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn select(&mut self, table: &str) -> &mut Query { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `filter` [INFO] [stderr] --> src/database/query.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn filter(&mut self, filtering: fn(rows: Vec) -> bool) -> &mut Query { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `execute` [INFO] [stderr] --> src/database/query.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn execute(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/server/request.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | stream.read(&mut buffer).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server/request.rs:37:16 [INFO] [stderr] | [INFO] [stderr] 37 | if entry.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `entry.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: for loop over `re.captures(entry)`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/server/request.rs:41:28 [INFO] [stderr] | [INFO] [stderr] 41 | for cap in re.captures(entry) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::for_loop_over_option)] on by default [INFO] [stderr] = help: consider replacing `for cap in re.captures(entry)` with `if let Some(cap) = re.captures(entry)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/server/request.rs:45:62 [INFO] [stderr] | [INFO] [stderr] 45 | let mut tokens: Vec<&str> = cap[2].split("?").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'?'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you should use the `ends_with` method [INFO] [stderr] --> src/server/request.rs:53:24 [INFO] [stderr] | [INFO] [stderr] 53 | if path.chars().last().unwrap() == '/' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: like this: `path.ends_with('/')` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::chars_last_cmp)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#chars_last_cmp [INFO] [stderr] [INFO] [stderr] error: for loop over `re.captures(entry)`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/server/request.rs:59:28 [INFO] [stderr] | [INFO] [stderr] 59 | for cap in re.captures(entry) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for cap in re.captures(entry)` with `if let Some(cap) = re.captures(entry)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/server/request.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | / match headers.get("content-type") { [INFO] [stderr] 70 | | Some(content_type) => { [INFO] [stderr] 71 | | if content_type == "application/x-www-form-urlencoded" { [INFO] [stderr] 72 | | data = Request::parse_query(&Request::parse_body(body, String::new())); [INFO] [stderr] ... | [INFO] [stderr] 75 | | None => {} [INFO] [stderr] 76 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 69 | if let Some(content_type) = headers.get("content-type") { [INFO] [stderr] 70 | if content_type == "application/x-www-form-urlencoded" { [INFO] [stderr] 71 | data = Request::parse_query(&Request::parse_body(body, String::new())); [INFO] [stderr] 72 | } [INFO] [stderr] 73 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/server/request.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | String::from(body.join("\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `body.join("\n")` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/server/request.rs:94:38 [INFO] [stderr] | [INFO] [stderr] 94 | for param in raw_query.split("&").collect::>() { [INFO] [stderr] | ^^^ help: try using a char instead: `'&'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/server/request.rs:95:54 [INFO] [stderr] | [INFO] [stderr] 95 | let query_param: Vec<&str> = param.split("=").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/server/request.rs:106:54 [INFO] [stderr] | [INFO] [stderr] 106 | let query_param: Vec<&str> = param.split("=").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/server/response.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | self.stream.write(format!("HTTP/1.1 {}\r\n\r\n", error).as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/server/static_file.rs:11:22 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(path: &String) -> StaticFile { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/server/static_file.rs:48:25 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn exists(path: &String) -> bool { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/server/router.rs:19:35 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn check(&mut self, path: &String) -> bool { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/server/router.rs:28:33 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn get(&mut self, path: &String) -> &fn(Request, Response) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/server/router.rs:29:16 [INFO] [stderr] | [INFO] [stderr] 29 | return self.routes.get(path).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.routes[path]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/server/session.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | / match file.write_all(token.as_bytes()) { [INFO] [stderr] 28 | | Err(why) => {panic!("couldn't write: {}", why.description())}, [INFO] [stderr] 29 | | _ => {} [INFO] [stderr] 30 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Err(why) = file.write_all(token.as_bytes()) {panic!("couldn't write: {}", why.description())}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/server/session.rs:42:17 [INFO] [stderr] | [INFO] [stderr] 42 | / match file.read_to_string(&mut session_token) { [INFO] [stderr] 43 | | Err(why) => panic!("couldn't read: {}", why.description()), [INFO] [stderr] 44 | | Ok(_) => {} //print!("contains:\n{}", session_token) [INFO] [stderr] 45 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Err(why) = file.read_to_string(&mut session_token) { panic!("couldn't read: {}", why.description()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/server/session.rs:62:17 [INFO] [stderr] | [INFO] [stderr] 62 | / match file.read_to_string(&mut session_token) { [INFO] [stderr] 63 | | Err(why) => panic!("couldn't read: {}", why.description()), [INFO] [stderr] 64 | | Ok(_) => {} //print!("contains:\n{}", session_token) [INFO] [stderr] 65 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Err(why) = file.read_to_string(&mut session_token) { panic!("couldn't read: {}", why.description()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/server/url.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | / loop { [INFO] [stderr] 13 | | match iterator.next() { [INFO] [stderr] 14 | | Some(x) => { [INFO] [stderr] 15 | | if x == '%' { [INFO] [stderr] ... | [INFO] [stderr] 27 | | } [INFO] [stderr] 28 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(x) = iterator.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/server/url.rs:58:16 [INFO] [stderr] | [INFO] [stderr] 58 | return String::from(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/dynamic/template.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | / match file.read_to_string(&mut content) { [INFO] [stderr] 25 | | Err(error) => panic!("Couldn't read: {}", error), [INFO] [stderr] 26 | | Ok(_) => {} [INFO] [stderr] 27 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Err(error) = file.read_to_string(&mut content) { panic!("Couldn't read: {}", error) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/blog/post.rs:24:49 [INFO] [stderr] | [INFO] [stderr] 24 | let title: Vec<&str> = file_name3.split("_").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'_'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/blog/post.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / match file.read_to_string(&mut content) { [INFO] [stderr] 34 | | Err(error) => panic!("Couldn't read: {}", error), [INFO] [stderr] 35 | | Ok(_) => {} [INFO] [stderr] 36 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Err(error) = file.read_to_string(&mut content) { panic!("Couldn't read: {}", error) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/blog/post.rs:51:27 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn from_db(entry: &Vec) -> Post { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[DatabaseType]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/blog/post.rs:110:23 [INFO] [stderr] | [INFO] [stderr] 110 | content.split(" ").fold(Vec::new(), | mut acc: Vec<&str>, x | { [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/blog/post.rs:113:16 [INFO] [stderr] | [INFO] [stderr] 113 | if acc.len() > 0 && acc.last().unwrap().len() == 1 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!acc.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/blog/post.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | String::from(format!("{:x}", hasher.finish())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{:x}", hasher.finish())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/routes.rs:34:25 [INFO] [stderr] | [INFO] [stderr] 34 | / match value { [INFO] [stderr] 35 | | DatabaseType::Text(inner) => { [INFO] [stderr] 36 | | if i == 1 { [INFO] [stderr] 37 | | title = inner; [INFO] [stderr] ... | [INFO] [stderr] 42 | | _ => {} [INFO] [stderr] 43 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 34 | if let DatabaseType::Text(inner) = value { [INFO] [stderr] 35 | if i == 1 { [INFO] [stderr] 36 | title = inner; [INFO] [stderr] 37 | } else if i == 3 { [INFO] [stderr] 38 | date = inner; [INFO] [stderr] 39 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/routes.rs:101:24 [INFO] [stderr] | [INFO] [stderr] 101 | return format!("{}", post_template.render()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `post_template.render().to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:157:59 [INFO] [stderr] | [INFO] [stderr] 157 | if session_manager::check_credentials(request.data.get("login").unwrap(), request.data.get("password").unwrap()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["login"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:157:95 [INFO] [stderr] | [INFO] [stderr] 157 | if session_manager::check_credentials(request.data.get("login").unwrap(), request.data.get("password").unwrap()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["password"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:169:55 [INFO] [stderr] | [INFO] [stderr] 169 | if session_manager::check_credentials(request.data.get("login").unwrap(), request.data.get("password").unwrap()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["login"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:169:91 [INFO] [stderr] | [INFO] [stderr] 169 | if session_manager::check_credentials(request.data.get("login").unwrap(), request.data.get("password").unwrap()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["password"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:227:41 [INFO] [stderr] | [INFO] [stderr] 227 | request.data.get("title").unwrap().to_string(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["title"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:228:41 [INFO] [stderr] | [INFO] [stderr] 228 | request.data.get("content").unwrap().to_string(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["content"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:229:41 [INFO] [stderr] | [INFO] [stderr] 229 | request.data.get("date").unwrap().to_string() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["date"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:248:41 [INFO] [stderr] | [INFO] [stderr] 248 | request.data.get("title").unwrap().to_string(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["title"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:249:41 [INFO] [stderr] | [INFO] [stderr] 249 | request.data.get("content").unwrap().to_string(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["content"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:250:41 [INFO] [stderr] | [INFO] [stderr] 250 | request.data.get("date").unwrap().to_string() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["date"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/routes.rs:254:45 [INFO] [stderr] | [INFO] [stderr] 254 | / match column { [INFO] [stderr] 255 | | DatabaseType::Autoincrement(id) => { [INFO] [stderr] 256 | | if request.query.get("id").unwrap().parse::().unwrap() == *id { [INFO] [stderr] 257 | | update = true; [INFO] [stderr] ... | [INFO] [stderr] 260 | | _ => {} [INFO] [stderr] 261 | | } [INFO] [stderr] | |_____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 254 | if let DatabaseType::Autoincrement(id) = column { [INFO] [stderr] 255 | if request.query.get("id").unwrap().parse::().unwrap() == *id { [INFO] [stderr] 256 | update = true; [INFO] [stderr] 257 | } [INFO] [stderr] 258 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:256:56 [INFO] [stderr] | [INFO] [stderr] 256 | if request.query.get("id").unwrap().parse::().unwrap() == *id { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.query["id"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/routes.rs:286:45 [INFO] [stderr] | [INFO] [stderr] 286 | / match column { [INFO] [stderr] 287 | | DatabaseType::Autoincrement(id) => { [INFO] [stderr] 288 | | if request.query.get("id").unwrap().parse::().unwrap() == *id { [INFO] [stderr] 289 | | delete = true; [INFO] [stderr] ... | [INFO] [stderr] 292 | | _ => {} [INFO] [stderr] 293 | | } [INFO] [stderr] | |_____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 286 | if let DatabaseType::Autoincrement(id) = column { [INFO] [stderr] 287 | if request.query.get("id").unwrap().parse::().unwrap() == *id { [INFO] [stderr] 288 | delete = true; [INFO] [stderr] 289 | } [INFO] [stderr] 290 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:288:56 [INFO] [stderr] | [INFO] [stderr] 288 | if request.query.get("id").unwrap().parse::().unwrap() == *id { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.query["id"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/json/json.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 16 | / match self { [INFO] [stderr] 17 | | Json::Array(val) => { [INFO] [stderr] 18 | | val.push(new_value); [INFO] [stderr] 19 | | }, [INFO] [stderr] 20 | | _ => {} [INFO] [stderr] 21 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 16 | if let Json::Array(val) = self { [INFO] [stderr] 17 | val.push(new_value); [INFO] [stderr] 18 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/json/json.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | / match self { [INFO] [stderr] 26 | | Json::Object(val) => { [INFO] [stderr] 27 | | val.insert(String::from(key), new_value); [INFO] [stderr] 28 | | }, [INFO] [stderr] 29 | | _ => {} [INFO] [stderr] 30 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 25 | if let Json::Object(val) = self { [INFO] [stderr] 26 | val.insert(String::from(key), new_value); [INFO] [stderr] 27 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/json/json.rs:36:17 [INFO] [stderr] | [INFO] [stderr] 36 | / String::from(format!("\"{}\"", val [INFO] [stderr] 37 | | .replace("\\", "\\\\").replace("\"", "\\\"").replace("\r\n", "\\r\\n") [INFO] [stderr] 38 | | )) [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] help: consider removing `String::from()` [INFO] [stderr] | [INFO] [stderr] 36 | format!("\"{}\"", val [INFO] [stderr] 37 | .replace("\\", "\\\\").replace("\"", "\\\"").replace("\r\n", "\\r\\n") [INFO] [stderr] 38 | ) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/json/json.rs:41:17 [INFO] [stderr] | [INFO] [stderr] 41 | String::from(format!("{}", val)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}", val)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/json/json.rs:44:17 [INFO] [stderr] | [INFO] [stderr] 44 | String::from(format!("{}", val)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}", val)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/database/database.rs:41:12 [INFO] [stderr] | [INFO] [stderr] 41 | if !fs::metadata(database_directory_name).is_ok() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(database_directory_name).is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:69:17 [INFO] [stderr] | [INFO] [stderr] 69 | / match OpenOptions::new().write(true).append(true).open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 70 | | Ok(ref mut file) => { [INFO] [stderr] 71 | | file.write_all(&vec![0, 0, 0]); [INFO] [stderr] 72 | | file.write_all(&vec![columns.len() as u8, 0]); [INFO] [stderr] ... | [INFO] [stderr] 88 | | Err(_) => {} [INFO] [stderr] 89 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 69 | if let Ok(ref mut file) = OpenOptions::new().write(true).append(true).open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 70 | file.write_all(&vec![0, 0, 0]); [INFO] [stderr] 71 | file.write_all(&vec![columns.len() as u8, 0]); [INFO] [stderr] 72 | for column in columns.iter() { [INFO] [stderr] 73 | file.write_all(&column.0.as_bytes()); [INFO] [stderr] 74 | match column.1 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:71:25 [INFO] [stderr] | [INFO] [stderr] 71 | file.write_all(&vec![0, 0, 0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:71:40 [INFO] [stderr] | [INFO] [stderr] 71 | file.write_all(&vec![0, 0, 0]); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: you can use a slice directly: `&[0, 0, 0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:72:25 [INFO] [stderr] | [INFO] [stderr] 72 | file.write_all(&vec![columns.len() as u8, 0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:72:40 [INFO] [stderr] | [INFO] [stderr] 72 | file.write_all(&vec![columns.len() as u8, 0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[columns.len() as u8, 0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:74:29 [INFO] [stderr] | [INFO] [stderr] 74 | file.write_all(&column.0.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:77:37 [INFO] [stderr] | [INFO] [stderr] 77 | file.write_all(&vec![1, 0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:77:52 [INFO] [stderr] | [INFO] [stderr] 77 | file.write_all(&vec![1, 0]); [INFO] [stderr] | ^^^^^^^^^^^ help: you can use a slice directly: `&[1, 0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:80:37 [INFO] [stderr] | [INFO] [stderr] 80 | file.write_all(&vec![2, 0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:80:52 [INFO] [stderr] | [INFO] [stderr] 80 | file.write_all(&vec![2, 0]); [INFO] [stderr] | ^^^^^^^^^^^ help: you can use a slice directly: `&[2, 0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:83:37 [INFO] [stderr] | [INFO] [stderr] 83 | file.write_all(&vec![2, 0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:83:52 [INFO] [stderr] | [INFO] [stderr] 83 | file.write_all(&vec![2, 0]); [INFO] [stderr] | ^^^^^^^^^^^ help: you can use a slice directly: `&[2, 0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:136:9 [INFO] [stderr] | [INFO] [stderr] 136 | / match fs::File::open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 137 | | Ok(handler) => { [INFO] [stderr] 138 | | let mut reader = BufReader::new(handler); [INFO] [stderr] 139 | | let header = Database::get_table_header(&mut reader); [INFO] [stderr] ... | [INFO] [stderr] 197 | | Err(_) => {} [INFO] [stderr] 198 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 136 | if let Ok(handler) = fs::File::open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 137 | let mut reader = BufReader::new(handler); [INFO] [stderr] 138 | let header = Database::get_table_header(&mut reader); [INFO] [stderr] 139 | [INFO] [stderr] 140 | let ai_bytes = vec![ [INFO] [stderr] 141 | ((header.autoincrement + 1) / 256) as u8, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:149:25 [INFO] [stderr] | [INFO] [stderr] 149 | file.write_all(&ai_bytes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:150:25 [INFO] [stderr] | [INFO] [stderr] 150 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:150:40 [INFO] [stderr] | [INFO] [stderr] 150 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:152:25 [INFO] [stderr] | [INFO] [stderr] 152 | file.write_all(&vec![header.columns.len() as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:152:40 [INFO] [stderr] | [INFO] [stderr] 152 | file.write_all(&vec![header.columns.len() as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[header.columns.len() as u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:153:25 [INFO] [stderr] | [INFO] [stderr] 153 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:153:40 [INFO] [stderr] | [INFO] [stderr] 153 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:156:29 [INFO] [stderr] | [INFO] [stderr] 156 | file.write_all(column.0.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:157:29 [INFO] [stderr] | [INFO] [stderr] 157 | file.write_all(&vec![column.1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:157:44 [INFO] [stderr] | [INFO] [stderr] 157 | file.write_all(&vec![column.1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[column.1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:158:29 [INFO] [stderr] | [INFO] [stderr] 158 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:158:44 [INFO] [stderr] | [INFO] [stderr] 158 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:167:49 [INFO] [stderr] | [INFO] [stderr] 167 | / file.write_all(&vec![ [INFO] [stderr] 168 | | (id / 256) as u8, [INFO] [stderr] 169 | | (id % 256) as u8 [INFO] [stderr] 170 | | ]); [INFO] [stderr] | |___________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:167:64 [INFO] [stderr] | [INFO] [stderr] 167 | file.write_all(&vec![ [INFO] [stderr] | ________________________________________________________________^ [INFO] [stderr] 168 | | (id / 256) as u8, [INFO] [stderr] 169 | | (id % 256) as u8 [INFO] [stderr] 170 | | ]); [INFO] [stderr] | |_________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] help: you can use a slice directly [INFO] [stderr] | [INFO] [stderr] 167 | file.write_all(&[(id / 256) as u8, [INFO] [stderr] 168 | (id % 256) as u8]); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:171:49 [INFO] [stderr] | [INFO] [stderr] 171 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:171:64 [INFO] [stderr] | [INFO] [stderr] 171 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:174:49 [INFO] [stderr] | [INFO] [stderr] 174 | file.write_all(value.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:175:49 [INFO] [stderr] | [INFO] [stderr] 175 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:175:64 [INFO] [stderr] | [INFO] [stderr] 175 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:186:25 [INFO] [stderr] | [INFO] [stderr] 186 | file.write_all(&ai_bytes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:187:25 [INFO] [stderr] | [INFO] [stderr] 187 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:187:40 [INFO] [stderr] | [INFO] [stderr] 187 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:190:29 [INFO] [stderr] | [INFO] [stderr] 190 | file.write_all(item.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:191:29 [INFO] [stderr] | [INFO] [stderr] 191 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:191:44 [INFO] [stderr] | [INFO] [stderr] 191 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:200:9 [INFO] [stderr] | [INFO] [stderr] 200 | fs::remove_file(format!("database_{}/{}", self.name, name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:201:9 [INFO] [stderr] | [INFO] [stderr] 201 | fs::rename(format!("database_{}/{}_temp", self.name, name), format!("database_{}/{}", self.name, name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused variable: `current_level` [INFO] [stderr] --> src/json/json.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | let current_level: Json = Json::Object(HashMap::new()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_current_level` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `parent` [INFO] [stderr] --> src/json/json.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | let parent: &str = "object"; [INFO] [stderr] | ^^^^^^ help: consider using `_parent` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `token_type` [INFO] [stderr] --> src/json/json.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | let token_type: &str = ""; [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_token_type` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/json/json.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | for (i, c) in json.chars().enumerate() { [INFO] [stderr] | ^ help: consider using `_c` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `content_type` [INFO] [stderr] --> src/server/request.rs:88:38 [INFO] [stderr] | [INFO] [stderr] 88 | fn parse_body(body: Vec, content_type: String) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_content_type` instead [INFO] [stderr] [INFO] [stderr] warning: variable `post_id` is assigned to, but never used [INFO] [stderr] --> src/blog/post.rs:69:17 [INFO] [stderr] | [INFO] [stderr] 69 | let mut post_id: u16 = 0; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_post_id` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `post_id` is never read [INFO] [stderr] --> src/blog/post.rs:77:21 [INFO] [stderr] | [INFO] [stderr] 77 | post_id = *id; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:207:9 [INFO] [stderr] | [INFO] [stderr] 207 | / match fs::File::open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 208 | | Ok(handler) => { [INFO] [stderr] 209 | | let mut reader = BufReader::new(handler); [INFO] [stderr] 210 | | let header = Database::get_table_header(&mut reader); [INFO] [stderr] ... | [INFO] [stderr] 285 | | Err(_) => {} [INFO] [stderr] 286 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 207 | if let Ok(handler) = fs::File::open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 208 | let mut reader = BufReader::new(handler); [INFO] [stderr] 209 | let header = Database::get_table_header(&mut reader); [INFO] [stderr] 210 | [INFO] [stderr] 211 | let ai_bytes = vec![ [INFO] [stderr] 212 | (header.autoincrement / 256) as u8, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:220:25 [INFO] [stderr] | [INFO] [stderr] 220 | file.write_all(&ai_bytes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:221:25 [INFO] [stderr] | [INFO] [stderr] 221 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:221:40 [INFO] [stderr] | [INFO] [stderr] 221 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:223:25 [INFO] [stderr] | [INFO] [stderr] 223 | file.write_all(&vec![header.columns.len() as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:223:40 [INFO] [stderr] | [INFO] [stderr] 223 | file.write_all(&vec![header.columns.len() as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[header.columns.len() as u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:224:25 [INFO] [stderr] | [INFO] [stderr] 224 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:224:40 [INFO] [stderr] | [INFO] [stderr] 224 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:227:29 [INFO] [stderr] | [INFO] [stderr] 227 | file.write_all(column.0.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:228:29 [INFO] [stderr] | [INFO] [stderr] 228 | file.write_all(&vec![column.1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:228:44 [INFO] [stderr] | [INFO] [stderr] 228 | file.write_all(&vec![column.1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[column.1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:229:29 [INFO] [stderr] | [INFO] [stderr] 229 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:229:44 [INFO] [stderr] | [INFO] [stderr] 229 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:238:45 [INFO] [stderr] | [INFO] [stderr] 238 | / match column { [INFO] [stderr] 239 | | DatabaseType::Autoincrement(id) => { [INFO] [stderr] 240 | | file.write_all(&vec![ [INFO] [stderr] 241 | | (id / 256) as u8, [INFO] [stderr] ... | [INFO] [stderr] 247 | | _ => {} [INFO] [stderr] 248 | | } [INFO] [stderr] | |_____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 238 | if let DatabaseType::Autoincrement(id) = column { [INFO] [stderr] 239 | file.write_all(&vec![ [INFO] [stderr] 240 | (id / 256) as u8, [INFO] [stderr] 241 | (id % 256) as u8 [INFO] [stderr] 242 | ]); [INFO] [stderr] 243 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:240:53 [INFO] [stderr] | [INFO] [stderr] 240 | / file.write_all(&vec![ [INFO] [stderr] 241 | | (id / 256) as u8, [INFO] [stderr] 242 | | (id % 256) as u8 [INFO] [stderr] 243 | | ]); [INFO] [stderr] | |_______________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:240:68 [INFO] [stderr] | [INFO] [stderr] 240 | file.write_all(&vec![ [INFO] [stderr] | ____________________________________________________________________^ [INFO] [stderr] 241 | | (id / 256) as u8, [INFO] [stderr] 242 | | (id % 256) as u8 [INFO] [stderr] 243 | | ]); [INFO] [stderr] | |_____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] help: you can use a slice directly [INFO] [stderr] | [INFO] [stderr] 240 | file.write_all(&[(id / 256) as u8, [INFO] [stderr] 241 | (id % 256) as u8]); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:245:53 [INFO] [stderr] | [INFO] [stderr] 245 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:245:68 [INFO] [stderr] | [INFO] [stderr] 245 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:252:45 [INFO] [stderr] | [INFO] [stderr] 252 | file.write_all(item.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:253:45 [INFO] [stderr] | [INFO] [stderr] 253 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:253:60 [INFO] [stderr] | [INFO] [stderr] 253 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:260:53 [INFO] [stderr] | [INFO] [stderr] 260 | / file.write_all(&vec![ [INFO] [stderr] 261 | | (id / 256) as u8, [INFO] [stderr] 262 | | (id % 256) as u8 [INFO] [stderr] 263 | | ]); [INFO] [stderr] | |_______________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:260:68 [INFO] [stderr] | [INFO] [stderr] 260 | file.write_all(&vec![ [INFO] [stderr] | ____________________________________________________________________^ [INFO] [stderr] 261 | | (id / 256) as u8, [INFO] [stderr] 262 | | (id % 256) as u8 [INFO] [stderr] 263 | | ]); [INFO] [stderr] | |_____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] help: you can use a slice directly [INFO] [stderr] | [INFO] [stderr] 260 | file.write_all(&[(id / 256) as u8, [INFO] [stderr] 261 | (id % 256) as u8]); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:265:53 [INFO] [stderr] | [INFO] [stderr] 265 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:265:68 [INFO] [stderr] | [INFO] [stderr] 265 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:268:53 [INFO] [stderr] | [INFO] [stderr] 268 | file.write_all(value.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:269:53 [INFO] [stderr] | [INFO] [stderr] 269 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:269:68 [INFO] [stderr] | [INFO] [stderr] 269 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:288:9 [INFO] [stderr] | [INFO] [stderr] 288 | fs::remove_file(format!("database_{}/{}", self.name, name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:289:9 [INFO] [stderr] | [INFO] [stderr] 289 | fs::rename(format!("database_{}/{}_temp", self.name, name), format!("database_{}/{}", self.name, name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/database/database.rs:368:16 [INFO] [stderr] | [INFO] [stderr] 368 | Ok(x) => { [INFO] [stderr] | ^ help: consider using `_x` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/database/database.rs:388:17 [INFO] [stderr] | [INFO] [stderr] 388 | Err(e) => { [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/database/database.rs:404:17 [INFO] [stderr] | [INFO] [stderr] 404 | Err(e) => {} [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/database/database.rs:427:29 [INFO] [stderr] | [INFO] [stderr] 427 | Err(e) => {} [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/database/query.rs:14:22 [INFO] [stderr] | [INFO] [stderr] 14 | filter: |result| { [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:295:9 [INFO] [stderr] | [INFO] [stderr] 295 | / match fs::File::open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 296 | | Ok(handler) => { [INFO] [stderr] 297 | | let mut reader = BufReader::new(handler); [INFO] [stderr] 298 | | let header = Database::get_table_header(&mut reader); [INFO] [stderr] ... | [INFO] [stderr] 353 | | Err(_) => {} [INFO] [stderr] 354 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 295 | if let Ok(handler) = fs::File::open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 296 | let mut reader = BufReader::new(handler); [INFO] [stderr] 297 | let header = Database::get_table_header(&mut reader); [INFO] [stderr] 298 | [INFO] [stderr] 299 | let ai_bytes = vec![ [INFO] [stderr] 300 | (header.autoincrement / 256) as u8, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:308:25 [INFO] [stderr] | [INFO] [stderr] 308 | file.write_all(&ai_bytes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:309:25 [INFO] [stderr] | [INFO] [stderr] 309 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:309:40 [INFO] [stderr] | [INFO] [stderr] 309 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:311:25 [INFO] [stderr] | [INFO] [stderr] 311 | file.write_all(&vec![header.columns.len() as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:311:40 [INFO] [stderr] | [INFO] [stderr] 311 | file.write_all(&vec![header.columns.len() as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[header.columns.len() as u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:312:25 [INFO] [stderr] | [INFO] [stderr] 312 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:312:40 [INFO] [stderr] | [INFO] [stderr] 312 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:315:29 [INFO] [stderr] | [INFO] [stderr] 315 | file.write_all(column.0.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:316:29 [INFO] [stderr] | [INFO] [stderr] 316 | file.write_all(&vec![column.1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:316:44 [INFO] [stderr] | [INFO] [stderr] 316 | file.write_all(&vec![column.1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[column.1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:317:29 [INFO] [stderr] | [INFO] [stderr] 317 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:317:44 [INFO] [stderr] | [INFO] [stderr] 317 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:328:53 [INFO] [stderr] | [INFO] [stderr] 328 | / file.write_all(&vec![ [INFO] [stderr] 329 | | (id / 256) as u8, [INFO] [stderr] 330 | | (id % 256) as u8 [INFO] [stderr] 331 | | ]); [INFO] [stderr] | |_______________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:328:68 [INFO] [stderr] | [INFO] [stderr] 328 | file.write_all(&vec![ [INFO] [stderr] | ____________________________________________________________________^ [INFO] [stderr] 329 | | (id / 256) as u8, [INFO] [stderr] 330 | | (id % 256) as u8 [INFO] [stderr] 331 | | ]); [INFO] [stderr] | |_____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] help: you can use a slice directly [INFO] [stderr] | [INFO] [stderr] 328 | file.write_all(&[(id / 256) as u8, [INFO] [stderr] 329 | (id % 256) as u8]); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:333:53 [INFO] [stderr] | [INFO] [stderr] 333 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:333:68 [INFO] [stderr] | [INFO] [stderr] 333 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:336:53 [INFO] [stderr] | [INFO] [stderr] 336 | file.write_all(value.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:337:53 [INFO] [stderr] | [INFO] [stderr] 337 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:337:68 [INFO] [stderr] | [INFO] [stderr] 337 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:356:9 [INFO] [stderr] | [INFO] [stderr] 356 | fs::remove_file(format!("database_{}/{}", self.name, name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:357:9 [INFO] [stderr] | [INFO] [stderr] 357 | fs::rename(format!("database_{}/{}_temp", self.name, name), format!("database_{}/{}", self.name, name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:371:21 [INFO] [stderr] | [INFO] [stderr] 371 | / match reader.read_until(0, &mut buffer) { [INFO] [stderr] 372 | | Ok(_) => {}, [INFO] [stderr] 373 | | Err(_) => { [INFO] [stderr] 374 | | [INFO] [stderr] 375 | | } [INFO] [stderr] 376 | | }; [INFO] [stderr] | |_____________________^ help: try this: `if let Ok(_) = reader.read_until(0, &mut buffer) {}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:379:21 [INFO] [stderr] | [INFO] [stderr] 379 | / match column_type { [INFO] [stderr] 380 | | Some(t) => { [INFO] [stderr] 381 | | columns.push((String::from_utf8(buffer).unwrap(), t)); [INFO] [stderr] 382 | | }, [INFO] [stderr] 383 | | None => {} [INFO] [stderr] 384 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 379 | if let Some(t) = column_type { [INFO] [stderr] 380 | columns.push((String::from_utf8(buffer).unwrap(), t)); [INFO] [stderr] 381 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/database/database.rs:406:9 [INFO] [stderr] | [INFO] [stderr] 406 | (buf[0] as u16) * 256 + (buf[1] as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(buf[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/database/database.rs:406:33 [INFO] [stderr] | [INFO] [stderr] 406 | (buf[0] as u16) * 256 + (buf[1] as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(buf[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/database/database.rs:419:53 [INFO] [stderr] | [INFO] [stderr] 419 | fn get_row(reader: &mut R, columns: &Vec<(String, u8)>) -> Result, String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[(String, u8)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: literal out of range for u8 [INFO] [stderr] --> src/database/database.rs:429:68 [INFO] [stderr] | [INFO] [stderr] 429 | row.push(DatabaseType::Autoincrement((buf[0] * 256 + buf[1]).into())); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(overflowing_literals)] on by default [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:433:21 [INFO] [stderr] | [INFO] [stderr] 433 | / match reader.read_until(0, &mut buffer) { [INFO] [stderr] 434 | | Ok(x) => { [INFO] [stderr] 435 | | if x == 0 { [INFO] [stderr] 436 | | return Result::Err(String::from("End of file")); [INFO] [stderr] ... | [INFO] [stderr] 439 | | Err(_) => {} [INFO] [stderr] 440 | | }; [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 433 | if let Ok(x) = reader.read_until(0, &mut buffer) { [INFO] [stderr] 434 | if x == 0 { [INFO] [stderr] 435 | return Result::Err(String::from("End of file")); [INFO] [stderr] 436 | } [INFO] [stderr] 437 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `app`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/blog/post.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn new(path: PathBuf) -> Post { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `hash_title` [INFO] [stderr] --> src/blog/post.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | pub fn hash_title(title: String) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Bool` [INFO] [stderr] --> src/json/json.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | Bool(bool), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Null` [INFO] [stderr] --> src/json/json.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | Null [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Key` [INFO] [stderr] --> src/json/json.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | Key, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `String` [INFO] [stderr] --> src/json/json.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | String, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Number` [INFO] [stderr] --> src/json/json.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | Number, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Bool` [INFO] [stderr] --> src/json/json.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | Bool, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Array` [INFO] [stderr] --> src/json/json.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | Array, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `val` [INFO] [stderr] --> src/database/database.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn val(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `query` [INFO] [stderr] --> src/database/database.rs:98:5 [INFO] [stderr] | [INFO] [stderr] 98 | pub fn query(&mut self) -> Query { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Query` [INFO] [stderr] --> src/database/query.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub struct Query { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/database/query.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn new(database: &str) -> Query { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `select` [INFO] [stderr] --> src/database/query.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn select(&mut self, table: &str) -> &mut Query { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `filter` [INFO] [stderr] --> src/database/query.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn filter(&mut self, filtering: fn(rows: Vec) -> bool) -> &mut Query { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `execute` [INFO] [stderr] --> src/database/query.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn execute(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/server/request.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | stream.read(&mut buffer).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server/request.rs:37:16 [INFO] [stderr] | [INFO] [stderr] 37 | if entry.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `entry.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: for loop over `re.captures(entry)`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/server/request.rs:41:28 [INFO] [stderr] | [INFO] [stderr] 41 | for cap in re.captures(entry) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::for_loop_over_option)] on by default [INFO] [stderr] = help: consider replacing `for cap in re.captures(entry)` with `if let Some(cap) = re.captures(entry)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/server/request.rs:45:62 [INFO] [stderr] | [INFO] [stderr] 45 | let mut tokens: Vec<&str> = cap[2].split("?").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'?'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you should use the `ends_with` method [INFO] [stderr] --> src/server/request.rs:53:24 [INFO] [stderr] | [INFO] [stderr] 53 | if path.chars().last().unwrap() == '/' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: like this: `path.ends_with('/')` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::chars_last_cmp)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#chars_last_cmp [INFO] [stderr] [INFO] [stderr] error: for loop over `re.captures(entry)`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/server/request.rs:59:28 [INFO] [stderr] | [INFO] [stderr] 59 | for cap in re.captures(entry) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for cap in re.captures(entry)` with `if let Some(cap) = re.captures(entry)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/server/request.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | / match headers.get("content-type") { [INFO] [stderr] 70 | | Some(content_type) => { [INFO] [stderr] 71 | | if content_type == "application/x-www-form-urlencoded" { [INFO] [stderr] 72 | | data = Request::parse_query(&Request::parse_body(body, String::new())); [INFO] [stderr] ... | [INFO] [stderr] 75 | | None => {} [INFO] [stderr] 76 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 69 | if let Some(content_type) = headers.get("content-type") { [INFO] [stderr] 70 | if content_type == "application/x-www-form-urlencoded" { [INFO] [stderr] 71 | data = Request::parse_query(&Request::parse_body(body, String::new())); [INFO] [stderr] 72 | } [INFO] [stderr] 73 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/server/request.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | String::from(body.join("\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `body.join("\n")` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/server/request.rs:94:38 [INFO] [stderr] | [INFO] [stderr] 94 | for param in raw_query.split("&").collect::>() { [INFO] [stderr] | ^^^ help: try using a char instead: `'&'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/server/request.rs:95:54 [INFO] [stderr] | [INFO] [stderr] 95 | let query_param: Vec<&str> = param.split("=").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/server/request.rs:106:54 [INFO] [stderr] | [INFO] [stderr] 106 | let query_param: Vec<&str> = param.split("=").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/server/response.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | self.stream.write(format!("HTTP/1.1 {}\r\n\r\n", error).as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/server/static_file.rs:11:22 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(path: &String) -> StaticFile { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/server/static_file.rs:48:25 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn exists(path: &String) -> bool { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/server/router.rs:19:35 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn check(&mut self, path: &String) -> bool { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/server/router.rs:28:33 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn get(&mut self, path: &String) -> &fn(Request, Response) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/server/router.rs:29:16 [INFO] [stderr] | [INFO] [stderr] 29 | return self.routes.get(path).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.routes[path]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/server/session.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | / match file.write_all(token.as_bytes()) { [INFO] [stderr] 28 | | Err(why) => {panic!("couldn't write: {}", why.description())}, [INFO] [stderr] 29 | | _ => {} [INFO] [stderr] 30 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Err(why) = file.write_all(token.as_bytes()) {panic!("couldn't write: {}", why.description())}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/server/session.rs:42:17 [INFO] [stderr] | [INFO] [stderr] 42 | / match file.read_to_string(&mut session_token) { [INFO] [stderr] 43 | | Err(why) => panic!("couldn't read: {}", why.description()), [INFO] [stderr] 44 | | Ok(_) => {} //print!("contains:\n{}", session_token) [INFO] [stderr] 45 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Err(why) = file.read_to_string(&mut session_token) { panic!("couldn't read: {}", why.description()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/server/session.rs:62:17 [INFO] [stderr] | [INFO] [stderr] 62 | / match file.read_to_string(&mut session_token) { [INFO] [stderr] 63 | | Err(why) => panic!("couldn't read: {}", why.description()), [INFO] [stderr] 64 | | Ok(_) => {} //print!("contains:\n{}", session_token) [INFO] [stderr] 65 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Err(why) = file.read_to_string(&mut session_token) { panic!("couldn't read: {}", why.description()) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/server/url.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | / loop { [INFO] [stderr] 13 | | match iterator.next() { [INFO] [stderr] 14 | | Some(x) => { [INFO] [stderr] 15 | | if x == '%' { [INFO] [stderr] ... | [INFO] [stderr] 27 | | } [INFO] [stderr] 28 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(x) = iterator.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/server/url.rs:58:16 [INFO] [stderr] | [INFO] [stderr] 58 | return String::from(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/dynamic/template.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | / match file.read_to_string(&mut content) { [INFO] [stderr] 25 | | Err(error) => panic!("Couldn't read: {}", error), [INFO] [stderr] 26 | | Ok(_) => {} [INFO] [stderr] 27 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Err(error) = file.read_to_string(&mut content) { panic!("Couldn't read: {}", error) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/blog/post.rs:24:49 [INFO] [stderr] | [INFO] [stderr] 24 | let title: Vec<&str> = file_name3.split("_").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `'_'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/blog/post.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / match file.read_to_string(&mut content) { [INFO] [stderr] 34 | | Err(error) => panic!("Couldn't read: {}", error), [INFO] [stderr] 35 | | Ok(_) => {} [INFO] [stderr] 36 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Err(error) = file.read_to_string(&mut content) { panic!("Couldn't read: {}", error) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/blog/post.rs:51:27 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn from_db(entry: &Vec) -> Post { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[DatabaseType]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/blog/post.rs:110:23 [INFO] [stderr] | [INFO] [stderr] 110 | content.split(" ").fold(Vec::new(), | mut acc: Vec<&str>, x | { [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/blog/post.rs:113:16 [INFO] [stderr] | [INFO] [stderr] 113 | if acc.len() > 0 && acc.last().unwrap().len() == 1 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!acc.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/blog/post.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | String::from(format!("{:x}", hasher.finish())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{:x}", hasher.finish())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/routes.rs:34:25 [INFO] [stderr] | [INFO] [stderr] 34 | / match value { [INFO] [stderr] 35 | | DatabaseType::Text(inner) => { [INFO] [stderr] 36 | | if i == 1 { [INFO] [stderr] 37 | | title = inner; [INFO] [stderr] ... | [INFO] [stderr] 42 | | _ => {} [INFO] [stderr] 43 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 34 | if let DatabaseType::Text(inner) = value { [INFO] [stderr] 35 | if i == 1 { [INFO] [stderr] 36 | title = inner; [INFO] [stderr] 37 | } else if i == 3 { [INFO] [stderr] 38 | date = inner; [INFO] [stderr] 39 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/routes.rs:101:24 [INFO] [stderr] | [INFO] [stderr] 101 | return format!("{}", post_template.render()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `post_template.render().to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:157:59 [INFO] [stderr] | [INFO] [stderr] 157 | if session_manager::check_credentials(request.data.get("login").unwrap(), request.data.get("password").unwrap()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["login"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:157:95 [INFO] [stderr] | [INFO] [stderr] 157 | if session_manager::check_credentials(request.data.get("login").unwrap(), request.data.get("password").unwrap()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["password"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:169:55 [INFO] [stderr] | [INFO] [stderr] 169 | if session_manager::check_credentials(request.data.get("login").unwrap(), request.data.get("password").unwrap()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["login"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:169:91 [INFO] [stderr] | [INFO] [stderr] 169 | if session_manager::check_credentials(request.data.get("login").unwrap(), request.data.get("password").unwrap()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["password"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:227:41 [INFO] [stderr] | [INFO] [stderr] 227 | request.data.get("title").unwrap().to_string(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["title"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:228:41 [INFO] [stderr] | [INFO] [stderr] 228 | request.data.get("content").unwrap().to_string(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["content"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:229:41 [INFO] [stderr] | [INFO] [stderr] 229 | request.data.get("date").unwrap().to_string() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["date"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:248:41 [INFO] [stderr] | [INFO] [stderr] 248 | request.data.get("title").unwrap().to_string(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["title"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:249:41 [INFO] [stderr] | [INFO] [stderr] 249 | request.data.get("content").unwrap().to_string(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["content"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:250:41 [INFO] [stderr] | [INFO] [stderr] 250 | request.data.get("date").unwrap().to_string() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.data["date"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/routes.rs:254:45 [INFO] [stderr] | [INFO] [stderr] 254 | / match column { [INFO] [stderr] 255 | | DatabaseType::Autoincrement(id) => { [INFO] [stderr] 256 | | if request.query.get("id").unwrap().parse::().unwrap() == *id { [INFO] [stderr] 257 | | update = true; [INFO] [stderr] ... | [INFO] [stderr] 260 | | _ => {} [INFO] [stderr] 261 | | } [INFO] [stderr] | |_____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 254 | if let DatabaseType::Autoincrement(id) = column { [INFO] [stderr] 255 | if request.query.get("id").unwrap().parse::().unwrap() == *id { [INFO] [stderr] 256 | update = true; [INFO] [stderr] 257 | } [INFO] [stderr] 258 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:256:56 [INFO] [stderr] | [INFO] [stderr] 256 | if request.query.get("id").unwrap().parse::().unwrap() == *id { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.query["id"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/routes.rs:286:45 [INFO] [stderr] | [INFO] [stderr] 286 | / match column { [INFO] [stderr] 287 | | DatabaseType::Autoincrement(id) => { [INFO] [stderr] 288 | | if request.query.get("id").unwrap().parse::().unwrap() == *id { [INFO] [stderr] 289 | | delete = true; [INFO] [stderr] ... | [INFO] [stderr] 292 | | _ => {} [INFO] [stderr] 293 | | } [INFO] [stderr] | |_____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 286 | if let DatabaseType::Autoincrement(id) = column { [INFO] [stderr] 287 | if request.query.get("id").unwrap().parse::().unwrap() == *id { [INFO] [stderr] 288 | delete = true; [INFO] [stderr] 289 | } [INFO] [stderr] 290 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/routes.rs:288:56 [INFO] [stderr] | [INFO] [stderr] 288 | if request.query.get("id").unwrap().parse::().unwrap() == *id { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&request.query["id"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/json/json.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 16 | / match self { [INFO] [stderr] 17 | | Json::Array(val) => { [INFO] [stderr] 18 | | val.push(new_value); [INFO] [stderr] 19 | | }, [INFO] [stderr] 20 | | _ => {} [INFO] [stderr] 21 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 16 | if let Json::Array(val) = self { [INFO] [stderr] 17 | val.push(new_value); [INFO] [stderr] 18 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/json/json.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | / match self { [INFO] [stderr] 26 | | Json::Object(val) => { [INFO] [stderr] 27 | | val.insert(String::from(key), new_value); [INFO] [stderr] 28 | | }, [INFO] [stderr] 29 | | _ => {} [INFO] [stderr] 30 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 25 | if let Json::Object(val) = self { [INFO] [stderr] 26 | val.insert(String::from(key), new_value); [INFO] [stderr] 27 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/json/json.rs:36:17 [INFO] [stderr] | [INFO] [stderr] 36 | / String::from(format!("\"{}\"", val [INFO] [stderr] 37 | | .replace("\\", "\\\\").replace("\"", "\\\"").replace("\r\n", "\\r\\n") [INFO] [stderr] 38 | | )) [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] help: consider removing `String::from()` [INFO] [stderr] | [INFO] [stderr] 36 | format!("\"{}\"", val [INFO] [stderr] 37 | .replace("\\", "\\\\").replace("\"", "\\\"").replace("\r\n", "\\r\\n") [INFO] [stderr] 38 | ) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/json/json.rs:41:17 [INFO] [stderr] | [INFO] [stderr] 41 | String::from(format!("{}", val)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}", val)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/json/json.rs:44:17 [INFO] [stderr] | [INFO] [stderr] 44 | String::from(format!("{}", val)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}", val)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/database/database.rs:41:12 [INFO] [stderr] | [INFO] [stderr] 41 | if !fs::metadata(database_directory_name).is_ok() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(database_directory_name).is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:69:17 [INFO] [stderr] | [INFO] [stderr] 69 | / match OpenOptions::new().write(true).append(true).open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 70 | | Ok(ref mut file) => { [INFO] [stderr] 71 | | file.write_all(&vec![0, 0, 0]); [INFO] [stderr] 72 | | file.write_all(&vec![columns.len() as u8, 0]); [INFO] [stderr] ... | [INFO] [stderr] 88 | | Err(_) => {} [INFO] [stderr] 89 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 69 | if let Ok(ref mut file) = OpenOptions::new().write(true).append(true).open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 70 | file.write_all(&vec![0, 0, 0]); [INFO] [stderr] 71 | file.write_all(&vec![columns.len() as u8, 0]); [INFO] [stderr] 72 | for column in columns.iter() { [INFO] [stderr] 73 | file.write_all(&column.0.as_bytes()); [INFO] [stderr] 74 | match column.1 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:71:25 [INFO] [stderr] | [INFO] [stderr] 71 | file.write_all(&vec![0, 0, 0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:71:40 [INFO] [stderr] | [INFO] [stderr] 71 | file.write_all(&vec![0, 0, 0]); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: you can use a slice directly: `&[0, 0, 0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:72:25 [INFO] [stderr] | [INFO] [stderr] 72 | file.write_all(&vec![columns.len() as u8, 0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:72:40 [INFO] [stderr] | [INFO] [stderr] 72 | file.write_all(&vec![columns.len() as u8, 0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[columns.len() as u8, 0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:74:29 [INFO] [stderr] | [INFO] [stderr] 74 | file.write_all(&column.0.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:77:37 [INFO] [stderr] | [INFO] [stderr] 77 | file.write_all(&vec![1, 0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:77:52 [INFO] [stderr] | [INFO] [stderr] 77 | file.write_all(&vec![1, 0]); [INFO] [stderr] | ^^^^^^^^^^^ help: you can use a slice directly: `&[1, 0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:80:37 [INFO] [stderr] | [INFO] [stderr] 80 | file.write_all(&vec![2, 0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:80:52 [INFO] [stderr] | [INFO] [stderr] 80 | file.write_all(&vec![2, 0]); [INFO] [stderr] | ^^^^^^^^^^^ help: you can use a slice directly: `&[2, 0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:83:37 [INFO] [stderr] | [INFO] [stderr] 83 | file.write_all(&vec![2, 0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:83:52 [INFO] [stderr] | [INFO] [stderr] 83 | file.write_all(&vec![2, 0]); [INFO] [stderr] | ^^^^^^^^^^^ help: you can use a slice directly: `&[2, 0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:136:9 [INFO] [stderr] | [INFO] [stderr] 136 | / match fs::File::open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 137 | | Ok(handler) => { [INFO] [stderr] 138 | | let mut reader = BufReader::new(handler); [INFO] [stderr] 139 | | let header = Database::get_table_header(&mut reader); [INFO] [stderr] ... | [INFO] [stderr] 197 | | Err(_) => {} [INFO] [stderr] 198 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 136 | if let Ok(handler) = fs::File::open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 137 | let mut reader = BufReader::new(handler); [INFO] [stderr] 138 | let header = Database::get_table_header(&mut reader); [INFO] [stderr] 139 | [INFO] [stderr] 140 | let ai_bytes = vec![ [INFO] [stderr] 141 | ((header.autoincrement + 1) / 256) as u8, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:149:25 [INFO] [stderr] | [INFO] [stderr] 149 | file.write_all(&ai_bytes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:150:25 [INFO] [stderr] | [INFO] [stderr] 150 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:150:40 [INFO] [stderr] | [INFO] [stderr] 150 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:152:25 [INFO] [stderr] | [INFO] [stderr] 152 | file.write_all(&vec![header.columns.len() as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:152:40 [INFO] [stderr] | [INFO] [stderr] 152 | file.write_all(&vec![header.columns.len() as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[header.columns.len() as u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:153:25 [INFO] [stderr] | [INFO] [stderr] 153 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:153:40 [INFO] [stderr] | [INFO] [stderr] 153 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:156:29 [INFO] [stderr] | [INFO] [stderr] 156 | file.write_all(column.0.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:157:29 [INFO] [stderr] | [INFO] [stderr] 157 | file.write_all(&vec![column.1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:157:44 [INFO] [stderr] | [INFO] [stderr] 157 | file.write_all(&vec![column.1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[column.1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:158:29 [INFO] [stderr] | [INFO] [stderr] 158 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:158:44 [INFO] [stderr] | [INFO] [stderr] 158 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:167:49 [INFO] [stderr] | [INFO] [stderr] 167 | / file.write_all(&vec![ [INFO] [stderr] 168 | | (id / 256) as u8, [INFO] [stderr] 169 | | (id % 256) as u8 [INFO] [stderr] 170 | | ]); [INFO] [stderr] | |___________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:167:64 [INFO] [stderr] | [INFO] [stderr] 167 | file.write_all(&vec![ [INFO] [stderr] | ________________________________________________________________^ [INFO] [stderr] 168 | | (id / 256) as u8, [INFO] [stderr] 169 | | (id % 256) as u8 [INFO] [stderr] 170 | | ]); [INFO] [stderr] | |_________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] help: you can use a slice directly [INFO] [stderr] | [INFO] [stderr] 167 | file.write_all(&[(id / 256) as u8, [INFO] [stderr] 168 | (id % 256) as u8]); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:171:49 [INFO] [stderr] | [INFO] [stderr] 171 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:171:64 [INFO] [stderr] | [INFO] [stderr] 171 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:174:49 [INFO] [stderr] | [INFO] [stderr] 174 | file.write_all(value.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:175:49 [INFO] [stderr] | [INFO] [stderr] 175 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:175:64 [INFO] [stderr] | [INFO] [stderr] 175 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:186:25 [INFO] [stderr] | [INFO] [stderr] 186 | file.write_all(&ai_bytes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:187:25 [INFO] [stderr] | [INFO] [stderr] 187 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:187:40 [INFO] [stderr] | [INFO] [stderr] 187 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:190:29 [INFO] [stderr] | [INFO] [stderr] 190 | file.write_all(item.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:191:29 [INFO] [stderr] | [INFO] [stderr] 191 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:191:44 [INFO] [stderr] | [INFO] [stderr] 191 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:200:9 [INFO] [stderr] | [INFO] [stderr] 200 | fs::remove_file(format!("database_{}/{}", self.name, name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:201:9 [INFO] [stderr] | [INFO] [stderr] 201 | fs::rename(format!("database_{}/{}_temp", self.name, name), format!("database_{}/{}", self.name, name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:207:9 [INFO] [stderr] | [INFO] [stderr] 207 | / match fs::File::open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 208 | | Ok(handler) => { [INFO] [stderr] 209 | | let mut reader = BufReader::new(handler); [INFO] [stderr] 210 | | let header = Database::get_table_header(&mut reader); [INFO] [stderr] ... | [INFO] [stderr] 285 | | Err(_) => {} [INFO] [stderr] 286 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 207 | if let Ok(handler) = fs::File::open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 208 | let mut reader = BufReader::new(handler); [INFO] [stderr] 209 | let header = Database::get_table_header(&mut reader); [INFO] [stderr] 210 | [INFO] [stderr] 211 | let ai_bytes = vec![ [INFO] [stderr] 212 | (header.autoincrement / 256) as u8, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:220:25 [INFO] [stderr] | [INFO] [stderr] 220 | file.write_all(&ai_bytes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:221:25 [INFO] [stderr] | [INFO] [stderr] 221 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:221:40 [INFO] [stderr] | [INFO] [stderr] 221 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:223:25 [INFO] [stderr] | [INFO] [stderr] 223 | file.write_all(&vec![header.columns.len() as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:223:40 [INFO] [stderr] | [INFO] [stderr] 223 | file.write_all(&vec![header.columns.len() as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[header.columns.len() as u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:224:25 [INFO] [stderr] | [INFO] [stderr] 224 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:224:40 [INFO] [stderr] | [INFO] [stderr] 224 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:227:29 [INFO] [stderr] | [INFO] [stderr] 227 | file.write_all(column.0.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:228:29 [INFO] [stderr] | [INFO] [stderr] 228 | file.write_all(&vec![column.1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:228:44 [INFO] [stderr] | [INFO] [stderr] 228 | file.write_all(&vec![column.1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[column.1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:229:29 [INFO] [stderr] | [INFO] [stderr] 229 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:229:44 [INFO] [stderr] | [INFO] [stderr] 229 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:238:45 [INFO] [stderr] | [INFO] [stderr] 238 | / match column { [INFO] [stderr] 239 | | DatabaseType::Autoincrement(id) => { [INFO] [stderr] 240 | | file.write_all(&vec![ [INFO] [stderr] 241 | | (id / 256) as u8, [INFO] [stderr] ... | [INFO] [stderr] 247 | | _ => {} [INFO] [stderr] 248 | | } [INFO] [stderr] | |_____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 238 | if let DatabaseType::Autoincrement(id) = column { [INFO] [stderr] 239 | file.write_all(&vec![ [INFO] [stderr] 240 | (id / 256) as u8, [INFO] [stderr] 241 | (id % 256) as u8 [INFO] [stderr] 242 | ]); [INFO] [stderr] 243 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:240:53 [INFO] [stderr] | [INFO] [stderr] 240 | / file.write_all(&vec![ [INFO] [stderr] 241 | | (id / 256) as u8, [INFO] [stderr] 242 | | (id % 256) as u8 [INFO] [stderr] 243 | | ]); [INFO] [stderr] | |_______________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:240:68 [INFO] [stderr] | [INFO] [stderr] 240 | file.write_all(&vec![ [INFO] [stderr] | ____________________________________________________________________^ [INFO] [stderr] 241 | | (id / 256) as u8, [INFO] [stderr] 242 | | (id % 256) as u8 [INFO] [stderr] 243 | | ]); [INFO] [stderr] | |_____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] help: you can use a slice directly [INFO] [stderr] | [INFO] [stderr] 240 | file.write_all(&[(id / 256) as u8, [INFO] [stderr] 241 | (id % 256) as u8]); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:245:53 [INFO] [stderr] | [INFO] [stderr] 245 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:245:68 [INFO] [stderr] | [INFO] [stderr] 245 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:252:45 [INFO] [stderr] | [INFO] [stderr] 252 | file.write_all(item.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:253:45 [INFO] [stderr] | [INFO] [stderr] 253 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:253:60 [INFO] [stderr] | [INFO] [stderr] 253 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:260:53 [INFO] [stderr] | [INFO] [stderr] 260 | / file.write_all(&vec![ [INFO] [stderr] 261 | | (id / 256) as u8, [INFO] [stderr] 262 | | (id % 256) as u8 [INFO] [stderr] 263 | | ]); [INFO] [stderr] | |_______________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:260:68 [INFO] [stderr] | [INFO] [stderr] 260 | file.write_all(&vec![ [INFO] [stderr] | ____________________________________________________________________^ [INFO] [stderr] 261 | | (id / 256) as u8, [INFO] [stderr] 262 | | (id % 256) as u8 [INFO] [stderr] 263 | | ]); [INFO] [stderr] | |_____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] help: you can use a slice directly [INFO] [stderr] | [INFO] [stderr] 260 | file.write_all(&[(id / 256) as u8, [INFO] [stderr] 261 | (id % 256) as u8]); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:265:53 [INFO] [stderr] | [INFO] [stderr] 265 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:265:68 [INFO] [stderr] | [INFO] [stderr] 265 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:268:53 [INFO] [stderr] | [INFO] [stderr] 268 | file.write_all(value.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:269:53 [INFO] [stderr] | [INFO] [stderr] 269 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:269:68 [INFO] [stderr] | [INFO] [stderr] 269 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:288:9 [INFO] [stderr] | [INFO] [stderr] 288 | fs::remove_file(format!("database_{}/{}", self.name, name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:289:9 [INFO] [stderr] | [INFO] [stderr] 289 | fs::rename(format!("database_{}/{}_temp", self.name, name), format!("database_{}/{}", self.name, name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:295:9 [INFO] [stderr] | [INFO] [stderr] 295 | / match fs::File::open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 296 | | Ok(handler) => { [INFO] [stderr] 297 | | let mut reader = BufReader::new(handler); [INFO] [stderr] 298 | | let header = Database::get_table_header(&mut reader); [INFO] [stderr] ... | [INFO] [stderr] 353 | | Err(_) => {} [INFO] [stderr] 354 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 295 | if let Ok(handler) = fs::File::open(format!("database_{}/{}", self.name, name)) { [INFO] [stderr] 296 | let mut reader = BufReader::new(handler); [INFO] [stderr] 297 | let header = Database::get_table_header(&mut reader); [INFO] [stderr] 298 | [INFO] [stderr] 299 | let ai_bytes = vec![ [INFO] [stderr] 300 | (header.autoincrement / 256) as u8, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:308:25 [INFO] [stderr] | [INFO] [stderr] 308 | file.write_all(&ai_bytes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:309:25 [INFO] [stderr] | [INFO] [stderr] 309 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:309:40 [INFO] [stderr] | [INFO] [stderr] 309 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:311:25 [INFO] [stderr] | [INFO] [stderr] 311 | file.write_all(&vec![header.columns.len() as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:311:40 [INFO] [stderr] | [INFO] [stderr] 311 | file.write_all(&vec![header.columns.len() as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[header.columns.len() as u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:312:25 [INFO] [stderr] | [INFO] [stderr] 312 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:312:40 [INFO] [stderr] | [INFO] [stderr] 312 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:315:29 [INFO] [stderr] | [INFO] [stderr] 315 | file.write_all(column.0.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:316:29 [INFO] [stderr] | [INFO] [stderr] 316 | file.write_all(&vec![column.1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:316:44 [INFO] [stderr] | [INFO] [stderr] 316 | file.write_all(&vec![column.1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[column.1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:317:29 [INFO] [stderr] | [INFO] [stderr] 317 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:317:44 [INFO] [stderr] | [INFO] [stderr] 317 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:328:53 [INFO] [stderr] | [INFO] [stderr] 328 | / file.write_all(&vec![ [INFO] [stderr] 329 | | (id / 256) as u8, [INFO] [stderr] 330 | | (id % 256) as u8 [INFO] [stderr] 331 | | ]); [INFO] [stderr] | |_______________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:328:68 [INFO] [stderr] | [INFO] [stderr] 328 | file.write_all(&vec![ [INFO] [stderr] | ____________________________________________________________________^ [INFO] [stderr] 329 | | (id / 256) as u8, [INFO] [stderr] 330 | | (id % 256) as u8 [INFO] [stderr] 331 | | ]); [INFO] [stderr] | |_____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] help: you can use a slice directly [INFO] [stderr] | [INFO] [stderr] 328 | file.write_all(&[(id / 256) as u8, [INFO] [stderr] 329 | (id % 256) as u8]); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:333:53 [INFO] [stderr] | [INFO] [stderr] 333 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:333:68 [INFO] [stderr] | [INFO] [stderr] 333 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:336:53 [INFO] [stderr] | [INFO] [stderr] 336 | file.write_all(value.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:337:53 [INFO] [stderr] | [INFO] [stderr] 337 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/database/database.rs:337:68 [INFO] [stderr] | [INFO] [stderr] 337 | file.write_all(&vec![0]); [INFO] [stderr] | ^^^^^^^^ help: you can use a slice directly: `&[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:356:9 [INFO] [stderr] | [INFO] [stderr] 356 | fs::remove_file(format!("database_{}/{}", self.name, name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/database/database.rs:357:9 [INFO] [stderr] | [INFO] [stderr] 357 | fs::rename(format!("database_{}/{}_temp", self.name, name), format!("database_{}/{}", self.name, name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:371:21 [INFO] [stderr] | [INFO] [stderr] 371 | / match reader.read_until(0, &mut buffer) { [INFO] [stderr] 372 | | Ok(_) => {}, [INFO] [stderr] 373 | | Err(_) => { [INFO] [stderr] 374 | | [INFO] [stderr] 375 | | } [INFO] [stderr] 376 | | }; [INFO] [stderr] | |_____________________^ help: try this: `if let Ok(_) = reader.read_until(0, &mut buffer) {}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:379:21 [INFO] [stderr] | [INFO] [stderr] 379 | / match column_type { [INFO] [stderr] 380 | | Some(t) => { [INFO] [stderr] 381 | | columns.push((String::from_utf8(buffer).unwrap(), t)); [INFO] [stderr] 382 | | }, [INFO] [stderr] 383 | | None => {} [INFO] [stderr] 384 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 379 | if let Some(t) = column_type { [INFO] [stderr] 380 | columns.push((String::from_utf8(buffer).unwrap(), t)); [INFO] [stderr] 381 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/database/database.rs:406:9 [INFO] [stderr] | [INFO] [stderr] 406 | (buf[0] as u16) * 256 + (buf[1] as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(buf[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/database/database.rs:406:33 [INFO] [stderr] | [INFO] [stderr] 406 | (buf[0] as u16) * 256 + (buf[1] as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(buf[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/database/database.rs:419:53 [INFO] [stderr] | [INFO] [stderr] 419 | fn get_row(reader: &mut R, columns: &Vec<(String, u8)>) -> Result, String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[(String, u8)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: literal out of range for u8 [INFO] [stderr] --> src/database/database.rs:429:68 [INFO] [stderr] | [INFO] [stderr] 429 | row.push(DatabaseType::Autoincrement((buf[0] * 256 + buf[1]).into())); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(overflowing_literals)] on by default [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/database/database.rs:433:21 [INFO] [stderr] | [INFO] [stderr] 433 | / match reader.read_until(0, &mut buffer) { [INFO] [stderr] 434 | | Ok(x) => { [INFO] [stderr] 435 | | if x == 0 { [INFO] [stderr] 436 | | return Result::Err(String::from("End of file")); [INFO] [stderr] ... | [INFO] [stderr] 439 | | Err(_) => {} [INFO] [stderr] 440 | | }; [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 433 | if let Ok(x) = reader.read_until(0, &mut buffer) { [INFO] [stderr] 434 | if x == 0 { [INFO] [stderr] 435 | return Result::Err(String::from("End of file")); [INFO] [stderr] 436 | } [INFO] [stderr] 437 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `app`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "6ad01d56d15ce785c24e36f5bab87f3fa1e429f6580e06d888bd11434f37ed8d"` [INFO] running `"docker" "rm" "-f" "6ad01d56d15ce785c24e36f5bab87f3fa1e429f6580e06d888bd11434f37ed8d"` [INFO] [stdout] 6ad01d56d15ce785c24e36f5bab87f3fa1e429f6580e06d888bd11434f37ed8d