[INFO] cloning repository https://github.com/ricson-hoo/rustnq
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ricson-hoo/rustnq" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fricson-hoo%2Frustnq", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fricson-hoo%2Frustnq'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cf4bebb78c8b2b1a2fdfaf3ce047fbeaf3ba66e8
[INFO] checking ricson-hoo/rustnq against d8df82673d5911b6112a85bf91d9adefb2c66a1a for pr-162242
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fricson-hoo%2Frustnq" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ricson-hoo/rustnq
[INFO] finished tweaking git repo https://github.com/ricson-hoo/rustnq
[INFO] tweaked toml for git repo https://github.com/ricson-hoo/rustnq written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ricson-hoo/rustnq on toolchain d8df82673d5911b6112a85bf91d9adefb2c66a1a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d8df82673d5911b6112a85bf91d9adefb2c66a1a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ricson-hoo/rustnq 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" "+d8df82673d5911b6112a85bf91d9adefb2c66a1a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bytecheck v0.6.12
[INFO] [stderr]   Downloaded rend v0.4.2
[INFO] [stderr]   Downloaded rkyv_derive v0.7.46
[INFO] [stderr]   Downloaded bytecheck_derive v0.6.12
[INFO] [stderr]   Downloaded rkyv v0.7.46
[INFO] [stderr]   Downloaded block-modes v0.8.1
[INFO] [stderr]   Downloaded borsh-derive v1.8.0
[INFO] [stderr]   Downloaded borsh v1.8.0
[INFO] [stderr]   Downloaded rust_decimal v1.42.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] fb9c704c6a3a71204c46f42c6e6f044ab56c204eaeba28b40ff6f57711a1c1f9
[INFO] running `Command { std: "docker" "start" "fb9c704c6a3a71204c46f42c6e6f044ab56c204eaeba28b40ff6f57711a1c1f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fb9c704c6a3a71204c46f42c6e6f044ab56c204eaeba28b40ff6f57711a1c1f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fb9c704c6a3a71204c46f42c6e6f044ab56c204eaeba28b40ff6f57711a1c1f9" "/opt/rustwide/cargo-home/bin/cargo" "+d8df82673d5911b6112a85bf91d9adefb2c66a1a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fb9c704c6a3a71204c46f42c6e6f044ab56c204eaeba28b40ff6f57711a1c1f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fb9c704c6a3a71204c46f42c6e6f044ab56c204eaeba28b40ff6f57711a1c1f9" "/opt/rustwide/cargo-home/bin/cargo" "+d8df82673d5911b6112a85bf91d9adefb2c66a1a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling const-oid v0.9.6
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling writeable v0.6.4
[INFO] [stderr]    Compiling litemap v0.8.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]    Compiling num-bigint-dig v0.8.6
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling icu_normalizer_data v2.3.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling icu_properties_data v2.3.0
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling futures-core v0.3.34
[INFO] [stderr]     Checking pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling rust_decimal v1.42.1
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling spin v0.9.9
[INFO] [stderr]    Compiling tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling futures-sink v0.3.34
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling tinyvec v1.12.0
[INFO] [stderr]     Checking der v0.7.10
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling futures-task v0.3.34
[INFO] [stderr]    Compiling futures-io v0.3.34
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling crc-catalog v2.5.0
[INFO] [stderr]    Compiling arrayvec v0.7.8
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling crc v3.4.0
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling event-listener v5.4.2
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling pkcs8 v0.10.2
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling pkcs1 v0.7.5
[INFO] [stderr]    Compiling crossbeam-queue v0.3.13
[INFO] [stderr]     Checking num-integer v0.1.47
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling bytes v1.12.1
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling uuid v1.25.0
[INFO] [stderr]    Compiling unicode-properties v0.1.4
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]     Checking num-iter v0.1.46
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling futures-channel v0.3.34
[INFO] [stderr]    Compiling sha1 v0.10.7
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling whoami v1.6.1
[INFO] [stderr]     Checking cipher v0.3.0
[INFO] [stderr]    Compiling hex-literal v0.3.4
[INFO] [stderr]     Checking aes v0.7.5
[INFO] [stderr]     Checking block-modes v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]     Checking tokio v1.53.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.7
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]     Checking tinystr v0.8.4
[INFO] [stderr]     Checking potential_utf v0.1.6
[INFO] [stderr]     Checking icu_collections v2.3.0
[INFO] [stderr]     Checking either v1.18.0
[INFO] [stderr]     Checking rsa v0.9.10
[INFO] [stderr]     Checking icu_locale_core v2.3.0
[INFO] [stderr]     Checking icu_provider v2.3.1
[INFO] [stderr]     Checking icu_normalizer v2.3.0
[INFO] [stderr]     Checking icu_properties v2.3.0
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking sqlx-core v0.8.6
[INFO] [stderr]     Checking sqlx-mysql v0.8.6
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]     Checking sqlx v0.8.6
[INFO] [stderr]     Checking rustnq v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `fmt::write` and `result`
[INFO] [stdout]  --> src/query/builder.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{fmt, fmt::write, format, result};
[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: `HashSet`
[INFO] [stdout]  --> src/query/builder.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Char` and `Tinytext`
[INFO] [stdout]  --> src/query/builder.rs:7:53
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::mapping::column_types::{Boolean, Bigint, Char, Tinytext, Varchar, Date, Decimal, Timestamp, Int, Datetime, Enum, Time, Tin...
[INFO] [stdout]   |                                                     ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `url::Url`
[INFO] [stdout]   --> src/query/builder.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use url::Url;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lazy_static::lazy_static`
[INFO] [stdout]   --> src/query/builder.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use lazy_static::lazy_static;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]   --> src/query/builder.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]   --> src/query/builder.rs:13:24
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde_json::{json, Number};
[INFO] [stdout]    |                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]   --> src/query/builder.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::future::Future;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::Database`
[INFO] [stdout]   --> src/query/builder.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use sqlx::Database;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encryptor`
[INFO] [stdout]   --> src/query/builder.rs:21:28
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::configuration::{encryptor, get_encryptor};
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Update_By_PrimaryKey` should have an upper camel case name
[INFO] [stdout]    --> src/query/builder.rs:163:20
[INFO] [stdout]     |
[INFO] [stdout] 163 |     Select,Insert, Update_By_PrimaryKey,
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `UpdateByPrimaryKey`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Update_By_Condition` should have an upper camel case name
[INFO] [stdout]    --> src/query/builder.rs:164:5
[INFO] [stdout]     |
[INFO] [stdout] 164 |     Update_By_Condition,Insert_Or_Update,Delete
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `UpdateByCondition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Insert_Or_Update` should have an upper camel case name
[INFO] [stdout]    --> src/query/builder.rs:164:25
[INFO] [stdout]     |
[INFO] [stdout] 164 |     Update_By_Condition,Insert_Or_Update,Delete
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InsertOrUpdate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/query/builder.rs:796:7
[INFO] [stdout]     |
[INFO] [stdout] 796 |     if(!insert_fields.contains(&wrapped_name)){
[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] 796 -     if(!insert_fields.contains(&wrapped_name)){
[INFO] [stdout] 796 +     if !insert_fields.contains(&wrapped_name) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/query/builder.rs:1027:31
[INFO] [stdout]      |
[INFO] [stdout] 1027 | ...                   if(str_value.is_empty()) {
[INFO] [stdout]      |                         ^                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1027 -                             if(str_value.is_empty()) {
[INFO] [stdout] 1027 +                             if str_value.is_empty() {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/query/builder.rs:1049:31
[INFO] [stdout]      |
[INFO] [stdout] 1049 | ...                   if(str_value.is_empty()) {
[INFO] [stdout]      |                         ^                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1049 -                             if(str_value.is_empty()) {
[INFO] [stdout] 1049 +                             if str_value.is_empty() {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]     --> src/query/builder.rs:1403:21
[INFO] [stdout]      |
[INFO] [stdout] 1403 |         }else if let(Some(ref limit)) = data_query_builder.limit{
[INFO] [stdout]      |                     ^               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1403 -         }else if let(Some(ref limit)) = data_query_builder.limit{
[INFO] [stdout] 1403 +         }else if let Some(ref limit) = data_query_builder.limit{
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]     --> src/query/builder.rs:1481:21
[INFO] [stdout]      |
[INFO] [stdout] 1481 |         }else if let(Some(ref limit)) = query_builder.limit{
[INFO] [stdout]      |                     ^               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1481 -         }else if let(Some(ref limit)) = query_builder.limit{
[INFO] [stdout] 1481 +         }else if let Some(ref limit) = query_builder.limit{
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/query/statement.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::uuid`
[INFO] [stdout]  --> src/query/statement.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use uuid::uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::RwLock`
[INFO] [stdout]   --> src/query/statement.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::sync::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PROCESSORS` and `get_processors`
[INFO] [stdout]   --> src/query/statement.rs:11:28
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::configuration::{get_processors, PROCESSORS};
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/mapping/description.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Local`
[INFO] [stdout]  --> src/mapping/description.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::Local;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::encode::IsNull`
[INFO] [stdout]  --> src/mapping/description.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use sqlx::encode::IsNull;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Field`
[INFO] [stdout]  --> src/mapping/description.rs:9:29
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::query::builder::{Field, SelectField};
[INFO] [stdout]   |                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `bool` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     bool,
[INFO] [stdout]     |     ^^^^ help: convert the identifier to upper camel case: `Bool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `i8` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     i8,
[INFO] [stdout]     |     ^^ help: convert the identifier to upper camel case (notice the capitalization): `I8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `i16` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     i16,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case (notice the capitalization): `I16`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `i32` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     i32,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case (notice the capitalization): `I32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `i64` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     i64,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case (notice the capitalization): `I64`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `u64` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     u64,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case (notice the capitalization): `U64`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `f64` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 |     f64,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case (notice the capitalization): `F64`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `f32` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 107 |     f32,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case (notice the capitalization): `F32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `u8` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 108 |     u8,//byte
[INFO] [stdout]     |     ^^ help: convert the identifier to upper camel case (notice the capitalization): `U8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `chronoNaiveDate` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 109 |     chronoNaiveDate,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `ChronoNaiveDate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `chronoNaiveTime` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 |     chronoNaiveTime,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `ChronoNaiveTime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `chronoDateTimeLocal` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 |     chronoDateTimeLocal,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `ChronoDateTimeLocal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SqlColumn`
[INFO] [stdout]  --> src/mapping/column_types.rs:1:64
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::mapping::description::{Holding, Column, MappedEnum, SqlColumn};
[INFO] [stdout]   |                                                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/mapping/column_types.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::{Serialize,Deserialize};
[INFO] [stdout]   |             ^^^^^^^^^ ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/mapping/column_types.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encryptor`
[INFO] [stdout]  --> src/mapping/column_types.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::configuration::{encryptor, get_encryptor};
[INFO] [stdout]   |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/mapping/column_types.rs:273:11
[INFO] [stdout]     |
[INFO] [stdout] 273 |         if(alias.is_some()){
[INFO] [stdout]     |           ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 273 -         if(alias.is_some()){
[INFO] [stdout] 273 +         if alias.is_some() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fmt::write` and `result`
[INFO] [stdout]  --> src/query/builder.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{fmt, fmt::write, format, result};
[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: `HashSet`
[INFO] [stdout]  --> src/query/builder.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Char` and `Tinytext`
[INFO] [stdout]  --> src/query/builder.rs:7:53
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::mapping::column_types::{Boolean, Bigint, Char, Tinytext, Varchar, Date, Decimal, Timestamp, Int, Datetime, Enum, Time, Tin...
[INFO] [stdout]   |                                                     ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/codegen/entity.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `url::Url`
[INFO] [stdout]   --> src/query/builder.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use url::Url;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lazy_static::lazy_static`
[INFO] [stdout]   --> src/query/builder.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use lazy_static::lazy_static;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]   --> src/query/builder.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `File`
[INFO] [stdout]  --> src/codegen/entity.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fs::{File, OpenOptions};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]   --> src/query/builder.rs:13:24
[INFO] [stdout]    |
[INFO] [stdout] 13 | use serde_json::{json, Number};
[INFO] [stdout]    |                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/codegen/entity.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]   --> src/query/builder.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::future::Future;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/codegen/entity.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 | use serde::{Serialize, Deserialize};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::Database`
[INFO] [stdout]   --> src/query/builder.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use sqlx::Database;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::query::builder::Condition`
[INFO] [stdout]   --> src/codegen/entity.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::query::builder::Condition;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encryptor`
[INFO] [stdout]   --> src/query/builder.rs:21:28
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::configuration::{encryptor, get_encryptor};
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/codegen/mapping.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]   --> src/codegen/mapping.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::any::Any;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Update_By_PrimaryKey` should have an upper camel case name
[INFO] [stdout]    --> src/query/builder.rs:163:20
[INFO] [stdout]     |
[INFO] [stdout] 163 |     Select,Insert, Update_By_PrimaryKey,
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `UpdateByPrimaryKey`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Update_By_Condition` should have an upper camel case name
[INFO] [stdout]    --> src/query/builder.rs:164:5
[INFO] [stdout]     |
[INFO] [stdout] 164 |     Update_By_Condition,Insert_Or_Update,Delete
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `UpdateByCondition`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Datetime`, `Enum`, `Int`, `Set`, and `Varchar`
[INFO] [stdout]   --> src/codegen/mapping.rs:13:36
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::mapping::column_types::{Datetime, Enum, Int, Set, Varchar};
[INFO] [stdout]    |                                    ^^^^^^^^  ^^^^  ^^^  ^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Insert_Or_Update` should have an upper camel case name
[INFO] [stdout]    --> src/query/builder.rs:164:25
[INFO] [stdout]     |
[INFO] [stdout] 164 |     Update_By_Condition,Insert_Or_Update,Delete
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InsertOrUpdate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Condition` and `QueryBuilder`
[INFO] [stdout]   --> src/codegen/mapping.rs:14:29
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::query::builder::{Condition, QueryBuilder};
[INFO] [stdout]    |                             ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/query/builder.rs:796:7
[INFO] [stdout]     |
[INFO] [stdout] 796 |     if(!insert_fields.contains(&wrapped_name)){
[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] 796 -     if(!insert_fields.contains(&wrapped_name)){
[INFO] [stdout] 796 +     if !insert_fields.contains(&wrapped_name) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/codegen/mapping.rs:61:110
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub async fn generate_mappings(conn: &impl TableIntrospector, db_name:&str, config: MappingGenerateConfig) { ///*mappings_out_dir:&str, name_of_crate_holds_enums: String, boolean_columns: &HashMap<String, HashSet<String>>, trait_for_enum_types: &HashMap<&str, &str>*/
[INFO] [stdout]    |                                                                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |     let mappings_out_dir = config.output_dir.clone();
[INFO] [stdout]    |     ------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/query/builder.rs:1027:31
[INFO] [stdout]      |
[INFO] [stdout] 1027 | ...                   if(str_value.is_empty()) {
[INFO] [stdout]      |                         ^                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1027 -                             if(str_value.is_empty()) {
[INFO] [stdout] 1027 +                             if str_value.is_empty() {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/query/builder.rs:1049:31
[INFO] [stdout]      |
[INFO] [stdout] 1049 | ...                   if(str_value.is_empty()) {
[INFO] [stdout]      |                         ^                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1049 -                             if(str_value.is_empty()) {
[INFO] [stdout] 1049 +                             if str_value.is_empty() {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::char::ToUppercase`
[INFO] [stdout]  --> src/utils/stringUtils.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::char::ToUppercase;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encode`
[INFO] [stdout]  --> src/configuration/aes_enc_dec.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use hex::{decode, encode};
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]     --> src/query/builder.rs:1403:21
[INFO] [stdout]      |
[INFO] [stdout] 1403 |         }else if let(Some(ref limit)) = data_query_builder.limit{
[INFO] [stdout]      |                     ^               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1403 -         }else if let(Some(ref limit)) = data_query_builder.limit{
[INFO] [stdout] 1403 +         }else if let Some(ref limit) = data_query_builder.limit{
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hex_literal::hex`
[INFO] [stdout]  --> src/configuration/aes_enc_dec.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use hex_literal::hex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]     --> src/query/builder.rs:1481:21
[INFO] [stdout]      |
[INFO] [stdout] 1481 |         }else if let(Some(ref limit)) = query_builder.limit{
[INFO] [stdout]      |                     ^               ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1481 -         }else if let(Some(ref limit)) = query_builder.limit{
[INFO] [stdout] 1481 +         }else if let Some(ref limit) = query_builder.limit{
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/query/statement.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::uuid`
[INFO] [stdout]  --> src/query/statement.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use uuid::uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::RwLock`
[INFO] [stdout]   --> src/query/statement.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::sync::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PROCESSORS` and `get_processors`
[INFO] [stdout]   --> src/query/statement.rs:11:28
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::configuration::{get_processors, PROCESSORS};
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/mapping/description.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Local`
[INFO] [stdout]  --> src/mapping/description.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::Local;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::encode::IsNull`
[INFO] [stdout]  --> src/mapping/description.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use sqlx::encode::IsNull;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Field`
[INFO] [stdout]  --> src/mapping/description.rs:9:29
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::query::builder::{Field, SelectField};
[INFO] [stdout]   |                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `bool` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     bool,
[INFO] [stdout]     |     ^^^^ help: convert the identifier to upper camel case: `Bool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `i8` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     i8,
[INFO] [stdout]     |     ^^ help: convert the identifier to upper camel case (notice the capitalization): `I8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `i16` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     i16,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case (notice the capitalization): `I16`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `i32` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     i32,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case (notice the capitalization): `I32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `i64` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     i64,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case (notice the capitalization): `I64`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `u64` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     u64,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case (notice the capitalization): `U64`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `f64` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 |     f64,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case (notice the capitalization): `F64`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `f32` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 107 |     f32,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case (notice the capitalization): `F32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `u8` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 108 |     u8,//byte
[INFO] [stdout]     |     ^^ help: convert the identifier to upper camel case (notice the capitalization): `U8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `chronoNaiveDate` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 109 |     chronoNaiveDate,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `ChronoNaiveDate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `chronoNaiveTime` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 110 |     chronoNaiveTime,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `ChronoNaiveTime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `chronoDateTimeLocal` should have an upper camel case name
[INFO] [stdout]    --> src/mapping/description.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 |     chronoDateTimeLocal,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `ChronoDateTimeLocal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SqlColumn`
[INFO] [stdout]  --> src/mapping/column_types.rs:1:64
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::mapping::description::{Holding, Column, MappedEnum, SqlColumn};
[INFO] [stdout]   |                                                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/mapping/column_types.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::{Serialize,Deserialize};
[INFO] [stdout]   |             ^^^^^^^^^ ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/mapping/column_types.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encryptor`
[INFO] [stdout]  --> src/mapping/column_types.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::configuration::{encryptor, get_encryptor};
[INFO] [stdout]   |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/mapping/column_types.rs:273:11
[INFO] [stdout]     |
[INFO] [stdout] 273 |         if(alias.is_some()){
[INFO] [stdout]     |           ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 273 -         if(alias.is_some()){
[INFO] [stdout] 273 +         if alias.is_some() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/codegen/entity.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `File`
[INFO] [stdout]  --> src/codegen/entity.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fs::{File, OpenOptions};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/codegen/entity.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/codegen/entity.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 | use serde::{Serialize, Deserialize};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::query::builder::Condition`
[INFO] [stdout]   --> src/codegen/entity.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::query::builder::Condition;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/codegen/mapping.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]   --> src/codegen/mapping.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::any::Any;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Datetime`, `Enum`, `Int`, `Set`, and `Varchar`
[INFO] [stdout]   --> src/codegen/mapping.rs:13:36
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::mapping::column_types::{Datetime, Enum, Int, Set, Varchar};
[INFO] [stdout]    |                                    ^^^^^^^^  ^^^^  ^^^  ^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Condition` and `QueryBuilder`
[INFO] [stdout]   --> src/codegen/mapping.rs:14:29
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::query::builder::{Condition, QueryBuilder};
[INFO] [stdout]    |                             ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/codegen/mapping.rs:61:110
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub async fn generate_mappings(conn: &impl TableIntrospector, db_name:&str, config: MappingGenerateConfig) { ///*mappings_out_dir:&str, name_of_crate_holds_enums: String, boolean_columns: &HashMap<String, HashSet<String>>, trait_for_enum_types: &HashMap<&str, &str>*/
[INFO] [stdout]    |                                                                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |     let mappings_out_dir = config.output_dir.clone();
[INFO] [stdout]    |     ------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::char::ToUppercase`
[INFO] [stdout]  --> src/utils/stringUtils.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::char::ToUppercase;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encode`
[INFO] [stdout]  --> src/configuration/aes_enc_dec.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use hex::{decode, encode};
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hex_literal::hex`
[INFO] [stdout]  --> src/configuration/aes_enc_dec.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use hex_literal::hex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]   --> src/configuration/aes_enc_dec.rs:36:40
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let encrypted_base64 = base64::encode(&encrypted_data);
[INFO] [stdout]    |                                        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode
[INFO] [stdout]   --> src/configuration/aes_enc_dec.rs:36:40
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let encrypted_base64 = base64::encode(&encrypted_data);
[INFO] [stdout]    |                                        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/query/builder.rs:1511:17
[INFO] [stdout]      |
[INFO] [stdout] 1511 |             let mut limit = query_builder.limit.clone().unwrap().limit;
[INFO] [stdout]      |                 ----^^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/query/builder.rs:1511:17
[INFO] [stdout]      |
[INFO] [stdout] 1511 |             let mut limit = query_builder.limit.clone().unwrap().limit;
[INFO] [stdout]      |                 ----^^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/codegen/entity.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut trait_for_enum_types = config.trait_for_enum_types.clone();
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/codegen/entity.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut trait_for_enum_types = config.trait_for_enum_types.clone();
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/codegen/entity.rs:213:25
[INFO] [stdout]     |
[INFO] [stdout] 213 | ...   let mut struct_field_definition = format!("#[serde(rename = \"{}\")] pub {}_:{},",&it.name, &it.name,field_type_qualified_name);
[INFO] [stdout]     |           ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/codegen/entity.rs:234:25
[INFO] [stdout]     |
[INFO] [stdout] 234 | ...   let mut struct_field_definition = format!("pub {}:{},", format_name(&it.name, field_naming_convention), field_type_qualified_...
[INFO] [stdout]     |           ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/codegen/entity.rs:213:25
[INFO] [stdout]     |
[INFO] [stdout] 213 | ...   let mut struct_field_definition = format!("#[serde(rename = \"{}\")] pub {}_:{},",&it.name, &it.name,field_type_qualified_name);
[INFO] [stdout]     |           ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/codegen/entity.rs:234:25
[INFO] [stdout]     |
[INFO] [stdout] 234 | ...   let mut struct_field_definition = format!("pub {}:{},", format_name(&it.name, field_naming_convention), field_type_qualified_...
[INFO] [stdout]     |           ----^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]     --> src/mapping/column_types.rs:2693:68
[INFO] [stdout]      |
[INFO] [stdout] 2693 |         let timestamp_begin = NaiveDateTime::new(input, NaiveTime::from_hms(0, 0, 0));
[INFO] [stdout]      |                                                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]     --> src/mapping/column_types.rs:2695:66
[INFO] [stdout]      |
[INFO] [stdout] 2695 |         let timestamp_end = NaiveDateTime::new(input, NaiveTime::from_hms(23, 59, 59));
[INFO] [stdout]      |                                                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/query/builder.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::Executor`
[INFO] [stdout]   --> src/query/builder.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use sqlx::Executor;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Value`
[INFO] [stdout]  --> src/query/builder.rs:6:57
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sqlx::{Column as MysqlColumn, Error, Row, TypeInfo, Value, ValueRef};
[INFO] [stdout]   |                                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValueRef`
[INFO] [stdout]  --> src/query/builder.rs:6:64
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sqlx::{Column as MysqlColumn, Error, Row, TypeInfo, Value, ValueRef};
[INFO] [stdout]   |                                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MappedEnum`
[INFO] [stdout]  --> src/mapping/column_types.rs:1:52
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::mapping::description::{Holding, Column, MappedEnum, SqlColumn};
[INFO] [stdout]   |                                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Column`
[INFO] [stdout]  --> src/codegen/mapping.rs:9:35
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::mapping::description::{Column, TableFieldConstructInfo, MysqlColumnDefinition, SqlColumn};
[INFO] [stdout]   |                                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]     --> src/mapping/column_types.rs:2693:68
[INFO] [stdout]      |
[INFO] [stdout] 2693 |         let timestamp_begin = NaiveDateTime::new(input, NaiveTime::from_hms(0, 0, 0));
[INFO] [stdout]      |                                                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]     --> src/mapping/column_types.rs:2695:66
[INFO] [stdout]      |
[INFO] [stdout] 2695 |         let timestamp_end = NaiveDateTime::new(input, NaiveTime::from_hms(23, 59, 59));
[INFO] [stdout]      |                                                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `String`
[INFO] [stdout]    --> src/query/builder.rs:331:34
[INFO] [stdout]     |
[INFO] [stdout] 331 | ...   SelectField::Untyped(String) => self.clone(), //target for String is not support, pls write it directly as SelectField::Untyp...
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_String`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `select_all`
[INFO] [stdout]     --> src/query/builder.rs:1163:21
[INFO] [stdout]      |
[INFO] [stdout] 1163 |         if let Some(select_all) = self.is_select_all {
[INFO] [stdout]      |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_select_all`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/query/builder.rs:1229:21
[INFO] [stdout]      |
[INFO] [stdout] 1229 |     pub fn as_table(mut self, table: &str) -> InnerTable {
[INFO] [stdout]      |                     ----^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/query/builder.rs:1286:21
[INFO] [stdout]      |
[INFO] [stdout] 1286 |     pub fn asVachar(mut self, name: &str) -> Varchar {
[INFO] [stdout]      |                     ----^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/query/builder.rs:1290:16
[INFO] [stdout]      |
[INFO] [stdout] 1290 |     pub fn as_(mut self, name: &str) -> Varchar {
[INFO] [stdout]      |                ----^^^^
[INFO] [stdout]      |                |
[INFO] [stdout]      |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]     --> src/query/builder.rs:1463:25
[INFO] [stdout]      |
[INFO] [stdout] 1463 |           let mut count = 0;
[INFO] [stdout]      |                           ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1468 | /                 count = sqlx::query::<Db>(&query_string)
[INFO] [stdout] 1469 | |                     .try_map(|row: DbRow| {
[INFO] [stdout] 1470 | |                         self.convert_to_number(row)
[INFO] [stdout] 1471 | |                     })
[INFO] [stdout] 1472 | |                     .fetch_one(pool)
[INFO] [stdout] 1473 | |                     .await?;
[INFO] [stdout]      | |___________________________- `count` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/query/builder.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::Executor`
[INFO] [stdout]   --> src/query/builder.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use sqlx::Executor;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Value`
[INFO] [stdout]  --> src/query/builder.rs:6:57
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sqlx::{Column as MysqlColumn, Error, Row, TypeInfo, Value, ValueRef};
[INFO] [stdout]   |                                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValueRef`
[INFO] [stdout]  --> src/query/builder.rs:6:64
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sqlx::{Column as MysqlColumn, Error, Row, TypeInfo, Value, ValueRef};
[INFO] [stdout]   |                                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MappedEnum`
[INFO] [stdout]  --> src/mapping/column_types.rs:1:52
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::mapping::description::{Holding, Column, MappedEnum, SqlColumn};
[INFO] [stdout]   |                                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Column`
[INFO] [stdout]  --> src/codegen/mapping.rs:9:35
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::mapping::description::{Column, TableFieldConstructInfo, MysqlColumnDefinition, SqlColumn};
[INFO] [stdout]   |                                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `column_name`
[INFO] [stdout]     --> src/query/builder.rs:2202:17
[INFO] [stdout]      |
[INFO] [stdout] 2202 |             let column_name = colum.name();
[INFO] [stdout]      |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_column_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `String`
[INFO] [stdout]    --> src/query/builder.rs:331:34
[INFO] [stdout]     |
[INFO] [stdout] 331 | ...   SelectField::Untyped(String) => self.clone(), //target for String is not support, pls write it directly as SelectField::Untyp...
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_String`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/query/builder.rs:2409:13
[INFO] [stdout]      |
[INFO] [stdout] 2409 |             _ => {
[INFO] [stdout]      |             ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/query/builder.rs:2409:13
[INFO] [stdout]      |
[INFO] [stdout] 2228 |             Operation::Select => {
[INFO] [stdout]      |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2297 |             Operation::Insert => {
[INFO] [stdout]      |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2314 |             Operation::Update_By_PrimaryKey => {
[INFO] [stdout]      |             ------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2342 |             Operation::Update_By_Condition => {
[INFO] [stdout]      |             ------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2409 |             _ => {
[INFO] [stdout]      |             ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]     --> src/query/builder.rs:2263:26
[INFO] [stdout]      |
[INFO] [stdout] 2263 |                     for (i, join) in self.joins.iter().enumerate() {
[INFO] [stdout]      |                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `queryString` is never read
[INFO] [stdout]     --> src/query/builder.rs:2226:31
[INFO] [stdout]      |
[INFO] [stdout] 2226 |         let mut queryString = "".to_string();
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 2233 |                         queryString = format!("select {}",self.populate_select_fields_as_string());//self.select_fields.join(", ")
[INFO] [stdout]      |                         ----------- `queryString` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `primary_key`
[INFO] [stdout]     --> src/query/builder.rs:2435:38
[INFO] [stdout]      |
[INFO] [stdout] 2435 |     fn update_primary_key(&mut self, primary_key: Vec<SqlColumn>) -> () {
[INFO] [stdout]      |                                      ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_primary_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_table`
[INFO] [stdout]    --> src/query/statement.rs:175:9
[INFO] [stdout]     |
[INFO] [stdout] 175 |     let target_table:TargetTable = TargetTable::new(table_with_value);
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `select_all`
[INFO] [stdout]     --> src/query/builder.rs:1163:21
[INFO] [stdout]      |
[INFO] [stdout] 1163 |         if let Some(select_all) = self.is_select_all {
[INFO] [stdout]      |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_select_all`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/query/builder.rs:1229:21
[INFO] [stdout]      |
[INFO] [stdout] 1229 |     pub fn as_table(mut self, table: &str) -> InnerTable {
[INFO] [stdout]      |                     ----^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/query/builder.rs:1286:21
[INFO] [stdout]      |
[INFO] [stdout] 1286 |     pub fn asVachar(mut self, name: &str) -> Varchar {
[INFO] [stdout]      |                     ----^^^^
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/query/builder.rs:1290:16
[INFO] [stdout]      |
[INFO] [stdout] 1290 |     pub fn as_(mut self, name: &str) -> Varchar {
[INFO] [stdout]      |                ----^^^^
[INFO] [stdout]      |                |
[INFO] [stdout]      |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]     --> src/query/builder.rs:1463:25
[INFO] [stdout]      |
[INFO] [stdout] 1463 |           let mut count = 0;
[INFO] [stdout]      |                           ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1468 | /                 count = sqlx::query::<Db>(&query_string)
[INFO] [stdout] 1469 | |                     .try_map(|row: DbRow| {
[INFO] [stdout] 1470 | |                         self.convert_to_number(row)
[INFO] [stdout] 1471 | |                     })
[INFO] [stdout] 1472 | |                     .fetch_one(pool)
[INFO] [stdout] 1473 | |                     .await?;
[INFO] [stdout]      | |___________________________- `count` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]     --> src/mapping/column_types.rs:1178:17
[INFO] [stdout]      |
[INFO] [stdout] 1178 |             Err(err) => {
[INFO] [stdout]      |                 ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `column_name`
[INFO] [stdout]     --> src/query/builder.rs:2202:17
[INFO] [stdout]      |
[INFO] [stdout] 2202 |             let column_name = colum.name();
[INFO] [stdout]      |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_column_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/query/builder.rs:2409:13
[INFO] [stdout]      |
[INFO] [stdout] 2409 |             _ => {
[INFO] [stdout]      |             ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/query/builder.rs:2409:13
[INFO] [stdout]      |
[INFO] [stdout] 2228 |             Operation::Select => {
[INFO] [stdout]      |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2297 |             Operation::Insert => {
[INFO] [stdout]      |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2314 |             Operation::Update_By_PrimaryKey => {
[INFO] [stdout]      |             ------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2342 |             Operation::Update_By_Condition => {
[INFO] [stdout]      |             ------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2409 |             _ => {
[INFO] [stdout]      |             ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]     --> src/query/builder.rs:2263:26
[INFO] [stdout]      |
[INFO] [stdout] 2263 |                     for (i, join) in self.joins.iter().enumerate() {
[INFO] [stdout]      |                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `queryString` is never read
[INFO] [stdout]     --> src/query/builder.rs:2226:31
[INFO] [stdout]      |
[INFO] [stdout] 2226 |         let mut queryString = "".to_string();
[INFO] [stdout]      |                               ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 2233 |                         queryString = format!("select {}",self.populate_select_fields_as_string());//self.select_fields.join(", ")
[INFO] [stdout]      |                         ----------- `queryString` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `primary_key`
[INFO] [stdout]     --> src/query/builder.rs:2435:38
[INFO] [stdout]      |
[INFO] [stdout] 2435 |     fn update_primary_key(&mut self, primary_key: Vec<SqlColumn>) -> () {
[INFO] [stdout]      |                                      ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_primary_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_table`
[INFO] [stdout]    --> src/query/statement.rs:175:9
[INFO] [stdout]     |
[INFO] [stdout] 175 |     let target_table:TargetTable = TargetTable::new(table_with_value);
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db_name`
[INFO] [stdout]   --> src/codegen/entity.rs:76:63
[INFO] [stdout]    |
[INFO] [stdout] 76 | ...&impl TableIntrospector, db_name:&str, config:EntityGenerateConfig) {/*entity_out_dir:&str, boolean_columns: &HashMap<String, Has...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_db_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pattern`
[INFO] [stdout]    --> src/codegen/entity.rs:149:10
[INFO] [stdout]     |
[INFO] [stdout] 149 |     for (pattern, enum_trait) in trait_for_enum_types{
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nullable`
[INFO] [stdout]    --> src/codegen/entity.rs:194:21
[INFO] [stdout]     |
[INFO] [stdout] 194 |                 let nullable = it.nullable;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nullable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_primary_key`
[INFO] [stdout]    --> src/codegen/entity.rs:195:21
[INFO] [stdout]     |
[INFO] [stdout] 195 |                 let is_primary_key = it.is_primary_key;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_primary_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prop`
[INFO] [stdout]    --> src/codegen/entity.rs:573:29
[INFO] [stdout]     |
[INFO] [stdout] 573 |                         let prop = mysql_data_type_prop.clone();
[INFO] [stdout]     |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_prop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unsupported_char_in_enum_key`
[INFO] [stdout]    --> src/codegen/entity.rs:605:45
[INFO] [stdout]     |
[INFO] [stdout] 605 | fn get_qualified_enum_key(enum_value: &str, unsupported_char_in_enum_key: &HashSet<&str>) -> String {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_unsupported_char_in_enum_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trt`
[INFO] [stdout]    --> src/codegen/entity.rs:668:14
[INFO] [stdout]     |
[INFO] [stdout] 668 |         for (trt,import_str) in traits_to_be_implemented.clone(){
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_trt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/codegen/entity.rs:696:10
[INFO] [stdout]     |
[INFO] [stdout] 696 |     for (index, item) in enum_items.iter().enumerate() {
[INFO] [stdout]     |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `import_str`
[INFO] [stdout]    --> src/codegen/entity.rs:737:18
[INFO] [stdout]     |
[INFO] [stdout] 737 |         for (trt,import_str) in traits_to_be_implemented {
[INFO] [stdout]     |                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_import_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/codegen/entity.rs:745:10
[INFO] [stdout]     |
[INFO] [stdout] 745 |     for (index, item) in enum_items.iter().enumerate() {
[INFO] [stdout]     |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db_name`
[INFO] [stdout]   --> src/codegen/mapping.rs:61:63
[INFO] [stdout]    |
[INFO] [stdout] 61 | ...&impl TableIntrospector, db_name:&str, config: MappingGenerateConfig) { ///*mappings_out_dir:&str, name_of_crate_holds_enums: Str...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_db_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]     --> src/mapping/column_types.rs:1178:17
[INFO] [stdout]      |
[INFO] [stdout] 1178 |             Err(err) => {
[INFO] [stdout]      |                 ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `column_type_name` is never read
[INFO] [stdout]    --> src/codegen/mapping.rs:321:32
[INFO] [stdout]     |
[INFO] [stdout] 321 |     let mut column_type_name = "".to_string();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 322 |     if !col_definition.contains("("){
[INFO] [stdout] 323 |         column_type_name = stringUtils::begin_with_upper_case(&stringUtils::to_camel_case(&col_definition.replace(" ", "_")));
[INFO] [stdout]     |         ---------------- `column_type_name` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TargetTable` is more private than the item `TableJoin::new`
[INFO] [stdout]    --> src/query/builder.rs:207:5
[INFO] [stdout]     |
[INFO] [stdout] 207 |     pub fn new(target_table: TargetTable, join_type:JoinType, condition:Option<Condition>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `TableJoin::new` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `TargetTable` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/query/builder.rs:168:1
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub(crate) struct TargetTable{
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TargetTable` is more private than the item `builder::QueryBuilder::target_table`
[INFO] [stdout]    --> src/query/builder.rs:755:5
[INFO] [stdout]     |
[INFO] [stdout] 755 |     pub target_table: Option<TargetTable>,//Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `builder::QueryBuilder::target_table` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `TargetTable` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/query/builder.rs:168:1
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub(crate) struct TargetTable{
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `count_all` is never read
[INFO] [stdout]    --> src/query/builder.rs:754:5
[INFO] [stdout]     |
[INFO] [stdout] 750 | pub struct QueryBuilder {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 754 |     count_all:Option<bool>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `QueryBuilder` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pg_value_kind` is never used
[INFO] [stdout]    --> src/query/dialect.rs:390:4
[INFO] [stdout]     |
[INFO] [stdout] 390 | fn pg_value_kind(type_name: &str) -> ValueKind {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PG_RESERVED_KEYWORDS` is never used
[INFO] [stdout]    --> src/query/dialect.rs:456:7
[INFO] [stdout]     |
[INFO] [stdout] 456 | const PG_RESERVED_KEYWORDS: &[&str] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `target` and `sub_query` are never read
[INFO] [stdout]    --> src/mapping/column_types.rs:564:5
[INFO] [stdout]     |
[INFO] [stdout] 560 | pub struct Char{
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 564 |     target:Option<String>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 565 |     value: Option<String>,
[INFO] [stdout] 566 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Char` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `target` and `sub_query` are never read
[INFO] [stdout]    --> src/mapping/column_types.rs:667:5
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub struct Tinytext{
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 667 |     target:Option<String>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 668 |     value: Option<String>,
[INFO] [stdout] 669 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Tinytext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sub_query` is never read
[INFO] [stdout]    --> src/mapping/column_types.rs:850:5
[INFO] [stdout]     |
[INFO] [stdout] 844 | pub struct Mediumtext{
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 850 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mediumtext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sub_query` and `holding` are never read
[INFO] [stdout]     --> src/mapping/column_types.rs:1246:5
[INFO] [stdout]      |
[INFO] [stdout] 1240 | pub struct Year{
[INFO] [stdout]      |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1246 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1247 |     holding: Holding,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Year` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sub_query` and `holding` are never read
[INFO] [stdout]     --> src/mapping/column_types.rs:1662:5
[INFO] [stdout]      |
[INFO] [stdout] 1656 | pub struct Smallint{
[INFO] [stdout]      |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1662 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1663 |     holding: Holding,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Smallint` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `with_name` and `with_value` are never used
[INFO] [stdout]     --> src/mapping/column_types.rs:1668:8
[INFO] [stdout]      |
[INFO] [stdout] 1667 | impl crate::mapping::column_types::Smallint {
[INFO] [stdout]      | ------------------------------------------- associated functions in this implementation
[INFO] [stdout] 1668 |     fn with_name(name: String) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1672 |     fn with_value(value: Option<i16>) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sub_query` and `holding` are never read
[INFO] [stdout]     --> src/mapping/column_types.rs:1841:5
[INFO] [stdout]      |
[INFO] [stdout] 1835 | pub struct BigintUnsigned{
[INFO] [stdout]      |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1841 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1842 |     holding: Holding,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `BigintUnsigned` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sub_query` and `holding` are never read
[INFO] [stdout]     --> src/mapping/column_types.rs:1916:5
[INFO] [stdout]      |
[INFO] [stdout] 1910 | pub struct Numeric{
[INFO] [stdout]      |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1916 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1917 |     holding: Holding,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Numeric` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sub_query` and `holding` are never read
[INFO] [stdout]     --> src/mapping/column_types.rs:1991:5
[INFO] [stdout]      |
[INFO] [stdout] 1985 | pub struct Float{
[INFO] [stdout]      |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1991 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1992 |     holding: Holding,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Float` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_value` is never used
[INFO] [stdout]     --> src/mapping/column_types.rs:2001:8
[INFO] [stdout]      |
[INFO] [stdout] 1996 | impl crate::mapping::column_types::Float {
[INFO] [stdout]      | ---------------------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2001 |     fn with_value(value: Option<f32>) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sub_query` and `holding` are never read
[INFO] [stdout]     --> src/mapping/column_types.rs:2066:5
[INFO] [stdout]      |
[INFO] [stdout] 2060 | pub struct Double{
[INFO] [stdout]      |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 2066 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 2067 |     holding: Holding,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Double` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_value` is never used
[INFO] [stdout]     --> src/mapping/column_types.rs:2076:8
[INFO] [stdout]      |
[INFO] [stdout] 2071 | impl crate::mapping::column_types::Double {
[INFO] [stdout]      | ----------------------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2076 |     fn with_value(value: Option<f64>) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_value` is never used
[INFO] [stdout]     --> src/mapping/column_types.rs:2561:8
[INFO] [stdout]      |
[INFO] [stdout] 2556 | impl crate::mapping::column_types::Datetime {
[INFO] [stdout]      | ------------------------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2561 |     fn with_value(value: Option<chrono::DateTime<Local>>) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sub_query` is never read
[INFO] [stdout]     --> src/mapping/column_types.rs:2790:5
[INFO] [stdout]      |
[INFO] [stdout] 2784 | pub struct Json{
[INFO] [stdout]      |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 2790 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Json` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sub_query` and `holding` are never read
[INFO] [stdout]     --> src/mapping/column_types.rs:2878:5
[INFO] [stdout]      |
[INFO] [stdout] 2872 | pub struct Blob{
[INFO] [stdout]      |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 2878 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 2879 |     holding: Holding,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Blob` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `with_name` and `with_value` are never used
[INFO] [stdout]     --> src/mapping/column_types.rs:2884:8
[INFO] [stdout]      |
[INFO] [stdout] 2883 | impl crate::mapping::column_types::Blob {
[INFO] [stdout]      | --------------------------------------- associated functions in this implementation
[INFO] [stdout] 2884 |     fn with_name(name: String) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2888 |     fn with_value(value: Option<Vec<u8>>) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_primitive_type` is never read
[INFO] [stdout]   --> src/codegen/entity.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct StructFieldType {
[INFO] [stdout]    |        --------------- field in this struct
[INFO] [stdout] 16 |     qualified_name: String,
[INFO] [stdout] 17 |     is_primitive_type: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nullable`, `is_primary_key`, and `enum_type_name` are never read
[INFO] [stdout]   --> src/codegen/utils.rs:49:16
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct TableFullFieldRow {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub(crate) nullable:bool,
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 50 |     pub(crate) is_primary_key:bool,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout] 51 |     // enum/set 列的枚举命名来源：M...
[INFO] [stdout] 52 |     pub(crate) enum_type_name: String,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TableFullFieldRow` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_simple_name` is never used
[INFO] [stdout]    --> src/codegen/utils.rs:448:15
[INFO] [stdout]     |
[INFO] [stdout] 448 | pub(crate) fn get_simple_name(qualified_name: &str) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `applyCondition` should have a snake case name
[INFO] [stdout]    --> src/query/builder.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 214 |     pub fn applyCondition(&mut self, condition: Condition) -> TableJoin {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `apply_condition`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `String` should have a snake case name
[INFO] [stdout]    --> src/query/builder.rs:331:34
[INFO] [stdout]     |
[INFO] [stdout] 331 | ...   SelectField::Untyped(String) => self.clone(), //target for String is not support, pls write it directly as SelectField::Untyp...
[INFO] [stdout]     |                            ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `asVachar` should have a snake case name
[INFO] [stdout]     --> src/query/builder.rs:1286:12
[INFO] [stdout]      |
[INFO] [stdout] 1286 |     pub fn asVachar(mut self, name: &str) -> Varchar {
[INFO] [stdout]      |            ^^^^^^^^ help: convert the identifier to snake case: `as_vachar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryString` should have a snake case name
[INFO] [stdout]     --> src/query/builder.rs:2226:17
[INFO] [stdout]      |
[INFO] [stdout] 2226 |         let mut queryString = "".to_string();
[INFO] [stdout]      |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `query_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `typeName` should have a snake case name
[INFO] [stdout]    --> src/mapping/description.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let typeName = stringUtils::begin_with_upper_case(&stringUtils::to_camel_case(&mysql_col_type.replace(" ", "_")));
[INFO] [stdout]     |             ^^^^^^^^ help: convert the identifier to snake case: `type_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `asFields` should have a snake case name
[INFO] [stdout]    --> src/mapping/description.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn asFields(&self) -> Vec<SelectField>;
[INFO] [stdout]     |        ^^^^^^^^ help: convert the identifier to snake case: `as_fields`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `containerType` should have a snake case name
[INFO] [stdout]    --> src/codegen/entity.rs:312:43
[INFO] [stdout]     |
[INFO] [stdout] 312 |     fn resolve_qualified_type_name(&self, containerType:Option<RustDataType>, enumName:Option<&str>) -> String {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^ help: convert the identifier to snake case: `container_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `enumName` should have a snake case name
[INFO] [stdout]    --> src/codegen/entity.rs:312:79
[INFO] [stdout]     |
[INFO] [stdout] 312 |     fn resolve_qualified_type_name(&self, containerType:Option<RustDataType>, enumName:Option<&str>) -> String {
[INFO] [stdout]     |                                                                               ^^^^^^^^ help: convert the identifier to snake case: `enum_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/codegen/entity.rs:743:5
[INFO] [stdout]     |
[INFO] [stdout] 743 |     writeln!(buf_writer,"    pub fn values() -> Vec<{}> {{",enum_name);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 743 |     let _ = writeln!(buf_writer,"    pub fn values() -> Vec<{}> {{",enum_name);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/codegen/entity.rs:744:5
[INFO] [stdout]     |
[INFO] [stdout] 744 |     write!(buf_writer,"        vec![");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 744 |     let _ = write!(buf_writer,"        vec![");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/codegen/entity.rs:746:9
[INFO] [stdout]     |
[INFO] [stdout] 746 |         write!(buf_writer,"{}::{},",enum_name,item);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 746 |         let _ = write!(buf_writer,"{}::{},",enum_name,item);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/codegen/entity.rs:748:5
[INFO] [stdout]     |
[INFO] [stdout] 748 |     write!(buf_writer,"]\n");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 748 |     let _ = write!(buf_writer,"]\n");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/codegen/entity.rs:749:5
[INFO] [stdout]     |
[INFO] [stdout] 749 |     writeln!(buf_writer,"    }}");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 749 |     let _ = writeln!(buf_writer,"    }}");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/codegen/entity.rs:750:5
[INFO] [stdout]     |
[INFO] [stdout] 750 |     writeln!(buf_writer,"}}");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 750 |     let _ = writeln!(buf_writer,"}}");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `columnConstructInfo` should have a snake case name
[INFO] [stdout]    --> src/codegen/mapping.rs:161:21
[INFO] [stdout]     |
[INFO] [stdout] 161 | ...   let columnConstructInfo:TableFieldConstructInfo = get_construct_info_from_column_definition(&table.name,mysql_cloumn_definiti...
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `column_construct_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `enumType` should have a snake case name
[INFO] [stdout]    --> src/codegen/mapping.rs:395:29
[INFO] [stdout]     |
[INFO] [stdout] 395 |                     let mut enumType = format!("{}",&short_enum_name);
[INFO] [stdout]     |                             ^^^^^^^^ help: convert the identifier to snake case: `enum_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `enumType` should have a snake case name
[INFO] [stdout]    --> src/codegen/mapping.rs:413:29
[INFO] [stdout]     |
[INFO] [stdout] 413 |                     let mut enumType = format!("{}",&short_enum_name);
[INFO] [stdout]     |                             ^^^^^^^^ help: convert the identifier to snake case: `enum_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/codegen/utils.rs:340:5
[INFO] [stdout]     |
[INFO] [stdout] 340 |     async fn get_tables(&self) -> Result<Vec<TableRow>, sqlx::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout]     = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 340 -     async fn get_tables(&self) -> Result<Vec<TableRow>, sqlx::Error>;
[INFO] [stdout] 340 +     fn get_tables(&self) -> impl std::future::Future<Output = Result<Vec<TableRow>, sqlx::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/codegen/utils.rs:341:5
[INFO] [stdout]     |
[INFO] [stdout] 341 |     async fn get_table_fields(&self, table_name: &str) -> Result<Vec<TableFieldRow>, sqlx::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 341 -     async fn get_table_fields(&self, table_name: &str) -> Result<Vec<TableFieldRow>, sqlx::Error>;
[INFO] [stdout] 341 +     fn get_table_fields(&self, table_name: &str) -> impl std::future::Future<Output = Result<Vec<TableFieldRow>, sqlx::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/codegen/utils.rs:342:5
[INFO] [stdout]     |
[INFO] [stdout] 342 |     async fn get_table_full_fields(&self, table_name: &str) -> Result<Vec<TableFullFieldRow>, sqlx::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 342 -     async fn get_table_full_fields(&self, table_name: &str) -> Result<Vec<TableFullFieldRow>, sqlx::Error>;
[INFO] [stdout] 342 +     fn get_table_full_fields(&self, table_name: &str) -> impl std::future::Future<Output = Result<Vec<TableFullFieldRow>, sqlx::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/codegen/utils.rs:343:5
[INFO] [stdout]     |
[INFO] [stdout] 343 |     async fn get_table_indexes(&self, table_name: &str) -> Result<Vec<TableIndexRow>, sqlx::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 343 -     async fn get_table_indexes(&self, table_name: &str) -> Result<Vec<TableIndexRow>, sqlx::Error>;
[INFO] [stdout] 343 +     fn get_table_indexes(&self, table_name: &str) -> impl std::future::Future<Output = Result<Vec<TableIndexRow>, sqlx::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `stringUtils` should have a snake case name
[INFO] [stdout]  --> src/utils/mod.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(crate) mod stringUtils;
[INFO] [stdout]   |                ^^^^^^^^^^^ help: convert the identifier to snake case: `string_utils`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/configuration/processor.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     PROCESSORS.set(config);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let _ = PROCESSORS.set(config);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db_name`
[INFO] [stdout]   --> src/codegen/entity.rs:76:63
[INFO] [stdout]    |
[INFO] [stdout] 76 | ...&impl TableIntrospector, db_name:&str, config:EntityGenerateConfig) {/*entity_out_dir:&str, boolean_columns: &HashMap<String, Has...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_db_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pattern`
[INFO] [stdout]    --> src/codegen/entity.rs:149:10
[INFO] [stdout]     |
[INFO] [stdout] 149 |     for (pattern, enum_trait) in trait_for_enum_types{
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nullable`
[INFO] [stdout]    --> src/codegen/entity.rs:194:21
[INFO] [stdout]     |
[INFO] [stdout] 194 |                 let nullable = it.nullable;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nullable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_primary_key`
[INFO] [stdout]    --> src/codegen/entity.rs:195:21
[INFO] [stdout]     |
[INFO] [stdout] 195 |                 let is_primary_key = it.is_primary_key;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_primary_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prop`
[INFO] [stdout]    --> src/codegen/entity.rs:573:29
[INFO] [stdout]     |
[INFO] [stdout] 573 |                         let prop = mysql_data_type_prop.clone();
[INFO] [stdout]     |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_prop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unsupported_char_in_enum_key`
[INFO] [stdout]    --> src/codegen/entity.rs:605:45
[INFO] [stdout]     |
[INFO] [stdout] 605 | fn get_qualified_enum_key(enum_value: &str, unsupported_char_in_enum_key: &HashSet<&str>) -> String {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_unsupported_char_in_enum_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trt`
[INFO] [stdout]    --> src/codegen/entity.rs:668:14
[INFO] [stdout]     |
[INFO] [stdout] 668 |         for (trt,import_str) in traits_to_be_implemented.clone(){
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_trt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/codegen/entity.rs:696:10
[INFO] [stdout]     |
[INFO] [stdout] 696 |     for (index, item) in enum_items.iter().enumerate() {
[INFO] [stdout]     |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `import_str`
[INFO] [stdout]    --> src/codegen/entity.rs:737:18
[INFO] [stdout]     |
[INFO] [stdout] 737 |         for (trt,import_str) in traits_to_be_implemented {
[INFO] [stdout]     |                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_import_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/codegen/entity.rs:745:10
[INFO] [stdout]     |
[INFO] [stdout] 745 |     for (index, item) in enum_items.iter().enumerate() {
[INFO] [stdout]     |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db_name`
[INFO] [stdout]   --> src/codegen/mapping.rs:61:63
[INFO] [stdout]    |
[INFO] [stdout] 61 | ...&impl TableIntrospector, db_name:&str, config: MappingGenerateConfig) { ///*mappings_out_dir:&str, name_of_crate_holds_enums: Str...
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_db_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `column_type_name` is never read
[INFO] [stdout]    --> src/codegen/mapping.rs:321:32
[INFO] [stdout]     |
[INFO] [stdout] 321 |     let mut column_type_name = "".to_string();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 322 |     if !col_definition.contains("("){
[INFO] [stdout] 323 |         column_type_name = stringUtils::begin_with_upper_case(&stringUtils::to_camel_case(&col_definition.replace(" ", "_")));
[INFO] [stdout]     |         ---------------- `column_type_name` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TargetTable` is more private than the item `TableJoin::new`
[INFO] [stdout]    --> src/query/builder.rs:207:5
[INFO] [stdout]     |
[INFO] [stdout] 207 |     pub fn new(target_table: TargetTable, join_type:JoinType, condition:Option<Condition>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `TableJoin::new` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `TargetTable` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/query/builder.rs:168:1
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub(crate) struct TargetTable{
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TargetTable` is more private than the item `builder::QueryBuilder::target_table`
[INFO] [stdout]    --> src/query/builder.rs:755:5
[INFO] [stdout]     |
[INFO] [stdout] 755 |     pub target_table: Option<TargetTable>,//Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `builder::QueryBuilder::target_table` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `TargetTable` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/query/builder.rs:168:1
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub(crate) struct TargetTable{
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `count_all` is never read
[INFO] [stdout]    --> src/query/builder.rs:754:5
[INFO] [stdout]     |
[INFO] [stdout] 750 | pub struct QueryBuilder {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 754 |     count_all:Option<bool>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `QueryBuilder` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pg_value_kind` is never used
[INFO] [stdout]    --> src/query/dialect.rs:390:4
[INFO] [stdout]     |
[INFO] [stdout] 390 | fn pg_value_kind(type_name: &str) -> ValueKind {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PG_RESERVED_KEYWORDS` is never used
[INFO] [stdout]    --> src/query/dialect.rs:456:7
[INFO] [stdout]     |
[INFO] [stdout] 456 | const PG_RESERVED_KEYWORDS: &[&str] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `target` and `sub_query` are never read
[INFO] [stdout]    --> src/mapping/column_types.rs:564:5
[INFO] [stdout]     |
[INFO] [stdout] 560 | pub struct Char{
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 564 |     target:Option<String>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 565 |     value: Option<String>,
[INFO] [stdout] 566 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Char` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `target` and `sub_query` are never read
[INFO] [stdout]    --> src/mapping/column_types.rs:667:5
[INFO] [stdout]     |
[INFO] [stdout] 663 | pub struct Tinytext{
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 667 |     target:Option<String>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 668 |     value: Option<String>,
[INFO] [stdout] 669 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Tinytext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sub_query` is never read
[INFO] [stdout]    --> src/mapping/column_types.rs:850:5
[INFO] [stdout]     |
[INFO] [stdout] 844 | pub struct Mediumtext{
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 850 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mediumtext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sub_query` and `holding` are never read
[INFO] [stdout]     --> src/mapping/column_types.rs:1246:5
[INFO] [stdout]      |
[INFO] [stdout] 1240 | pub struct Year{
[INFO] [stdout]      |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1246 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1247 |     holding: Holding,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Year` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sub_query` and `holding` are never read
[INFO] [stdout]     --> src/mapping/column_types.rs:1662:5
[INFO] [stdout]      |
[INFO] [stdout] 1656 | pub struct Smallint{
[INFO] [stdout]      |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1662 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1663 |     holding: Holding,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Smallint` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `with_name` and `with_value` are never used
[INFO] [stdout]     --> src/mapping/column_types.rs:1668:8
[INFO] [stdout]      |
[INFO] [stdout] 1667 | impl crate::mapping::column_types::Smallint {
[INFO] [stdout]      | ------------------------------------------- associated functions in this implementation
[INFO] [stdout] 1668 |     fn with_name(name: String) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1672 |     fn with_value(value: Option<i16>) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sub_query` and `holding` are never read
[INFO] [stdout]     --> src/mapping/column_types.rs:1841:5
[INFO] [stdout]      |
[INFO] [stdout] 1835 | pub struct BigintUnsigned{
[INFO] [stdout]      |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1841 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1842 |     holding: Holding,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `BigintUnsigned` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sub_query` and `holding` are never read
[INFO] [stdout]     --> src/mapping/column_types.rs:1916:5
[INFO] [stdout]      |
[INFO] [stdout] 1910 | pub struct Numeric{
[INFO] [stdout]      |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1916 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1917 |     holding: Holding,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Numeric` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sub_query` and `holding` are never read
[INFO] [stdout]     --> src/mapping/column_types.rs:1991:5
[INFO] [stdout]      |
[INFO] [stdout] 1985 | pub struct Float{
[INFO] [stdout]      |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1991 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1992 |     holding: Holding,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Float` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_value` is never used
[INFO] [stdout]     --> src/mapping/column_types.rs:2001:8
[INFO] [stdout]      |
[INFO] [stdout] 1996 | impl crate::mapping::column_types::Float {
[INFO] [stdout]      | ---------------------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2001 |     fn with_value(value: Option<f32>) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sub_query` and `holding` are never read
[INFO] [stdout]     --> src/mapping/column_types.rs:2066:5
[INFO] [stdout]      |
[INFO] [stdout] 2060 | pub struct Double{
[INFO] [stdout]      |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 2066 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 2067 |     holding: Holding,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Double` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_value` is never used
[INFO] [stdout]     --> src/mapping/column_types.rs:2076:8
[INFO] [stdout]      |
[INFO] [stdout] 2071 | impl crate::mapping::column_types::Double {
[INFO] [stdout]      | ----------------------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2076 |     fn with_value(value: Option<f64>) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_value` is never used
[INFO] [stdout]     --> src/mapping/column_types.rs:2561:8
[INFO] [stdout]      |
[INFO] [stdout] 2556 | impl crate::mapping::column_types::Datetime {
[INFO] [stdout]      | ------------------------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2561 |     fn with_value(value: Option<chrono::DateTime<Local>>) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sub_query` is never read
[INFO] [stdout]     --> src/mapping/column_types.rs:2790:5
[INFO] [stdout]      |
[INFO] [stdout] 2784 | pub struct Json{
[INFO] [stdout]      |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 2790 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Json` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sub_query` and `holding` are never read
[INFO] [stdout]     --> src/mapping/column_types.rs:2878:5
[INFO] [stdout]      |
[INFO] [stdout] 2872 | pub struct Blob{
[INFO] [stdout]      |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 2878 |     sub_query: Option<QueryBuilder>,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 2879 |     holding: Holding,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `Blob` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `with_name` and `with_value` are never used
[INFO] [stdout]     --> src/mapping/column_types.rs:2884:8
[INFO] [stdout]      |
[INFO] [stdout] 2883 | impl crate::mapping::column_types::Blob {
[INFO] [stdout]      | --------------------------------------- associated functions in this implementation
[INFO] [stdout] 2884 |     fn with_name(name: String) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2888 |     fn with_value(value: Option<Vec<u8>>) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_primitive_type` is never read
[INFO] [stdout]   --> src/codegen/entity.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct StructFieldType {
[INFO] [stdout]    |        --------------- field in this struct
[INFO] [stdout] 16 |     qualified_name: String,
[INFO] [stdout] 17 |     is_primitive_type: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nullable`, `is_primary_key`, and `enum_type_name` are never read
[INFO] [stdout]   --> src/codegen/utils.rs:49:16
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct TableFullFieldRow {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub(crate) nullable:bool,
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 50 |     pub(crate) is_primary_key:bool,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout] 51 |     // enum/set 列的枚举命名来源：M...
[INFO] [stdout] 52 |     pub(crate) enum_type_name: String,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TableFullFieldRow` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_simple_name` is never used
[INFO] [stdout]    --> src/codegen/utils.rs:448:15
[INFO] [stdout]     |
[INFO] [stdout] 448 | pub(crate) fn get_simple_name(qualified_name: &str) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `applyCondition` should have a snake case name
[INFO] [stdout]    --> src/query/builder.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 214 |     pub fn applyCondition(&mut self, condition: Condition) -> TableJoin {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `apply_condition`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `String` should have a snake case name
[INFO] [stdout]    --> src/query/builder.rs:331:34
[INFO] [stdout]     |
[INFO] [stdout] 331 | ...   SelectField::Untyped(String) => self.clone(), //target for String is not support, pls write it directly as SelectField::Untyp...
[INFO] [stdout]     |                            ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `asVachar` should have a snake case name
[INFO] [stdout]     --> src/query/builder.rs:1286:12
[INFO] [stdout]      |
[INFO] [stdout] 1286 |     pub fn asVachar(mut self, name: &str) -> Varchar {
[INFO] [stdout]      |            ^^^^^^^^ help: convert the identifier to snake case: `as_vachar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `queryString` should have a snake case name
[INFO] [stdout]     --> src/query/builder.rs:2226:17
[INFO] [stdout]      |
[INFO] [stdout] 2226 |         let mut queryString = "".to_string();
[INFO] [stdout]      |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `query_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `typeName` should have a snake case name
[INFO] [stdout]    --> src/mapping/description.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let typeName = stringUtils::begin_with_upper_case(&stringUtils::to_camel_case(&mysql_col_type.replace(" ", "_")));
[INFO] [stdout]     |             ^^^^^^^^ help: convert the identifier to snake case: `type_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `asFields` should have a snake case name
[INFO] [stdout]    --> src/mapping/description.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn asFields(&self) -> Vec<SelectField>;
[INFO] [stdout]     |        ^^^^^^^^ help: convert the identifier to snake case: `as_fields`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `containerType` should have a snake case name
[INFO] [stdout]    --> src/codegen/entity.rs:312:43
[INFO] [stdout]     |
[INFO] [stdout] 312 |     fn resolve_qualified_type_name(&self, containerType:Option<RustDataType>, enumName:Option<&str>) -> String {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^ help: convert the identifier to snake case: `container_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `enumName` should have a snake case name
[INFO] [stdout]    --> src/codegen/entity.rs:312:79
[INFO] [stdout]     |
[INFO] [stdout] 312 |     fn resolve_qualified_type_name(&self, containerType:Option<RustDataType>, enumName:Option<&str>) -> String {
[INFO] [stdout]     |                                                                               ^^^^^^^^ help: convert the identifier to snake case: `enum_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/codegen/entity.rs:743:5
[INFO] [stdout]     |
[INFO] [stdout] 743 |     writeln!(buf_writer,"    pub fn values() -> Vec<{}> {{",enum_name);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 743 |     let _ = writeln!(buf_writer,"    pub fn values() -> Vec<{}> {{",enum_name);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/codegen/entity.rs:744:5
[INFO] [stdout]     |
[INFO] [stdout] 744 |     write!(buf_writer,"        vec![");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 744 |     let _ = write!(buf_writer,"        vec![");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/codegen/entity.rs:746:9
[INFO] [stdout]     |
[INFO] [stdout] 746 |         write!(buf_writer,"{}::{},",enum_name,item);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 746 |         let _ = write!(buf_writer,"{}::{},",enum_name,item);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/codegen/entity.rs:748:5
[INFO] [stdout]     |
[INFO] [stdout] 748 |     write!(buf_writer,"]\n");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 748 |     let _ = write!(buf_writer,"]\n");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/codegen/entity.rs:749:5
[INFO] [stdout]     |
[INFO] [stdout] 749 |     writeln!(buf_writer,"    }}");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 749 |     let _ = writeln!(buf_writer,"    }}");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/codegen/entity.rs:750:5
[INFO] [stdout]     |
[INFO] [stdout] 750 |     writeln!(buf_writer,"}}");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 750 |     let _ = writeln!(buf_writer,"}}");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `columnConstructInfo` should have a snake case name
[INFO] [stdout]    --> src/codegen/mapping.rs:161:21
[INFO] [stdout]     |
[INFO] [stdout] 161 | ...   let columnConstructInfo:TableFieldConstructInfo = get_construct_info_from_column_definition(&table.name,mysql_cloumn_definiti...
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `column_construct_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `enumType` should have a snake case name
[INFO] [stdout]    --> src/codegen/mapping.rs:395:29
[INFO] [stdout]     |
[INFO] [stdout] 395 |                     let mut enumType = format!("{}",&short_enum_name);
[INFO] [stdout]     |                             ^^^^^^^^ help: convert the identifier to snake case: `enum_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `enumType` should have a snake case name
[INFO] [stdout]    --> src/codegen/mapping.rs:413:29
[INFO] [stdout]     |
[INFO] [stdout] 413 |                     let mut enumType = format!("{}",&short_enum_name);
[INFO] [stdout]     |                             ^^^^^^^^ help: convert the identifier to snake case: `enum_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/codegen/utils.rs:340:5
[INFO] [stdout]     |
[INFO] [stdout] 340 |     async fn get_tables(&self) -> Result<Vec<TableRow>, sqlx::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout]     = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 340 -     async fn get_tables(&self) -> Result<Vec<TableRow>, sqlx::Error>;
[INFO] [stdout] 340 +     fn get_tables(&self) -> impl std::future::Future<Output = Result<Vec<TableRow>, sqlx::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/codegen/utils.rs:341:5
[INFO] [stdout]     |
[INFO] [stdout] 341 |     async fn get_table_fields(&self, table_name: &str) -> Result<Vec<TableFieldRow>, sqlx::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 341 -     async fn get_table_fields(&self, table_name: &str) -> Result<Vec<TableFieldRow>, sqlx::Error>;
[INFO] [stdout] 341 +     fn get_table_fields(&self, table_name: &str) -> impl std::future::Future<Output = Result<Vec<TableFieldRow>, sqlx::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/codegen/utils.rs:342:5
[INFO] [stdout]     |
[INFO] [stdout] 342 |     async fn get_table_full_fields(&self, table_name: &str) -> Result<Vec<TableFullFieldRow>, sqlx::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 342 -     async fn get_table_full_fields(&self, table_name: &str) -> Result<Vec<TableFullFieldRow>, sqlx::Error>;
[INFO] [stdout] 342 +     fn get_table_full_fields(&self, table_name: &str) -> impl std::future::Future<Output = Result<Vec<TableFullFieldRow>, sqlx::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/codegen/utils.rs:343:5
[INFO] [stdout]     |
[INFO] [stdout] 343 |     async fn get_table_indexes(&self, table_name: &str) -> Result<Vec<TableIndexRow>, sqlx::Error>;
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 343 -     async fn get_table_indexes(&self, table_name: &str) -> Result<Vec<TableIndexRow>, sqlx::Error>;
[INFO] [stdout] 343 +     fn get_table_indexes(&self, table_name: &str) -> impl std::future::Future<Output = Result<Vec<TableIndexRow>, sqlx::Error>> + Send;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `stringUtils` should have a snake case name
[INFO] [stdout]  --> src/utils/mod.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(crate) mod stringUtils;
[INFO] [stdout]   |                ^^^^^^^^^^^ help: convert the identifier to snake case: `string_utils`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/configuration/processor.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     PROCESSORS.set(config);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let _ = PROCESSORS.set(config);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 12s
[INFO] running `Command { std: "docker" "inspect" "fb9c704c6a3a71204c46f42c6e6f044ab56c204eaeba28b40ff6f57711a1c1f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb9c704c6a3a71204c46f42c6e6f044ab56c204eaeba28b40ff6f57711a1c1f9", kill_on_drop: false }`
[INFO] [stdout] fb9c704c6a3a71204c46f42c6e6f044ab56c204eaeba28b40ff6f57711a1c1f9
