[INFO] cloning repository https://github.com/samuelorji/MichelleDB
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/samuelorji/MichelleDB" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsamuelorji%2FMichelleDB", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsamuelorji%2FMichelleDB'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 928c79f7773b7c6dae413a91dce88e42aa51031a
[INFO] checking samuelorji/MichelleDB against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsamuelorji%2FMichelleDB" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/samuelorji/MichelleDB
[INFO] finished tweaking git repo https://github.com/samuelorji/MichelleDB
[INFO] tweaked toml for git repo https://github.com/samuelorji/MichelleDB written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/samuelorji/MichelleDB on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/samuelorji/MichelleDB already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded sha1 v0.10.4
[INFO] [stderr]   Downloaded uuid v1.1.2
[INFO] [stderr]   Downloaded once_cell v1.14.0
[INFO] [stderr]   Downloaded serde_derive v1.0.144
[INFO] [stderr]   Downloaded libc v0.2.132
[INFO] [stderr]   Downloaded tokio v1.21.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 83d1850742aabd3b0b4338212ebda226ad80598b791e7149b36c8ee9dd8ae1d7
[INFO] running `Command { std: "docker" "start" "-a" "83d1850742aabd3b0b4338212ebda226ad80598b791e7149b36c8ee9dd8ae1d7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "83d1850742aabd3b0b4338212ebda226ad80598b791e7149b36c8ee9dd8ae1d7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "83d1850742aabd3b0b4338212ebda226ad80598b791e7149b36c8ee9dd8ae1d7", kill_on_drop: false }`
[INFO] [stdout] 83d1850742aabd3b0b4338212ebda226ad80598b791e7149b36c8ee9dd8ae1d7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fb8c94be42d81a68ec002072970e21c5d2a9666bd39e7f829c0267400b990a80
[INFO] running `Command { std: "docker" "start" "-a" "fb8c94be42d81a68ec002072970e21c5d2a9666bd39e7f829c0267400b990a80", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.132
[INFO] [stderr]    Compiling proc-macro2 v1.0.43
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]    Compiling syn v1.0.99
[INFO] [stderr]    Compiling futures-core v0.3.24
[INFO] [stderr]     Checking once_cell v1.14.0
[INFO] [stderr]    Compiling tokio v1.21.0
[INFO] [stderr]     Checking itoa v1.0.3
[INFO] [stderr]    Compiling futures-task v0.3.24
[INFO] [stderr]     Checking tracing-core v0.1.29
[INFO] [stderr]    Compiling serde_derive v1.0.144
[INFO] [stderr]    Compiling futures-util v0.3.24
[INFO] [stderr]    Compiling serde v1.0.144
[INFO] [stderr]     Checking futures-sink v0.3.24
[INFO] [stderr]     Checking http v0.2.8
[INFO] [stderr]    Compiling aho-corasick v0.7.19
[INFO] [stderr]     Checking tracing v0.1.36
[INFO] [stderr]    Compiling paste v1.0.9
[INFO] [stderr]     Checking parking_lot_core v0.9.3
[INFO] [stderr]    Compiling jobserver v0.1.24
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking socket2 v0.4.7
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking mio v0.8.4
[INFO] [stderr]     Checking getrandom v0.2.7
[INFO] [stderr]    Compiling regex v1.6.0
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking actix-service v2.0.2
[INFO] [stderr]     Checking miniz_oxide v0.5.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking digest v0.10.3
[INFO] [stderr]     Checking unicode-normalization v0.1.21
[INFO] [stderr]    Compiling bytestring v1.1.0
[INFO] [stderr]    Compiling serde_json v1.0.85
[INFO] [stderr]     Checking local-channel v0.1.3
[INFO] [stderr]    Compiling zstd-sys v2.0.1+zstd.1.5.2
[INFO] [stderr]     Checking time v0.3.14
[INFO] [stderr]     Checking sha1 v0.10.4
[INFO] [stderr]     Checking idna v0.3.0
[INFO] [stderr]     Checking flate2 v1.0.24
[INFO] [stderr]     Checking ahash v0.7.6
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking base64 v0.13.0
[INFO] [stderr]     Checking url v2.3.1
[INFO] [stderr]     Checking cookie v0.16.0
[INFO] [stderr]     Checking uuid v1.1.2
[INFO] [stderr]    Compiling actix-router v0.5.0
[INFO] [stderr]    Compiling tokio-macros v1.8.0
[INFO] [stderr]    Compiling derive_more v0.99.17
[INFO] [stderr]    Compiling actix-macros v0.2.3
[INFO] [stderr]    Compiling actix-web-codegen v4.0.1
[INFO] [stderr]     Checking tokio-util v0.7.4
[INFO] [stderr]     Checking actix-rt v2.7.0
[INFO] [stderr]     Checking actix-server v2.1.1
[INFO] [stderr]     Checking h2 v0.3.14
[INFO] [stderr]     Checking actix-codec v0.5.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling zstd-safe v5.0.2+zstd.1.5.2
[INFO] [stderr]     Checking zstd v0.11.2+zstd.1.5.2
[INFO] [stderr]     Checking actix-http v3.2.1
[INFO] [stderr]     Checking actix-web v4.1.0
[INFO] [stderr]     Checking michelledb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/server.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Error`
[INFO] [stdout]  --> src/server.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde_json::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::ErrorKind`
[INFO] [stdout]  --> src/server.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::ErrorKind;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::Map`
[INFO] [stdout]  --> src/server.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::iter::Map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/server.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HttpResponse` and `error`
[INFO] [stdout]  --> src/server.rs:8:38
[INFO] [stdout]   |
[INFO] [stdout] 8 | use actix_web::{App, HttpServer, web,error,HttpResponse};
[INFO] [stdout]   |                                      ^^^^^ ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]   --> src/server.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use serde::Deserialize;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Document`
[INFO] [stdout]   --> src/server.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::Document;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::service::Service`
[INFO] [stdout]   --> src/server.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::service::Service;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/routes.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/routes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/routes.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DirEntry` and `read`
[INFO] [stdout]  --> src/routes.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fs::{DirEntry, read};
[INFO] [stdout]   |               ^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/routes.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::option::Iter`
[INFO] [stdout]  --> src/routes.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::option::Iter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]  --> src/routes.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/routes.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::dev::ResourcePath`
[INFO] [stdout]   --> src/routes.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use actix_web::dev::ResourcePath;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::error`
[INFO] [stdout]   --> src/routes.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use actix_web::error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Data` and `Json`
[INFO] [stdout]   --> src/routes.rs:13:22
[INFO] [stdout]    |
[INFO] [stdout] 13 | use actix_web::web::{Data, Json};
[INFO] [stdout]    |                      ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Number` and `Value`
[INFO] [stdout]   --> src/routes.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | use serde_json::{Number, Value};
[INFO] [stdout]    |                  ^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]   --> src/routes.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use serde_json::json;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/routes.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DocumentResult`, `QueryComparison`, `QueryOp`, `get_path_values`, and `parseQuery`
[INFO] [stdout]   --> src/routes.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::lexer::{DocumentResult, get_path_values, parseQuery, QueryComparison, QueryOp};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Map`
[INFO] [stdout]   --> src/routes.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use serde_json::Map;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `WalkDir`
[INFO] [stdout]   --> src/routes.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 | use walkdir::{Error, WalkDir};
[INFO] [stdout]    |               ^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DocumentResponse`
[INFO] [stdout]   --> src/routes.rs:22:22
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::service::{DocumentResponse, QueryParams, Service};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/db.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::OsString`
[INFO] [stdout]  --> src/db.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ffi::OsString;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::Filter`
[INFO] [stdout]  --> src/db.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::iter::Filter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::Unexpected::Str`
[INFO] [stdout]  --> src/db.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::de::Unexpected::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IntoIter`
[INFO] [stdout]  --> src/db.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | use walkdir::{IntoIter, WalkDir};
[INFO] [stdout]   |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/db.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 |         if (dir.exists() && indexDir.exists()) {
[INFO] [stdout]    |            ^                                 ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 32 -         if (dir.exists() && indexDir.exists()) {
[INFO] [stdout] 32 +         if dir.exists() && indexDir.exists()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/db.rs:57:20
[INFO] [stdout]    |
[INFO] [stdout] 57 |                 if (e.kind() == ErrorKind::NotFound) {
[INFO] [stdout]    |                    ^                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 57 -                 if (e.kind() == ErrorKind::NotFound) {
[INFO] [stdout] 57 +                 if e.kind() == ErrorKind::NotFound  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/db.rs:74:20
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 if (e.kind() == ErrorKind::NotFound) {
[INFO] [stdout]    |                    ^                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 74 -                 if (e.kind() == ErrorKind::NotFound) {
[INFO] [stdout] 74 +                 if e.kind() == ErrorKind::NotFound  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/lexer.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/lexer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Error`
[INFO] [stdout]  --> src/lexer.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/lexer.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |             if(result.is_null()) {
[INFO] [stdout]    |               ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 22 -             if(result.is_null()) {
[INFO] [stdout] 22 +             if result.is_null()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/lexer.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 |         if(result.is_null()){
[INFO] [stdout]    |           ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 37 -         if(result.is_null()){
[INFO] [stdout] 37 +         if result.is_null() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:117:7
[INFO] [stdout]     |
[INFO] [stdout] 117 |     if(index >= input.len()){
[INFO] [stdout]     |       ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 117 -     if(index >= input.len()){
[INFO] [stdout] 117 +     if index >= input.len() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 |     if (input[index] == b'"'){
[INFO] [stdout]     |        ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 121 -     if (input[index] == b'"'){
[INFO] [stdout] 121 +     if input[index] == b'"' {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/lexer.rs:126:14
[INFO] [stdout]     |
[INFO] [stdout] 126 |         while(index < input.len()){
[INFO] [stdout]     |              ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 126 -         while(index < input.len()){
[INFO] [stdout] 126 +         while index < input.len() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:127:15
[INFO] [stdout]     |
[INFO] [stdout] 127 |             if(input[index] == b'"'){
[INFO] [stdout]     |               ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -             if(input[index] == b'"'){
[INFO] [stdout] 127 +             if input[index] == b'"' {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:134:11
[INFO] [stdout]     |
[INFO] [stdout] 134 |         if(!found_end) {
[INFO] [stdout]     |           ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 134 -         if(!found_end) {
[INFO] [stdout] 134 +         if !found_end  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/lexer.rs:144:10
[INFO] [stdout]     |
[INFO] [stdout] 144 |     while(index < input.len()){
[INFO] [stdout]     |          ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 144 -     while(index < input.len()){
[INFO] [stdout] 144 +     while index < input.len() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:146:11
[INFO] [stdout]     |
[INFO] [stdout] 146 |         if(!(c.is_ascii_alphanumeric() || c == b'.')){
[INFO] [stdout]     |           ^                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 146 -         if(!(c.is_ascii_alphanumeric() || c == b'.')){
[INFO] [stdout] 146 +         if !(c.is_ascii_alphanumeric() || c == b'.') {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:152:7
[INFO] [stdout]     |
[INFO] [stdout] 152 |     if(s.is_empty()){
[INFO] [stdout]     |       ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 152 -     if(s.is_empty()){
[INFO] [stdout] 152 +     if s.is_empty() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:169:36
[INFO] [stdout]     |
[INFO] [stdout] 169 |                     let prefix = if(pref.is_empty()){
[INFO] [stdout]     |                                    ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 169 -                     let prefix = if(pref.is_empty()){
[INFO] [stdout] 169 +                     let prefix = if pref.is_empty() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:178:23
[INFO] [stdout]     |
[INFO] [stdout] 178 |                     if(!pref.is_empty()){
[INFO] [stdout]     |                       ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 178 -                     if(!pref.is_empty()){
[INFO] [stdout] 178 +                     if !pref.is_empty() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/lexer.rs:203:10
[INFO] [stdout]     |
[INFO] [stdout] 203 |     while(i < query.len()){
[INFO] [stdout]     |          ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 203 -     while(i < query.len()){
[INFO] [stdout] 203 +     while i < query.len() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:206:15
[INFO] [stdout]     |
[INFO] [stdout] 206 |             if(query[i].is_ascii_whitespace()){
[INFO] [stdout]     |               ^                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 206 -             if(query[i].is_ascii_whitespace()){
[INFO] [stdout] 206 +             if query[i].is_ascii_whitespace() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:215:19
[INFO] [stdout]     |
[INFO] [stdout] 215 |                 if(query[nextIndex] != b':'){
[INFO] [stdout]     |                   ^                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 215 -                 if(query[nextIndex] != b':'){
[INFO] [stdout] 215 +                 if query[nextIndex] != b':' {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::Unexpected::Str`
[INFO] [stdout]    --> src/lexer.rs:257:9
[INFO] [stdout]     |
[INFO] [stdout] 257 |     use serde::de::Unexpected::Str;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Value` and `json`
[INFO] [stdout]    --> src/lexer.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 258 |     use serde_json::{json, Value};
[INFO] [stdout]     |                      ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/lexer.rs:259:9
[INFO] [stdout]     |
[INFO] [stdout] 259 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/service.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/service.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DirEntry` and `read`
[INFO] [stdout]  --> src/service.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fs::{DirEntry, read};
[INFO] [stdout]   |               ^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::option::Iter`
[INFO] [stdout]  --> src/service.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::option::Iter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]  --> src/service.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HttpRequest`, `HttpResponse`, `Responder`, `get`, and `post`
[INFO] [stdout]   --> src/service.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use actix_web::{HttpRequest, HttpResponse, Responder, web, get, post};
[INFO] [stdout]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^       ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::error`
[INFO] [stdout]   --> src/service.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use actix_web::error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Json`
[INFO] [stdout]   --> src/service.rs:13:28
[INFO] [stdout]    |
[INFO] [stdout] 13 | use actix_web::web::{Data, Json};
[INFO] [stdout]    |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `WalkDir`
[INFO] [stdout]   --> src/service.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 | use walkdir::{Error, WalkDir};
[INFO] [stdout]    |               ^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/service.rs:101:24
[INFO] [stdout]     |
[INFO] [stdout] 101 |                     if (idsString.is_empty()) {
[INFO] [stdout]     |                        ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 101 -                     if (idsString.is_empty()) {
[INFO] [stdout] 101 +                     if idsString.is_empty()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/service.rs:113:28
[INFO] [stdout]     |
[INFO] [stdout] 113 |                         if (!found) {
[INFO] [stdout]     |                            ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 113 -                         if (!found) {
[INFO] [stdout] 113 +                         if !found  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/service.rs:214:20
[INFO] [stdout]     |
[INFO] [stdout] 214 |                 if (matchedIds.is_empty() && skipIndex) {
[INFO] [stdout]     |                    ^                                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 214 -                 if (matchedIds.is_empty() && skipIndex) {
[INFO] [stdout] 214 +                 if matchedIds.is_empty() && skipIndex  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/service.rs:228:32
[INFO] [stdout]     |
[INFO] [stdout] 228 | ...                   if (nonEqualQueryComparisons.iter().all(|queryConparison| queryConparison.matches_document(&doc))) {
[INFO] [stdout]     |                          ^                                                                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 228 -                             if (nonEqualQueryComparisons.iter().all(|queryConparison| queryConparison.matches_document(&doc))) {
[INFO] [stdout] 228 +                             if nonEqualQueryComparisons.iter().all(|queryConparison| queryConparison.matches_document(&doc))  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/service.rs:264:32
[INFO] [stdout]     |
[INFO] [stdout] 264 | ...                   if (is_match) {
[INFO] [stdout]     |                          ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 264 -                             if (is_match) {
[INFO] [stdout] 264 +                             if is_match  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt::format`
[INFO] [stdout]  --> src/main.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::{fmt::format, io, net::TcpListener};
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Index`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::ops::Index;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `App`, `HttpRequest`, `HttpResponse`, `HttpServer`, `Responder`, and `web`
[INFO] [stdout]   --> src/main.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use actix_web::{App, HttpRequest, HttpResponse, HttpServer, Responder, web};
[INFO] [stdout]    |                 ^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use serde::Deserialize;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Value` and `json`
[INFO] [stdout]   --> src/main.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | use serde_json::{json, Value};
[INFO] [stdout]    |                  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `walkdir::WalkDir`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use walkdir::WalkDir;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/server.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Error`
[INFO] [stdout]  --> src/server.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde_json::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::ErrorKind`
[INFO] [stdout]  --> src/server.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::ErrorKind;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::Map`
[INFO] [stdout]  --> src/server.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::iter::Map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/server.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HttpResponse` and `error`
[INFO] [stdout]  --> src/server.rs:8:38
[INFO] [stdout]   |
[INFO] [stdout] 8 | use actix_web::{App, HttpServer, web,error,HttpResponse};
[INFO] [stdout]   |                                      ^^^^^ ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]   --> src/server.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use serde::Deserialize;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Document`
[INFO] [stdout]   --> src/server.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::Document;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::service::Service`
[INFO] [stdout]   --> src/server.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::service::Service;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/routes.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/routes.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/routes.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DirEntry` and `read`
[INFO] [stdout]  --> src/routes.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fs::{DirEntry, read};
[INFO] [stdout]   |               ^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/routes.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::option::Iter`
[INFO] [stdout]  --> src/routes.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::option::Iter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]  --> src/routes.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/routes.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::dev::ResourcePath`
[INFO] [stdout]   --> src/routes.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use actix_web::dev::ResourcePath;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::error`
[INFO] [stdout]   --> src/routes.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use actix_web::error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Data` and `Json`
[INFO] [stdout]   --> src/routes.rs:13:22
[INFO] [stdout]    |
[INFO] [stdout] 13 | use actix_web::web::{Data, Json};
[INFO] [stdout]    |                      ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Number` and `Value`
[INFO] [stdout]   --> src/routes.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | use serde_json::{Number, Value};
[INFO] [stdout]    |                  ^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]   --> src/routes.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use serde_json::json;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/routes.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DocumentResult`, `QueryComparison`, `QueryOp`, `get_path_values`, and `parseQuery`
[INFO] [stdout]   --> src/routes.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::lexer::{DocumentResult, get_path_values, parseQuery, QueryComparison, QueryOp};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Map`
[INFO] [stdout]   --> src/routes.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use serde_json::Map;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `WalkDir`
[INFO] [stdout]   --> src/routes.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 | use walkdir::{Error, WalkDir};
[INFO] [stdout]    |               ^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DocumentResponse`
[INFO] [stdout]   --> src/routes.rs:22:22
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::service::{DocumentResponse, QueryParams, Service};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/db.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::OsString`
[INFO] [stdout]  --> src/db.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ffi::OsString;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::Filter`
[INFO] [stdout]  --> src/db.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::iter::Filter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::Unexpected::Str`
[INFO] [stdout]  --> src/db.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::de::Unexpected::Str;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IntoIter`
[INFO] [stdout]  --> src/db.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | use walkdir::{IntoIter, WalkDir};
[INFO] [stdout]   |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/db.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 |         if (dir.exists() && indexDir.exists()) {
[INFO] [stdout]    |            ^                                 ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 32 -         if (dir.exists() && indexDir.exists()) {
[INFO] [stdout] 32 +         if dir.exists() && indexDir.exists()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/db.rs:57:20
[INFO] [stdout]    |
[INFO] [stdout] 57 |                 if (e.kind() == ErrorKind::NotFound) {
[INFO] [stdout]    |                    ^                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 57 -                 if (e.kind() == ErrorKind::NotFound) {
[INFO] [stdout] 57 +                 if e.kind() == ErrorKind::NotFound  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/db.rs:74:20
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 if (e.kind() == ErrorKind::NotFound) {
[INFO] [stdout]    |                    ^                               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 74 -                 if (e.kind() == ErrorKind::NotFound) {
[INFO] [stdout] 74 +                 if e.kind() == ErrorKind::NotFound  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/lexer.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/lexer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Error`
[INFO] [stdout]  --> src/lexer.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/lexer.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |             if(result.is_null()) {
[INFO] [stdout]    |               ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 22 -             if(result.is_null()) {
[INFO] [stdout] 22 +             if result.is_null()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/lexer.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 |         if(result.is_null()){
[INFO] [stdout]    |           ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 37 -         if(result.is_null()){
[INFO] [stdout] 37 +         if result.is_null() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:117:7
[INFO] [stdout]     |
[INFO] [stdout] 117 |     if(index >= input.len()){
[INFO] [stdout]     |       ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 117 -     if(index >= input.len()){
[INFO] [stdout] 117 +     if index >= input.len() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 |     if (input[index] == b'"'){
[INFO] [stdout]     |        ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 121 -     if (input[index] == b'"'){
[INFO] [stdout] 121 +     if input[index] == b'"' {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/lexer.rs:126:14
[INFO] [stdout]     |
[INFO] [stdout] 126 |         while(index < input.len()){
[INFO] [stdout]     |              ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 126 -         while(index < input.len()){
[INFO] [stdout] 126 +         while index < input.len() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:127:15
[INFO] [stdout]     |
[INFO] [stdout] 127 |             if(input[index] == b'"'){
[INFO] [stdout]     |               ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -             if(input[index] == b'"'){
[INFO] [stdout] 127 +             if input[index] == b'"' {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:134:11
[INFO] [stdout]     |
[INFO] [stdout] 134 |         if(!found_end) {
[INFO] [stdout]     |           ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 134 -         if(!found_end) {
[INFO] [stdout] 134 +         if !found_end  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/lexer.rs:144:10
[INFO] [stdout]     |
[INFO] [stdout] 144 |     while(index < input.len()){
[INFO] [stdout]     |          ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 144 -     while(index < input.len()){
[INFO] [stdout] 144 +     while index < input.len() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:146:11
[INFO] [stdout]     |
[INFO] [stdout] 146 |         if(!(c.is_ascii_alphanumeric() || c == b'.')){
[INFO] [stdout]     |           ^                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 146 -         if(!(c.is_ascii_alphanumeric() || c == b'.')){
[INFO] [stdout] 146 +         if !(c.is_ascii_alphanumeric() || c == b'.') {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:152:7
[INFO] [stdout]     |
[INFO] [stdout] 152 |     if(s.is_empty()){
[INFO] [stdout]     |       ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 152 -     if(s.is_empty()){
[INFO] [stdout] 152 +     if s.is_empty() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:169:36
[INFO] [stdout]     |
[INFO] [stdout] 169 |                     let prefix = if(pref.is_empty()){
[INFO] [stdout]     |                                    ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 169 -                     let prefix = if(pref.is_empty()){
[INFO] [stdout] 169 +                     let prefix = if pref.is_empty() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:178:23
[INFO] [stdout]     |
[INFO] [stdout] 178 |                     if(!pref.is_empty()){
[INFO] [stdout]     |                       ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 178 -                     if(!pref.is_empty()){
[INFO] [stdout] 178 +                     if !pref.is_empty() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/lexer.rs:203:10
[INFO] [stdout]     |
[INFO] [stdout] 203 |     while(i < query.len()){
[INFO] [stdout]     |          ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 203 -     while(i < query.len()){
[INFO] [stdout] 203 +     while i < query.len() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:206:15
[INFO] [stdout]     |
[INFO] [stdout] 206 |             if(query[i].is_ascii_whitespace()){
[INFO] [stdout]     |               ^                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 206 -             if(query[i].is_ascii_whitespace()){
[INFO] [stdout] 206 +             if query[i].is_ascii_whitespace() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/lexer.rs:215:19
[INFO] [stdout]     |
[INFO] [stdout] 215 |                 if(query[nextIndex] != b':'){
[INFO] [stdout]     |                   ^                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 215 -                 if(query[nextIndex] != b':'){
[INFO] [stdout] 215 +                 if query[nextIndex] != b':' {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::Unexpected::Str`
[INFO] [stdout]    --> src/lexer.rs:257:9
[INFO] [stdout]     |
[INFO] [stdout] 257 |     use serde::de::Unexpected::Str;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/service.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/service.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DirEntry` and `read`
[INFO] [stdout]  --> src/service.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fs::{DirEntry, read};
[INFO] [stdout]   |               ^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::option::Iter`
[INFO] [stdout]  --> src/service.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::option::Iter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]  --> src/service.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HttpRequest`, `HttpResponse`, `Responder`, `get`, and `post`
[INFO] [stdout]   --> src/service.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use actix_web::{HttpRequest, HttpResponse, Responder, web, get, post};
[INFO] [stdout]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^       ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::error`
[INFO] [stdout]   --> src/service.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use actix_web::error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Json`
[INFO] [stdout]   --> src/service.rs:13:28
[INFO] [stdout]    |
[INFO] [stdout] 13 | use actix_web::web::{Data, Json};
[INFO] [stdout]    |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `WalkDir`
[INFO] [stdout]   --> src/service.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 | use walkdir::{Error, WalkDir};
[INFO] [stdout]    |               ^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/service.rs:101:24
[INFO] [stdout]     |
[INFO] [stdout] 101 |                     if (idsString.is_empty()) {
[INFO] [stdout]     |                        ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 101 -                     if (idsString.is_empty()) {
[INFO] [stdout] 101 +                     if idsString.is_empty()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/service.rs:113:28
[INFO] [stdout]     |
[INFO] [stdout] 113 |                         if (!found) {
[INFO] [stdout]     |                            ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 113 -                         if (!found) {
[INFO] [stdout] 113 +                         if !found  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/service.rs:214:20
[INFO] [stdout]     |
[INFO] [stdout] 214 |                 if (matchedIds.is_empty() && skipIndex) {
[INFO] [stdout]     |                    ^                                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 214 -                 if (matchedIds.is_empty() && skipIndex) {
[INFO] [stdout] 214 +                 if matchedIds.is_empty() && skipIndex  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/service.rs:228:32
[INFO] [stdout]     |
[INFO] [stdout] 228 | ...                   if (nonEqualQueryComparisons.iter().all(|queryConparison| queryConparison.matches_document(&doc))) {
[INFO] [stdout]     |                          ^                                                                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 228 -                             if (nonEqualQueryComparisons.iter().all(|queryConparison| queryConparison.matches_document(&doc))) {
[INFO] [stdout] 228 +                             if nonEqualQueryComparisons.iter().all(|queryConparison| queryConparison.matches_document(&doc))  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/service.rs:264:32
[INFO] [stdout]     |
[INFO] [stdout] 264 | ...                   if (is_match) {
[INFO] [stdout]     |                          ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 264 -                             if (is_match) {
[INFO] [stdout] 264 +                             if is_match  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt::format`
[INFO] [stdout]  --> src/main.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::{fmt::format, io, net::TcpListener};
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Index`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::ops::Index;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `App`, `HttpRequest`, `HttpResponse`, `HttpServer`, `Responder`, and `web`
[INFO] [stdout]   --> src/main.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use actix_web::{App, HttpRequest, HttpResponse, HttpServer, Responder, web};
[INFO] [stdout]    |                 ^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use serde::Deserialize;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Value` and `json`
[INFO] [stdout]   --> src/main.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | use serde_json::{json, Value};
[INFO] [stdout]    |                  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `walkdir::WalkDir`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use walkdir::WalkDir;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::dev::ResourcePath`
[INFO] [stdout]   --> src/service.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use actix_web::dev::ResourcePath;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]   --> src/routes.rs:24:20
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub async fn greet(req: HttpRequest) -> HttpResponse {
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]   --> src/routes.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub async fn addDoc(req: HttpRequest, document: web::Json<Document>, db: web::Data<DB>) -> impl Responder {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]   --> src/routes.rs:43:22
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub async fn getById(req: HttpRequest, id: web::Path<String>, db: web::Data<DB>) -> impl Responder {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]   --> src/routes.rs:53:21
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub async fn getDoc(req: HttpRequest, query: web::Query<QueryParams>, db: web::Data<DB>) -> impl Responder {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `s` is never read
[INFO] [stdout]    --> src/lexer.rs:120:17
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let mut s = "";
[INFO] [stdout]     |                 ^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `u_key` is never read
[INFO] [stdout]    --> src/lexer.rs:177:37
[INFO] [stdout]     |
[INFO] [stdout] 177 |                     let mut u_key = String::new();
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/lexer.rs:247:18
[INFO] [stdout]     |
[INFO] [stdout] 247 |             Err((e,at)) => {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document`
[INFO] [stdout]   --> src/service.rs:63:29
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn matchDocument(&self, document: &HashMap<String, Value>) -> Result<bool, String> {
[INFO] [stdout]    |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `queryComparison`
[INFO] [stdout]   --> src/service.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         for queryComparison in &queryComparisons {}
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_queryComparison`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/service.rs:84:37
[INFO] [stdout]    |
[INFO] [stdout] 84 |                         }).map_err(|e|io::Error::from(ErrorKind::InvalidData) )
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/service.rs:201:51
[INFO] [stdout]     |
[INFO] [stdout] 201 | ...                   .map(|(k, v)| k.to_owned())
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/service.rs:200:51
[INFO] [stdout]     |
[INFO] [stdout] 200 | ...                   .filter(|(key, value)| **value == equalQueryCount)
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matchedIds`
[INFO] [stdout]    --> src/service.rs:184:33
[INFO] [stdout]     |
[INFO] [stdout] 184 | ...                   let matchedIds = match db.get_indexed_document(&index_key) {
[INFO] [stdout]     |                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matchedIds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `index_lookup` is never used
[INFO] [stdout]   --> src/db.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl DB {
[INFO] [stdout]    | ------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn index_lookup(&self, pathValue: &str) -> Result<Vec<String>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `matchDocument` is never used
[INFO] [stdout]   --> src/service.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl QueryParams {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 63 |     fn matchDocument(&self, document: &HashMap<String, Value>) -> Result<bool, String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `reIndex` is never used
[INFO] [stdout]   --> src/service.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl Service {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 72 |
[INFO] [stdout] 73 |     pub fn reIndex(db: &DB) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `addDoc` should have a snake case name
[INFO] [stdout]   --> src/routes.rs:29:14
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub async fn addDoc(req: HttpRequest, document: web::Json<Document>, db: web::Data<DB>) -> impl Responder {
[INFO] [stdout]    |              ^^^^^^ help: convert the identifier to snake case: `add_doc`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `getById` should have a snake case name
[INFO] [stdout]   --> src/routes.rs:43:14
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub async fn getById(req: HttpRequest, id: web::Path<String>, db: web::Data<DB>) -> impl Responder {
[INFO] [stdout]    |              ^^^^^^^ help: convert the identifier to snake case: `get_by_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `getDoc` should have a snake case name
[INFO] [stdout]   --> src/routes.rs:53:14
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub async fn getDoc(req: HttpRequest, query: web::Query<QueryParams>, db: web::Data<DB>) -> impl Responder {
[INFO] [stdout]    |              ^^^^^^ help: convert the identifier to snake case: `get_doc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `documentResponse` should have a snake case name
[INFO] [stdout]   --> src/routes.rs:55:14
[INFO] [stdout]    |
[INFO] [stdout] 55 |        Ok(Ok(documentResponse)) => HttpResponse::Ok().json(documentResponse),
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `document_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `dbDir` should have a snake case name
[INFO] [stdout]   --> src/db.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub dbDir: String,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `db_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `indexDir` should have a snake case name
[INFO] [stdout]   --> src/db.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub indexDir: String,
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `index_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `dbDir` should have a snake case name
[INFO] [stdout]   --> src/db.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let dbDir = match std::env::home_dir() {
[INFO] [stdout]    |             ^^^^^ help: convert the identifier to snake case: `db_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `indexDir` should have a snake case name
[INFO] [stdout]   --> src/db.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let indexDir = format!("{}.index", &dbDir);
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `index_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `indexDir` should have a snake case name
[INFO] [stdout]   --> src/db.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let indexDir = Path::new(&indexDir);
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `index_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `getById` should have a snake case name
[INFO] [stdout]   --> src/db.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn getById(&self, id: &str) -> Result<Option<Document>, String> {
[INFO] [stdout]    |            ^^^^^^^ help: convert the identifier to snake case: `get_by_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathValue` should have a snake case name
[INFO] [stdout]   --> src/db.rs:70:40
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn get_indexed_document(&self, pathValue: &str) -> Result<String, String> {
[INFO] [stdout]    |                                        ^^^^^^^^^ help: convert the identifier to snake case: `path_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathValue` should have a snake case name
[INFO] [stdout]   --> src/db.rs:98:32
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn index_lookup(&self, pathValue: &str) -> Result<Vec<String>, String> {
[INFO] [stdout]    |                                ^^^^^^^^^ help: convert the identifier to snake case: `path_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fileContents` should have a snake case name
[INFO] [stdout]    --> src/db.rs:103:27
[INFO] [stdout]     |
[INFO] [stdout] 103 |                     .map(|fileContents| fileContents.split(",").map(|e| e.to_string()).collect::<Vec<String>>())
[INFO] [stdout]     |                           ^^^^^^^^^^^^ help: convert the identifier to snake case: `file_contents`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lexString` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub fn lexString(input : &[u8], mut index : usize) -> Result<(&str, usize), (&str,usize)> {
[INFO] [stdout]     |        ^^^^^^^^^ help: convert the identifier to snake case: `lex_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parseQuery` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn parseQuery<'a>(query : &'a[u8]) -> Result<Vec<QueryComparison<'a>>,  String> {
[INFO] [stdout]     |        ^^^^^^^^^^ help: convert the identifier to snake case: `parse_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `nextIndex` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:214:21
[INFO] [stdout]     |
[INFO] [stdout] 214 |             Ok((key,nextIndex)) => {
[INFO] [stdout]     |                     ^^^^^^^^^ help: convert the identifier to snake case: `next_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `nextIndex` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:232:31
[INFO] [stdout]     |
[INFO] [stdout] 232 |                     Ok((value,nextIndex)) => {
[INFO] [stdout]     |                               ^^^^^^^^^ help: convert the identifier to snake case: `next_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `expectedResult` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:267:13
[INFO] [stdout]     |
[INFO] [stdout] 267 |             expectedResult: Result<(&'static str, usize), (&'static str, usize)>
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `expected_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `testCases` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:270:13
[INFO] [stdout]     |
[INFO] [stdout] 270 |         let testCases = [
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `test_cases`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `testCase` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:292:13
[INFO] [stdout]     |
[INFO] [stdout] 292 |         for testCase in testCases {
[INFO] [stdout]     |             ^^^^^^^^ help: convert the identifier to snake case: `test_case`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `expectedResult` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:302:13
[INFO] [stdout]     |
[INFO] [stdout] 302 |             expectedResult: Result<Vec<QueryComparison<'a>>,String>
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `expected_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `testCases` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:304:13
[INFO] [stdout]     |
[INFO] [stdout] 304 |         let testCases = [
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `test_cases`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `testCase` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:327:13
[INFO] [stdout]     |
[INFO] [stdout] 327 |         for testCase in &testCases {
[INFO] [stdout]     |             ^^^^^^^^ help: convert the identifier to snake case: `test_case`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryComparison` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:334:13
[INFO] [stdout]     |
[INFO] [stdout] 334 |         let queryComparison = QueryComparison {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `query_comparison`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `jsonValue` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:354:13
[INFO] [stdout]     |
[INFO] [stdout] 354 |         let jsonValue  = json!({
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `json_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `expectedResult` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:371:13
[INFO] [stdout]     |
[INFO] [stdout] 371 |         let expectedResult: Vec<String> = vec!["a=1", "b.c.d.e=1", "b.c.d.f=3", "b.g=2"].iter().map(|x| String::from(*x)).collect();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `expected_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `jsonValue` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:374:13
[INFO] [stdout]     |
[INFO] [stdout] 374 |         let jsonValue  = json!({
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `json_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `expectedResult` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:386:13
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let expectedResult: Vec<String> = vec!["a=1", "b=2", "c.d=3"].iter().map(|x| String::from(*x)).collect();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `expected_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `from_Map` should have a snake case name
[INFO] [stdout]   --> src/service.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn from_Map(id :&str, result: Map<String, Value>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^ help: convert the identifier to snake case: `from_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fromDocumentResult` should have a snake case name
[INFO] [stdout]   --> src/service.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn fromDocumentResult(result : DocumentResult) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `from_document_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `from_HashMap` should have a snake case name
[INFO] [stdout]   --> src/service.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn from_HashMap(result: HashMap<String, Value>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^ help: convert the identifier to snake case: `from_hash_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `skipIndex` should have a snake case name
[INFO] [stdout]   --> src/service.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     skipIndex: Option<bool>,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to snake case: `skip_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `matchDocument` should have a snake case name
[INFO] [stdout]   --> src/service.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn matchDocument(&self, document: &HashMap<String, Value>) -> Result<bool, String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^ help: convert the identifier to snake case: `match_document`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryComparisons` should have a snake case name
[INFO] [stdout]   --> src/service.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let queryComparisons = parseQuery(self.q.as_bytes())?;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `query_comparisons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryComparison` should have a snake case name
[INFO] [stdout]   --> src/service.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         for queryComparison in &queryComparisons {}
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `query_comparison`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reIndex` should have a snake case name
[INFO] [stdout]   --> src/service.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn reIndex(db: &DB) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^ help: convert the identifier to snake case: `re_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `filePath` should have a snake case name
[INFO] [stdout]   --> src/service.rs:79:28
[INFO] [stdout]    |
[INFO] [stdout] 79 |                 .and_then(|filePath| {
[INFO] [stdout]    |                            ^^^^^^^^ help: convert the identifier to snake case: `file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `osStr` should have a snake case name
[INFO] [stdout]   --> src/service.rs:82:83
[INFO] [stdout]    |
[INFO] [stdout] 82 | ...                   let file_name = filePath.path().file_name().and_then(|osStr| osStr.to_str()).unwrap();
[INFO] [stdout]    |                                                                             ^^^^^ help: convert the identifier to snake case: `os_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathValues` should have a snake case name
[INFO] [stdout]   --> src/service.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let pathValues = get_path_values(document, String::new());
[INFO] [stdout]    |             ^^^^^^^^^^ help: convert the identifier to snake case: `path_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `idsString` should have a snake case name
[INFO] [stdout]    --> src/service.rs:100:24
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 Ok(mut idsString) => {
[INFO] [stdout]     |                        ^^^^^^^^^ help: convert the identifier to snake case: `ids_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `exisitingId` should have a snake case name
[INFO] [stdout]    --> src/service.rs:107:29
[INFO] [stdout]     |
[INFO] [stdout] 107 |                         for exisitingId in ids {
[INFO] [stdout]     |                             ^^^^^^^^^^^ help: convert the identifier to snake case: `exisiting_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `addDoc` should have a snake case name
[INFO] [stdout]    --> src/service.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 |     pub fn addDoc(document: web::Json<Document>, db: web::Data<DB>) -> io::Result<DocumentResponse> {
[INFO] [stdout]     |            ^^^^^^ help: convert the identifier to snake case: `add_doc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uuidString` should have a snake case name
[INFO] [stdout]    --> src/service.rs:132:21
[INFO] [stdout]     |
[INFO] [stdout] 132 |                 let uuidString = uuid.to_string();
[INFO] [stdout]     |                     ^^^^^^^^^^ help: convert the identifier to snake case: `uuid_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `getDocumentById` should have a snake case name
[INFO] [stdout]    --> src/service.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 |     pub fn getDocumentById(id : &str, db : web::Data<DB>) -> Result<DocumentResponse,String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_document_by_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `emptyDocument` should have a snake case name
[INFO] [stdout]    --> src/service.rs:162:21
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 let emptyDocument = Map::new();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `empty_document`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `getDocuments` should have a snake case name
[INFO] [stdout]    --> src/service.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 |     pub fn getDocuments(query: web::Query<QueryParams>, db: web::Data<DB>) -> Result<Result<DocumentResponse,String>, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^ help: convert the identifier to snake case: `get_documents`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `documentsResults` should have a snake case name
[INFO] [stdout]    --> src/service.rs:170:17
[INFO] [stdout]     |
[INFO] [stdout] 170 |         let mut documentsResults: Vec<DocumentResult> = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `documents_results`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `equalQueryCount` should have a snake case name
[INFO] [stdout]    --> src/service.rs:171:17
[INFO] [stdout]     |
[INFO] [stdout] 171 |         let mut equalQueryCount = 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `equal_query_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `documentIdMatches` should have a snake case name
[INFO] [stdout]    --> src/service.rs:172:17
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let mut documentIdMatches: HashMap<String, u32> = HashMap::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `document_id_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `skipIndex` should have a snake case name
[INFO] [stdout]    --> src/service.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let skipIndex = query.skipIndex.unwrap_or(false);
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `skip_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryComparisons` should have a snake case name
[INFO] [stdout]    --> src/service.rs:176:16
[INFO] [stdout]     |
[INFO] [stdout] 176 |             Ok(queryComparisons) => {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `query_comparisons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `matchedIds` should have a snake case name
[INFO] [stdout]    --> src/service.rs:178:25
[INFO] [stdout]     |
[INFO] [stdout] 178 |                 let mut matchedIds: Vec<String> = vec![];
[INFO] [stdout]     |                         ^^^^^^^^^^ help: convert the identifier to snake case: `matched_ids`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `idsCommaString` should have a snake case name
[INFO] [stdout]    --> src/service.rs:185:36
[INFO] [stdout]     |
[INFO] [stdout] 185 | ...                   Ok(idsCommaString) => {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `ids_comma_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `documentId` should have a snake case name
[INFO] [stdout]    --> src/service.rs:186:41
[INFO] [stdout]     |
[INFO] [stdout] 186 | ...                   for documentId in idsCommaString.split(",") {
[INFO] [stdout]     |                           ^^^^^^^^^^ help: convert the identifier to snake case: `document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `matchedIds` should have a snake case name
[INFO] [stdout]    --> src/service.rs:184:33
[INFO] [stdout]     |
[INFO] [stdout] 184 | ...                   let matchedIds = match db.get_indexed_document(&index_key) {
[INFO] [stdout]     |                           ^^^^^^^^^^ help: convert the identifier to snake case: `matched_ids`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryComparison` should have a snake case name
[INFO] [stdout]    --> src/service.rs:222:34
[INFO] [stdout]     |
[INFO] [stdout] 222 |                         .filter(|queryComparison| {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `query_comparison`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `nonEqualQueryComparisons` should have a snake case name
[INFO] [stdout]    --> src/service.rs:220:25
[INFO] [stdout]     |
[INFO] [stdout] 220 |                     let nonEqualQueryComparisons: Vec<&QueryComparison> = queryComparisons
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `non_equal_query_comparisons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryConparison` should have a snake case name
[INFO] [stdout]    --> src/service.rs:228:70
[INFO] [stdout]     |
[INFO] [stdout] 228 | ...                   if (nonEqualQueryComparisons.iter().all(|queryConparison| queryConparison.matches_document(&doc))) {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `query_conparison`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `documentResult` should have a snake case name
[INFO] [stdout]    --> src/service.rs:229:37
[INFO] [stdout]     |
[INFO] [stdout] 229 | ...                   let documentResult = DocumentResult {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `document_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `documentResultsVec` should have a snake case name
[INFO] [stdout]    --> src/service.rs:254:30
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn do_scan(db: Data<DB>, documentResultsVec: &mut Vec<DocumentResult>, queryComparisons: &Vec<QueryComparison>) -> Result<(), S...
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `document_results_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryComparisons` should have a snake case name
[INFO] [stdout]    --> src/service.rs:254:76
[INFO] [stdout]     |
[INFO] [stdout] 254 | ...ut Vec<DocumentResult>, queryComparisons: &Vec<QueryComparison>) -> Result<(), String> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `query_comparisons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `filePath` should have a snake case name
[INFO] [stdout]    --> src/service.rs:260:28
[INFO] [stdout]     |
[INFO] [stdout] 260 |                 .and_then(|filePath| {
[INFO] [stdout]     |                            ^^^^^^^^ help: convert the identifier to snake case: `file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryComparison` should have a snake case name
[INFO] [stdout]    --> src/service.rs:263:73
[INFO] [stdout]     |
[INFO] [stdout] 263 | ...                   let is_match = queryComparisons.iter().all(|queryComparison| queryComparison.matches_document(&document));
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `query_comparison`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `documentResult` should have a snake case name
[INFO] [stdout]    --> src/service.rs:265:37
[INFO] [stdout]     |
[INFO] [stdout] 265 | ...                   let documentResult = DocumentResult {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `document_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::dev::ResourcePath`
[INFO] [stdout]   --> src/service.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use actix_web::dev::ResourcePath;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]   --> src/routes.rs:24:20
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub async fn greet(req: HttpRequest) -> HttpResponse {
[INFO] [stdout]    |                    ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]   --> src/routes.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub async fn addDoc(req: HttpRequest, document: web::Json<Document>, db: web::Data<DB>) -> impl Responder {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]   --> src/routes.rs:43:22
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub async fn getById(req: HttpRequest, id: web::Path<String>, db: web::Data<DB>) -> impl Responder {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]   --> src/routes.rs:53:21
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub async fn getDoc(req: HttpRequest, query: web::Query<QueryParams>, db: web::Data<DB>) -> impl Responder {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `s` is never read
[INFO] [stdout]    --> src/lexer.rs:120:17
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let mut s = "";
[INFO] [stdout]     |                 ^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `u_key` is never read
[INFO] [stdout]    --> src/lexer.rs:177:37
[INFO] [stdout]     |
[INFO] [stdout] 177 |                     let mut u_key = String::new();
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/lexer.rs:247:18
[INFO] [stdout]     |
[INFO] [stdout] 247 |             Err((e,at)) => {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `document`
[INFO] [stdout]   --> src/service.rs:63:29
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn matchDocument(&self, document: &HashMap<String, Value>) -> Result<bool, String> {
[INFO] [stdout]    |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_document`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `queryComparison`
[INFO] [stdout]   --> src/service.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         for queryComparison in &queryComparisons {}
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_queryComparison`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/service.rs:84:37
[INFO] [stdout]    |
[INFO] [stdout] 84 |                         }).map_err(|e|io::Error::from(ErrorKind::InvalidData) )
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/service.rs:201:51
[INFO] [stdout]     |
[INFO] [stdout] 201 | ...                   .map(|(k, v)| k.to_owned())
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/service.rs:200:51
[INFO] [stdout]     |
[INFO] [stdout] 200 | ...                   .filter(|(key, value)| **value == equalQueryCount)
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matchedIds`
[INFO] [stdout]    --> src/service.rs:184:33
[INFO] [stdout]     |
[INFO] [stdout] 184 | ...                   let matchedIds = match db.get_indexed_document(&index_key) {
[INFO] [stdout]     |                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matchedIds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `index_lookup` is never used
[INFO] [stdout]   --> src/db.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl DB {
[INFO] [stdout]    | ------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn index_lookup(&self, pathValue: &str) -> Result<Vec<String>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `matchDocument` is never used
[INFO] [stdout]   --> src/service.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl QueryParams {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 63 |     fn matchDocument(&self, document: &HashMap<String, Value>) -> Result<bool, String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `reIndex` is never used
[INFO] [stdout]   --> src/service.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl Service {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 72 |
[INFO] [stdout] 73 |     pub fn reIndex(db: &DB) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `addDoc` should have a snake case name
[INFO] [stdout]   --> src/routes.rs:29:14
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub async fn addDoc(req: HttpRequest, document: web::Json<Document>, db: web::Data<DB>) -> impl Responder {
[INFO] [stdout]    |              ^^^^^^ help: convert the identifier to snake case: `add_doc`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `getById` should have a snake case name
[INFO] [stdout]   --> src/routes.rs:43:14
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub async fn getById(req: HttpRequest, id: web::Path<String>, db: web::Data<DB>) -> impl Responder {
[INFO] [stdout]    |              ^^^^^^^ help: convert the identifier to snake case: `get_by_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `getDoc` should have a snake case name
[INFO] [stdout]   --> src/routes.rs:53:14
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub async fn getDoc(req: HttpRequest, query: web::Query<QueryParams>, db: web::Data<DB>) -> impl Responder {
[INFO] [stdout]    |              ^^^^^^ help: convert the identifier to snake case: `get_doc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `documentResponse` should have a snake case name
[INFO] [stdout]   --> src/routes.rs:55:14
[INFO] [stdout]    |
[INFO] [stdout] 55 |        Ok(Ok(documentResponse)) => HttpResponse::Ok().json(documentResponse),
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `document_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `dbDir` should have a snake case name
[INFO] [stdout]   --> src/db.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub dbDir: String,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `db_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `indexDir` should have a snake case name
[INFO] [stdout]   --> src/db.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub indexDir: String,
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `index_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `dbDir` should have a snake case name
[INFO] [stdout]   --> src/db.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let dbDir = match std::env::home_dir() {
[INFO] [stdout]    |             ^^^^^ help: convert the identifier to snake case: `db_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `indexDir` should have a snake case name
[INFO] [stdout]   --> src/db.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let indexDir = format!("{}.index", &dbDir);
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `index_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `indexDir` should have a snake case name
[INFO] [stdout]   --> src/db.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let indexDir = Path::new(&indexDir);
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `index_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `getById` should have a snake case name
[INFO] [stdout]   --> src/db.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn getById(&self, id: &str) -> Result<Option<Document>, String> {
[INFO] [stdout]    |            ^^^^^^^ help: convert the identifier to snake case: `get_by_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathValue` should have a snake case name
[INFO] [stdout]   --> src/db.rs:70:40
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn get_indexed_document(&self, pathValue: &str) -> Result<String, String> {
[INFO] [stdout]    |                                        ^^^^^^^^^ help: convert the identifier to snake case: `path_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathValue` should have a snake case name
[INFO] [stdout]   --> src/db.rs:98:32
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn index_lookup(&self, pathValue: &str) -> Result<Vec<String>, String> {
[INFO] [stdout]    |                                ^^^^^^^^^ help: convert the identifier to snake case: `path_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fileContents` should have a snake case name
[INFO] [stdout]    --> src/db.rs:103:27
[INFO] [stdout]     |
[INFO] [stdout] 103 |                     .map(|fileContents| fileContents.split(",").map(|e| e.to_string()).collect::<Vec<String>>())
[INFO] [stdout]     |                           ^^^^^^^^^^^^ help: convert the identifier to snake case: `file_contents`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lexString` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub fn lexString(input : &[u8], mut index : usize) -> Result<(&str, usize), (&str,usize)> {
[INFO] [stdout]     |        ^^^^^^^^^ help: convert the identifier to snake case: `lex_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parseQuery` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn parseQuery<'a>(query : &'a[u8]) -> Result<Vec<QueryComparison<'a>>,  String> {
[INFO] [stdout]     |        ^^^^^^^^^^ help: convert the identifier to snake case: `parse_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `nextIndex` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:214:21
[INFO] [stdout]     |
[INFO] [stdout] 214 |             Ok((key,nextIndex)) => {
[INFO] [stdout]     |                     ^^^^^^^^^ help: convert the identifier to snake case: `next_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `nextIndex` should have a snake case name
[INFO] [stdout]    --> src/lexer.rs:232:31
[INFO] [stdout]     |
[INFO] [stdout] 232 |                     Ok((value,nextIndex)) => {
[INFO] [stdout]     |                               ^^^^^^^^^ help: convert the identifier to snake case: `next_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `from_Map` should have a snake case name
[INFO] [stdout]   --> src/service.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn from_Map(id :&str, result: Map<String, Value>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^ help: convert the identifier to snake case: `from_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fromDocumentResult` should have a snake case name
[INFO] [stdout]   --> src/service.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn fromDocumentResult(result : DocumentResult) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `from_document_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `from_HashMap` should have a snake case name
[INFO] [stdout]   --> src/service.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn from_HashMap(result: HashMap<String, Value>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^ help: convert the identifier to snake case: `from_hash_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `skipIndex` should have a snake case name
[INFO] [stdout]   --> src/service.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     skipIndex: Option<bool>,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to snake case: `skip_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `matchDocument` should have a snake case name
[INFO] [stdout]   --> src/service.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn matchDocument(&self, document: &HashMap<String, Value>) -> Result<bool, String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^ help: convert the identifier to snake case: `match_document`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryComparisons` should have a snake case name
[INFO] [stdout]   --> src/service.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let queryComparisons = parseQuery(self.q.as_bytes())?;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `query_comparisons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryComparison` should have a snake case name
[INFO] [stdout]   --> src/service.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         for queryComparison in &queryComparisons {}
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `query_comparison`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reIndex` should have a snake case name
[INFO] [stdout]   --> src/service.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn reIndex(db: &DB) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^ help: convert the identifier to snake case: `re_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `filePath` should have a snake case name
[INFO] [stdout]   --> src/service.rs:79:28
[INFO] [stdout]    |
[INFO] [stdout] 79 |                 .and_then(|filePath| {
[INFO] [stdout]    |                            ^^^^^^^^ help: convert the identifier to snake case: `file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `osStr` should have a snake case name
[INFO] [stdout]   --> src/service.rs:82:83
[INFO] [stdout]    |
[INFO] [stdout] 82 | ...                   let file_name = filePath.path().file_name().and_then(|osStr| osStr.to_str()).unwrap();
[INFO] [stdout]    |                                                                             ^^^^^ help: convert the identifier to snake case: `os_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathValues` should have a snake case name
[INFO] [stdout]   --> src/service.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let pathValues = get_path_values(document, String::new());
[INFO] [stdout]    |             ^^^^^^^^^^ help: convert the identifier to snake case: `path_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `idsString` should have a snake case name
[INFO] [stdout]    --> src/service.rs:100:24
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 Ok(mut idsString) => {
[INFO] [stdout]     |                        ^^^^^^^^^ help: convert the identifier to snake case: `ids_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `exisitingId` should have a snake case name
[INFO] [stdout]    --> src/service.rs:107:29
[INFO] [stdout]     |
[INFO] [stdout] 107 |                         for exisitingId in ids {
[INFO] [stdout]     |                             ^^^^^^^^^^^ help: convert the identifier to snake case: `exisiting_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `addDoc` should have a snake case name
[INFO] [stdout]    --> src/service.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 |     pub fn addDoc(document: web::Json<Document>, db: web::Data<DB>) -> io::Result<DocumentResponse> {
[INFO] [stdout]     |            ^^^^^^ help: convert the identifier to snake case: `add_doc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `uuidString` should have a snake case name
[INFO] [stdout]    --> src/service.rs:132:21
[INFO] [stdout]     |
[INFO] [stdout] 132 |                 let uuidString = uuid.to_string();
[INFO] [stdout]     |                     ^^^^^^^^^^ help: convert the identifier to snake case: `uuid_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `getDocumentById` should have a snake case name
[INFO] [stdout]    --> src/service.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 |     pub fn getDocumentById(id : &str, db : web::Data<DB>) -> Result<DocumentResponse,String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_document_by_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `emptyDocument` should have a snake case name
[INFO] [stdout]    --> src/service.rs:162:21
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 let emptyDocument = Map::new();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `empty_document`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `getDocuments` should have a snake case name
[INFO] [stdout]    --> src/service.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 |     pub fn getDocuments(query: web::Query<QueryParams>, db: web::Data<DB>) -> Result<Result<DocumentResponse,String>, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^ help: convert the identifier to snake case: `get_documents`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `documentsResults` should have a snake case name
[INFO] [stdout]    --> src/service.rs:170:17
[INFO] [stdout]     |
[INFO] [stdout] 170 |         let mut documentsResults: Vec<DocumentResult> = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `documents_results`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `equalQueryCount` should have a snake case name
[INFO] [stdout]    --> src/service.rs:171:17
[INFO] [stdout]     |
[INFO] [stdout] 171 |         let mut equalQueryCount = 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `equal_query_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `documentIdMatches` should have a snake case name
[INFO] [stdout]    --> src/service.rs:172:17
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let mut documentIdMatches: HashMap<String, u32> = HashMap::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `document_id_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `skipIndex` should have a snake case name
[INFO] [stdout]    --> src/service.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let skipIndex = query.skipIndex.unwrap_or(false);
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `skip_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryComparisons` should have a snake case name
[INFO] [stdout]    --> src/service.rs:176:16
[INFO] [stdout]     |
[INFO] [stdout] 176 |             Ok(queryComparisons) => {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `query_comparisons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `matchedIds` should have a snake case name
[INFO] [stdout]    --> src/service.rs:178:25
[INFO] [stdout]     |
[INFO] [stdout] 178 |                 let mut matchedIds: Vec<String> = vec![];
[INFO] [stdout]     |                         ^^^^^^^^^^ help: convert the identifier to snake case: `matched_ids`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `idsCommaString` should have a snake case name
[INFO] [stdout]    --> src/service.rs:185:36
[INFO] [stdout]     |
[INFO] [stdout] 185 | ...                   Ok(idsCommaString) => {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `ids_comma_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 21s
[INFO] [stdout] warning: variable `documentId` should have a snake case name
[INFO] [stdout]    --> src/service.rs:186:41
[INFO] [stdout]     |
[INFO] [stdout] 186 | ...                   for documentId in idsCommaString.split(",") {
[INFO] [stdout]     |                           ^^^^^^^^^^ help: convert the identifier to snake case: `document_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `matchedIds` should have a snake case name
[INFO] [stdout]    --> src/service.rs:184:33
[INFO] [stdout]     |
[INFO] [stdout] 184 | ...                   let matchedIds = match db.get_indexed_document(&index_key) {
[INFO] [stdout]     |                           ^^^^^^^^^^ help: convert the identifier to snake case: `matched_ids`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryComparison` should have a snake case name
[INFO] [stdout]    --> src/service.rs:222:34
[INFO] [stdout]     |
[INFO] [stdout] 222 |                         .filter(|queryComparison| {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `query_comparison`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `nonEqualQueryComparisons` should have a snake case name
[INFO] [stdout]    --> src/service.rs:220:25
[INFO] [stdout]     |
[INFO] [stdout] 220 |                     let nonEqualQueryComparisons: Vec<&QueryComparison> = queryComparisons
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `non_equal_query_comparisons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryConparison` should have a snake case name
[INFO] [stdout]    --> src/service.rs:228:70
[INFO] [stdout]     |
[INFO] [stdout] 228 | ...                   if (nonEqualQueryComparisons.iter().all(|queryConparison| queryConparison.matches_document(&doc))) {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `query_conparison`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `documentResult` should have a snake case name
[INFO] [stdout]    --> src/service.rs:229:37
[INFO] [stdout]     |
[INFO] [stdout] 229 | ...                   let documentResult = DocumentResult {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `document_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `documentResultsVec` should have a snake case name
[INFO] [stdout]    --> src/service.rs:254:30
[INFO] [stdout]     |
[INFO] [stdout] 254 |     fn do_scan(db: Data<DB>, documentResultsVec: &mut Vec<DocumentResult>, queryComparisons: &Vec<QueryComparison>) -> Result<(), S...
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `document_results_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryComparisons` should have a snake case name
[INFO] [stdout]    --> src/service.rs:254:76
[INFO] [stdout]     |
[INFO] [stdout] 254 | ...ut Vec<DocumentResult>, queryComparisons: &Vec<QueryComparison>) -> Result<(), String> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `query_comparisons`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `filePath` should have a snake case name
[INFO] [stdout]    --> src/service.rs:260:28
[INFO] [stdout]     |
[INFO] [stdout] 260 |                 .and_then(|filePath| {
[INFO] [stdout]     |                            ^^^^^^^^ help: convert the identifier to snake case: `file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryComparison` should have a snake case name
[INFO] [stdout]    --> src/service.rs:263:73
[INFO] [stdout]     |
[INFO] [stdout] 263 | ...                   let is_match = queryComparisons.iter().all(|queryComparison| queryComparison.matches_document(&document));
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `query_comparison`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `documentResult` should have a snake case name
[INFO] [stdout]    --> src/service.rs:265:37
[INFO] [stdout]     |
[INFO] [stdout] 265 | ...                   let documentResult = DocumentResult {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `document_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "fb8c94be42d81a68ec002072970e21c5d2a9666bd39e7f829c0267400b990a80", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb8c94be42d81a68ec002072970e21c5d2a9666bd39e7f829c0267400b990a80", kill_on_drop: false }`
[INFO] [stdout] fb8c94be42d81a68ec002072970e21c5d2a9666bd39e7f829c0267400b990a80
