[INFO] fetching crate br-db 1.2.4...
[INFO] checking br-db-1.2.4 against master#4d1bd0db7f489b22c6d8aa2385937a95412c015b for pr-114682
[INFO] extracting crate br-db 1.2.4 into /workspace/builds/worker-3-tc1/source
[INFO] validating manifest of crates.io crate br-db 1.2.4 on toolchain 4d1bd0db7f489b22c6d8aa2385937a95412c015b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate br-db 1.2.4
[INFO] finished tweaking crates.io crate br-db 1.2.4
[INFO] tweaked toml for crates.io crate br-db 1.2.4 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] crate crates.io crate br-db 1.2.4 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" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded sqlite v0.32.0
[INFO] [stderr]   Downloaded enumflags2_derive v0.7.8
[INFO] [stderr]   Downloaded value-bag v1.4.2
[INFO] [stderr]   Downloaded encoding-index-singlebyte v1.20141219.5
[INFO] [stderr]   Downloaded connection-string v0.2.0
[INFO] [stderr]   Downloaded encoding-index-korean v1.20141219.5
[INFO] [stderr]   Downloaded syn_derive v0.1.8
[INFO] [stderr]   Downloaded tiberius v0.12.2
[INFO] [stderr]   Downloaded proc-macro-crate v2.0.0
[INFO] [stderr]   Downloaded lexical-write-integer v0.8.5
[INFO] [stderr]   Downloaded funty v2.0.0
[INFO] [stderr]   Downloaded asynchronous-codec v0.6.2
[INFO] [stderr]   Downloaded wyz v0.5.1
[INFO] [stderr]   Downloaded bufstream v0.1.4
[INFO] [stderr]   Downloaded bytecheck_derive v0.6.11
[INFO] [stderr]   Downloaded encoding v0.2.33
[INFO] [stderr]   Downloaded kv-log-macro v1.0.7
[INFO] [stderr]   Downloaded saturating v0.1.0
[INFO] [stderr]   Downloaded bigdecimal v0.3.1
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.38
[INFO] [stderr]   Downloaded linux-raw-sys v0.3.8
[INFO] [stderr]   Downloaded sqlite3-src v0.5.1
[INFO] [stderr]   Downloaded libz-sys v1.1.12
[INFO] [stderr]   Downloaded crossbeam-queue v0.3.8
[INFO] [stderr]   Downloaded lexical-write-float v0.8.5
[INFO] [stderr]   Downloaded encoding_index_tests v0.1.4
[INFO] [stderr]   Downloaded deranged v0.3.9
[INFO] [stderr]   Downloaded tap v1.0.1
[INFO] [stderr]   Downloaded simdutf8 v0.1.4
[INFO] [stderr]   Downloaded seahash v4.1.0
[INFO] [stderr]   Downloaded openssl-sys v0.9.96
[INFO] [stderr]   Downloaded named_pipe v0.4.1
[INFO] [stderr]   Downloaded lexical-parse-float v0.8.5
[INFO] [stderr]   Downloaded encoding-index-japanese v1.20141219.5
[INFO] [stderr]   Downloaded openssl v0.10.60
[INFO] [stderr]   Downloaded encoding-index-simpchinese v1.20141219.5
[INFO] [stderr]   Downloaded rkyv v0.7.42
[INFO] [stderr]   Downloaded encoding-index-tradchinese v1.20141219.5
[INFO] [stderr]   Downloaded async-io v2.2.1
[INFO] [stderr]   Downloaded async-global-executor v2.4.0
[INFO] [stderr]   Downloaded polling v2.8.0
[INFO] [stderr]   Downloaded rustix v0.37.27
[INFO] [stderr]   Downloaded gloo-timers v0.2.6
[INFO] [stderr]   Downloaded async-std v1.12.0
[INFO] [stderr]   Downloaded br-fields v2.0.2
[INFO] [stderr]   Downloaded darling v0.20.3
[INFO] [stderr]   Downloaded pem v2.0.1
[INFO] [stderr]   Downloaded async-trait v0.1.74
[INFO] [stderr]   Downloaded sqlite3-sys v0.15.2
[INFO] [stderr]   Downloaded async-io v1.13.0
[INFO] [stderr]   Downloaded io-lifetimes v1.0.11
[INFO] [stderr]   Downloaded enumflags2 v0.7.8
[INFO] [stderr]   Downloaded borsh-derive v1.2.0
[INFO] [stderr]   Downloaded lexical v6.1.1
[INFO] [stderr]   Downloaded frunk v0.4.2
[INFO] [stderr]   Downloaded ptr_meta v0.1.4
[INFO] [stderr]   Downloaded lru v0.10.1
[INFO] [stderr]   Downloaded lexical-core v0.8.5
[INFO] [stderr]   Downloaded rust_decimal v1.33.1
[INFO] [stderr]   Downloaded bytecheck v0.6.11
[INFO] [stderr]   Downloaded ptr_meta_derive v0.1.4
[INFO] [stderr]   Downloaded rkyv_derive v0.7.42
[INFO] [stderr]   Downloaded polling v3.3.1
[INFO] [stderr]   Downloaded frunk_core v0.4.2
[INFO] [stderr]   Downloaded hashbrown v0.13.2
[INFO] [stderr]   Downloaded unicode-bidi v0.3.13
[INFO] [stderr]   Downloaded lexical-parse-integer v0.8.6
[INFO] [stderr]   Downloaded rend v0.4.1
[INFO] [stderr]   Downloaded io-enum v1.1.1
[INFO] [stderr]   Downloaded borsh v1.2.0
[INFO] [stderr]   Downloaded time v0.3.30
[INFO] [stderr]   Downloaded lexical-util v0.8.5
[INFO] [stderr]   Downloaded sha2 v0.10.8
[INFO] [stderr]   Downloaded time-macros v0.2.15
[INFO] [stderr]   Downloaded frunk_proc_macros v0.1.2
[INFO] [stderr]   Downloaded mysql v24.0.0
[INFO] [stderr]   Downloaded darling_macro v0.20.3
[INFO] [stderr]   Downloaded darling_core v0.20.3
[INFO] [stderr]   Downloaded cmake v0.1.50
[INFO] [stderr]   Downloaded mysql-common-derive v0.30.2
[INFO] [stderr]   Downloaded env_logger v0.10.1
[INFO] [stderr]   Downloaded frunk_proc_macro_helpers v0.1.2
[INFO] [stderr]   Downloaded subprocess v0.2.9
[INFO] [stderr]   Downloaded mysql_common v0.30.6
[INFO] [stderr]   Downloaded derive_utils v0.13.2
[INFO] [stderr]   Downloaded frunk_derives v0.4.2
[INFO] [stderr]   Downloaded futures-macro v0.3.29
[INFO] [stderr]   Downloaded bitvec v1.0.1
[INFO] [stderr]   Downloaded radium v0.7.0
[INFO] [stderr]   Downloaded tokio v1.34.0
[INFO] [stderr]   Downloaded md5 v0.7.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0f75aca93cda6377b1a2936a792d2c450c8ad4ed080c6ab274900fb827a3475a
[INFO] running `Command { std: "docker" "start" "-a" "0f75aca93cda6377b1a2936a792d2c450c8ad4ed080c6ab274900fb827a3475a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0f75aca93cda6377b1a2936a792d2c450c8ad4ed080c6ab274900fb827a3475a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0f75aca93cda6377b1a2936a792d2c450c8ad4ed080c6ab274900fb827a3475a", kill_on_drop: false }`
[INFO] [stdout] 0f75aca93cda6377b1a2936a792d2c450c8ad4ed080c6ab274900fb827a3475a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1aadf0292a0db3bac49d14aa5e6a60a555c21b39bdc17d362208caeb23e0a318
[INFO] running `Command { std: "docker" "start" "-a" "1aadf0292a0db3bac49d14aa5e6a60a555c21b39bdc17d362208caeb23e0a318", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.70
[INFO] [stderr]    Compiling libc v0.2.150
[INFO] [stderr]    Compiling pkg-config v0.3.27
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]     Checking lexical-util v0.8.5
[INFO] [stderr]    Compiling crossbeam-utils v0.8.16
[INFO] [stderr]    Compiling num-bigint v0.4.4
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking once_cell v1.18.0
[INFO] [stderr]    Compiling serde v1.0.193
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]     Checking memchr v2.6.4
[INFO] [stderr]    Compiling syn v2.0.39
[INFO] [stderr]    Compiling thiserror v1.0.50
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling bindgen v0.69.1
[INFO] [stderr]    Compiling hashbrown v0.14.3
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling frunk_core v0.4.2
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]     Checking getrandom v0.2.11
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling indexmap v2.1.0
[INFO] [stderr]    Compiling clang-sys v1.6.1
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]     Checking lexical-write-integer v0.8.5
[INFO] [stderr]     Checking lexical-parse-integer v0.8.6
[INFO] [stderr]    Compiling ahash v0.8.6
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.15
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking regex-syntax v0.8.2
[INFO] [stderr]    Compiling toml_datetime v0.6.5
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]    Compiling winnow v0.5.19
[INFO] [stderr]    Compiling radium v0.7.0
[INFO] [stderr]    Compiling openssl-sys v0.9.96
[INFO] [stderr]    Compiling libz-sys v1.1.12
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking tinyvec v1.6.0
[INFO] [stderr]    Compiling cmake v0.1.50
[INFO] [stderr]     Checking lexical-parse-float v0.8.5
[INFO] [stderr]     Checking lexical-write-float v0.8.5
[INFO] [stderr]     Checking regex-automata v0.4.3
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling subprocess v0.2.9
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling rust_decimal v1.33.1
[INFO] [stderr]    Compiling darling_core v0.20.3
[INFO] [stderr]    Compiling frunk_proc_macro_helpers v0.1.2
[INFO] [stderr]    Compiling openssl v0.10.60
[INFO] [stderr]     Checking tap v1.0.1
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling crossbeam-queue v0.3.8
[INFO] [stderr]     Checking zerocopy v0.7.26
[INFO] [stderr]     Checking cpufeatures v0.2.11
[INFO] [stderr]     Checking deranged v0.3.9
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]     Checking regex v1.10.2
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]     Checking wyz v0.5.1
[INFO] [stderr]    Compiling serde_json v1.0.108
[INFO] [stderr]     Checking lexical-core v0.8.5
[INFO] [stderr]     Checking unicode-normalization v0.1.22
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling serde_derive v1.0.193
[INFO] [stderr]    Compiling thiserror-impl v1.0.50
[INFO] [stderr]    Compiling darling_macro v0.20.3
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling frunk_derives v0.4.2
[INFO] [stderr]    Compiling frunk_proc_macros v0.1.2
[INFO] [stderr]    Compiling native-tls v0.2.11
[INFO] [stderr]    Compiling darling v0.20.3
[INFO] [stderr]     Checking itoa v1.0.9
[INFO] [stderr]     Checking funty v2.0.0
[INFO] [stderr]     Checking base64 v0.21.5
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]     Checking arrayvec v0.7.4
[INFO] [stderr]    Compiling termcolor v1.1.3
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]     Checking ryu v1.0.15
[INFO] [stderr]    Compiling rustix v0.38.25
[INFO] [stderr]     Checking unicode-bidi v0.3.13
[INFO] [stderr]     Checking bitvec v1.0.1
[INFO] [stderr]    Compiling mysql-common-derive v0.30.2
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]     Checking time v0.3.30
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking bigdecimal v0.3.1
[INFO] [stderr]     Checking lexical v6.1.1
[INFO] [stderr]     Checking crossbeam-deque v0.8.3
[INFO] [stderr]     Checking frunk v0.4.2
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking sha2 v0.10.8
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling derive_utils v0.13.2
[INFO] [stderr]     Checking crossbeam-channel v0.5.8
[INFO] [stderr]     Checking bytes v1.5.0
[INFO] [stderr]    Compiling mysql v24.0.0
[INFO] [stderr]     Checking uuid v1.6.1
[INFO] [stderr]     Checking smallvec v1.11.2
[INFO] [stderr]     Checking saturating v0.1.0
[INFO] [stderr]     Checking linux-raw-sys v0.4.11
[INFO] [stderr]     Checking openssl-probe v0.1.5
[INFO] [stderr]     Checking chrono v0.4.31
[INFO] [stderr]     Checking crossbeam v0.8.2
[INFO] [stderr]    Compiling io-enum v1.1.1
[INFO] [stderr]     Checking lru v0.10.1
[INFO] [stderr]     Checking url v2.5.0
[INFO] [stderr]     Checking pem v2.0.1
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]     Checking socket2 v0.5.5
[INFO] [stderr]     Checking json v0.12.4
[INFO] [stderr]     Checking bufstream v0.1.4
[INFO] [stderr]     Checking md5 v0.7.0
[INFO] [stderr]     Checking humantime v2.1.0
[INFO] [stderr]     Checking br-fields v2.0.2
[INFO] [stderr]    Compiling mysql_common v0.30.6
[INFO] [stderr]     Checking is-terminal v0.4.9
[INFO] [stderr]     Checking env_logger v0.10.1
[INFO] [stderr]     Checking br-db v1.2.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:161:43
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let conf = fs::read_to_string(path.clone());
[INFO] [stdout]     |                                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:164:47
[INFO] [stdout]     |
[INFO] [stdout] 164 |                 match json::parse(str.as_str().clone()) {
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:170:58
[INFO] [stdout]     |
[INFO] [stdout] 170 |                         let path_buf = PathBuf::from(path.clone());
[INFO] [stdout]     |                                                          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:172:39
[INFO] [stdout]     |
[INFO] [stdout] 172 |                         fs::write(path.clone(), config.to_string()).unwrap();
[INFO] [stdout]     |                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:179:50
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 let path_buf = PathBuf::from(path.clone());
[INFO] [stdout]     |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 fs::write(path.clone(), config.to_string()).unwrap();
[INFO] [stdout]     |                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:246:10
[INFO] [stdout]     |
[INFO] [stdout] 246 |         }.clone();
[INFO] [stdout]     |          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:248:51
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let dbmode = DB.lock().unwrap().get(&*name.clone()).is_none();
[INFO] [stdout]     |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:250:51
[INFO] [stdout]     |
[INFO] [stdout] 250 |             let db = DB.lock().unwrap().get(&*name.clone()).unwrap().clone();
[INFO] [stdout]     |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:253:48
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let connection = connections.get(&*name.clone()).unwrap().clone();
[INFO] [stdout]     |                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:255:42
[INFO] [stdout]     |
[INFO] [stdout] 255 |         DB.lock().unwrap().insert((&*name.clone()).parse().unwrap(), db.clone());
[INFO] [stdout]     |                                          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:282:28
[INFO] [stdout]     |
[INFO] [stdout] 282 |         match name.as_str().clone() {
[INFO] [stdout]     |                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:614:35
[INFO] [stdout]     |
[INFO] [stdout] 614 |                 db.where_and(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:614:52
[INFO] [stdout]     |
[INFO] [stdout] 614 |                 db.where_and(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:643:34
[INFO] [stdout]     |
[INFO] [stdout] 643 |                 db.where_or(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:643:51
[INFO] [stdout]     |
[INFO] [stdout] 643 |                 db.where_or(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:942:30
[INFO] [stdout]     |
[INFO] [stdout] 942 |                 db.field(name.clone());
[INFO] [stdout]     |                              ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:960:31
[INFO] [stdout]     |
[INFO] [stdout] 960 |                 db.hidden(name.clone());
[INFO] [stdout]     |                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/sync/master.rs:70:44
[INFO] [stdout]    |
[INFO] [stdout] 70 |                 object! {api:"ping",data:"".clone()}
[INFO] [stdout]    |                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/sync/slave.rs:61:60
[INFO] [stdout]    |
[INFO] [stdout] 61 | ...                   object! {api:"pong",data:"".clone()}
[INFO] [stdout]    |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/mysql.rs:81:39
[INFO] [stdout]    |
[INFO] [stdout] 81 |                         if !data[field.clone()].is_null() {
[INFO] [stdout]    |                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/mysql.rs:96:57
[INFO] [stdout]    |
[INFO] [stdout] 96 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]    |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:111:57
[INFO] [stdout]     |
[INFO] [stdout] 111 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:120:57
[INFO] [stdout]     |
[INFO] [stdout] 120 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:129:57
[INFO] [stdout]     |
[INFO] [stdout] 129 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:138:57
[INFO] [stdout]     |
[INFO] [stdout] 138 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:147:57
[INFO] [stdout]     |
[INFO] [stdout] 147 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:156:57
[INFO] [stdout]     |
[INFO] [stdout] 156 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:165:57
[INFO] [stdout]     |
[INFO] [stdout] 165 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:174:57
[INFO] [stdout]     |
[INFO] [stdout] 174 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:175:64
[INFO] [stdout]     |
[INFO] [stdout] 175 | ...                   info!("未知: {} {:?} {:?}", field.clone(), item.column_type(),data);
[INFO] [stdout]     |                                                        ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:203:41
[INFO] [stdout]     |
[INFO] [stdout] 203 |                         e.query_iter(sql.clone())
[INFO] [stdout]     |                                         ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:207:50
[INFO] [stdout]     |
[INFO] [stdout] 207 |                     Ok(e) => self.query_cl(e, sql.clone()),
[INFO] [stdout]     |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:220:40
[INFO] [stdout]     |
[INFO] [stdout] 220 |                         e.exec_iter(sql.clone(), {})
[INFO] [stdout]     |                                        ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:224:52
[INFO] [stdout]     |
[INFO] [stdout] 224 |                     Ok(e) => self.execute_cl(e, sql.clone()),
[INFO] [stdout]     |                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:244:39
[INFO] [stdout]     |
[INFO] [stdout] 244 |                 match e.query_iter(sql.clone()) {
[INFO] [stdout]     |                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:245:50
[INFO] [stdout]     |
[INFO] [stdout] 245 |                     Ok(e) => self.query_cl(e, sql.clone()),
[INFO] [stdout]     |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:268:33
[INFO] [stdout]     |
[INFO] [stdout] 268 |             info!("sql: {}", sql.clone());
[INFO] [stdout]     |                                 ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:279:35
[INFO] [stdout]     |
[INFO] [stdout] 279 |                 let sync_sql = sql.clone();
[INFO] [stdout]     |                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:282:33
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     sql:sync_sql.clone(),
[INFO] [stdout]     |                                 ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:301:38
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 match e.exec_iter(sql.clone(), {}) {
[INFO] [stdout]     |                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:302:52
[INFO] [stdout]     |
[INFO] [stdout] 302 |                     Ok(e) => self.execute_cl(e, sql.clone()),
[INFO] [stdout]     |                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:329:54
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let (state, data) = self.execute(sql.as_str().clone());
[INFO] [stdout]     |                                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:402:54
[INFO] [stdout]     |
[INFO] [stdout] 402 |         let (state, data) = self.execute(sql.as_str().clone());
[INFO] [stdout]     |                                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:444:53
[INFO] [stdout]     |
[INFO] [stdout] 444 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:444:79
[INFO] [stdout]     |
[INFO] [stdout] 444 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:451:53
[INFO] [stdout]     |
[INFO] [stdout] 451 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:451:79
[INFO] [stdout]     |
[INFO] [stdout] 451 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:452:81
[INFO] [stdout]     |
[INFO] [stdout] 452 |             sql.push(format!("ALTER  TABLE {} CHANGE `{}` {};", data.table, name.clone(), row));
[INFO] [stdout]     |                                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:456:97
[INFO] [stdout]     |
[INFO] [stdout] 456 |         let (_, index_list) = self.query(format!("SHOW INDEX FROM `{}`", table.clone()).as_str().clone());
[INFO] [stdout]     |                                                                                                 ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:532:58
[INFO] [stdout]     |
[INFO] [stdout] 532 |             let (state, res) = self.execute(item.as_str().clone());
[INFO] [stdout]     |                                                          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:609:53
[INFO] [stdout]     |
[INFO] [stdout] 609 |             self.params.group[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:609:36
[INFO] [stdout]     |
[INFO] [stdout] 609 |             self.params.group[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:610:54
[INFO] [stdout]     |
[INFO] [stdout] 610 |             self.params.fields[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:610:37
[INFO] [stdout]     |
[INFO] [stdout] 610 |             self.params.fields[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:623:50
[INFO] [stdout]     |
[INFO] [stdout] 623 |             self.params.json[item.clone()] = item.clone().into();
[INFO] [stdout]     |                                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:623:34
[INFO] [stdout]     |
[INFO] [stdout] 623 |             self.params.json[item.clone()] = item.clone().into();
[INFO] [stdout]     |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:643:77
[INFO] [stdout]     |
[INFO] [stdout] 643 |                         let data = json::parse(item[field].as_str().unwrap().clone()).unwrap_or(array![]);
[INFO] [stdout]     |                                                                             ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:913:80
[INFO] [stdout]     |
[INFO] [stdout] 913 |         self.params.fields[field] = format!("{}.`{}`", self.params.table, field.clone()).into();
[INFO] [stdout]     |                                                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1236:83
[INFO] [stdout]      |
[INFO] [stdout] 1236 |                     self.params.fields[item.clone()] = format!("{} as {}", text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1236:100
[INFO] [stdout]      |
[INFO] [stdout] 1236 |                     self.params.fields[item.clone()] = format!("{} as {}", text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1236:44
[INFO] [stdout]      |
[INFO] [stdout] 1236 |                     self.params.fields[item.clone()] = format!("{} as {}", text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1238:102
[INFO] [stdout]      |
[INFO] [stdout] 1238 |                     self.params.fields[item.clone()] = format!("{}.`{}` as `{}`", join_table, text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1238:119
[INFO] [stdout]      |
[INFO] [stdout] 1238 |                     self.params.fields[item.clone()] = format!("{}.`{}` as `{}`", join_table, text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1238:44
[INFO] [stdout]      |
[INFO] [stdout] 1238 |                     self.params.fields[item.clone()] = format!("{}.`{}` as `{}`", join_table, text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1241:87
[INFO] [stdout]      |
[INFO] [stdout] 1241 |                 self.params.fields[item.clone()] = format!("{}.`{}`", join_table, item.clone()).into();
[INFO] [stdout]      |                                                                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1241:40
[INFO] [stdout]      |
[INFO] [stdout] 1241 |                 self.params.fields[item.clone()] = format!("{}.`{}`", join_table, item.clone()).into();
[INFO] [stdout]      |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1250:155
[INFO] [stdout]      |
[INFO] [stdout] 1250 | ...ABLE_NAME = '{}'", self.params.table).as_str().clone());
[INFO] [stdout]      |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1350:45
[INFO] [stdout]      |
[INFO] [stdout] 1350 |         let (state, data) = self.query(&*sql.clone());
[INFO] [stdout]      |                                             ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1373:75
[INFO] [stdout]      |
[INFO] [stdout] 1373 |         let main_fields = if main_fields == "" { "id" } else { main_fields.clone() };
[INFO] [stdout]      |                                                                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1381:75
[INFO] [stdout]      |
[INFO] [stdout] 1381 |         let main_fields = if main_fields == "" { "id" } else { main_fields.clone() };
[INFO] [stdout]      |                                                                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1383:51
[INFO] [stdout]      |
[INFO] [stdout] 1383 |         let sec_table_name = format!("{}{}", table.clone(), "_2");
[INFO] [stdout]      |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 72 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:161:43
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let conf = fs::read_to_string(path.clone());
[INFO] [stdout]     |                                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:164:47
[INFO] [stdout]     |
[INFO] [stdout] 164 |                 match json::parse(str.as_str().clone()) {
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:170:58
[INFO] [stdout]     |
[INFO] [stdout] 170 |                         let path_buf = PathBuf::from(path.clone());
[INFO] [stdout]     |                                                          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:172:39
[INFO] [stdout]     |
[INFO] [stdout] 172 |                         fs::write(path.clone(), config.to_string()).unwrap();
[INFO] [stdout]     |                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:179:50
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 let path_buf = PathBuf::from(path.clone());
[INFO] [stdout]     |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 fs::write(path.clone(), config.to_string()).unwrap();
[INFO] [stdout]     |                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:246:10
[INFO] [stdout]     |
[INFO] [stdout] 246 |         }.clone();
[INFO] [stdout]     |          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:248:51
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let dbmode = DB.lock().unwrap().get(&*name.clone()).is_none();
[INFO] [stdout]     |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:250:51
[INFO] [stdout]     |
[INFO] [stdout] 250 |             let db = DB.lock().unwrap().get(&*name.clone()).unwrap().clone();
[INFO] [stdout]     |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:253:48
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let connection = connections.get(&*name.clone()).unwrap().clone();
[INFO] [stdout]     |                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:255:42
[INFO] [stdout]     |
[INFO] [stdout] 255 |         DB.lock().unwrap().insert((&*name.clone()).parse().unwrap(), db.clone());
[INFO] [stdout]     |                                          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:282:28
[INFO] [stdout]     |
[INFO] [stdout] 282 |         match name.as_str().clone() {
[INFO] [stdout]     |                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:614:35
[INFO] [stdout]     |
[INFO] [stdout] 614 |                 db.where_and(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:614:52
[INFO] [stdout]     |
[INFO] [stdout] 614 |                 db.where_and(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:643:34
[INFO] [stdout]     |
[INFO] [stdout] 643 |                 db.where_or(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:643:51
[INFO] [stdout]     |
[INFO] [stdout] 643 |                 db.where_or(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:942:30
[INFO] [stdout]     |
[INFO] [stdout] 942 |                 db.field(name.clone());
[INFO] [stdout]     |                              ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:960:31
[INFO] [stdout]     |
[INFO] [stdout] 960 |                 db.hidden(name.clone());
[INFO] [stdout]     |                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/sync/master.rs:70:44
[INFO] [stdout]    |
[INFO] [stdout] 70 |                 object! {api:"ping",data:"".clone()}
[INFO] [stdout]    |                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/sync/slave.rs:61:60
[INFO] [stdout]    |
[INFO] [stdout] 61 | ...                   object! {api:"pong",data:"".clone()}
[INFO] [stdout]    |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/mysql.rs:81:39
[INFO] [stdout]    |
[INFO] [stdout] 81 |                         if !data[field.clone()].is_null() {
[INFO] [stdout]    |                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/mysql.rs:96:57
[INFO] [stdout]    |
[INFO] [stdout] 96 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]    |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:111:57
[INFO] [stdout]     |
[INFO] [stdout] 111 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:120:57
[INFO] [stdout]     |
[INFO] [stdout] 120 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:129:57
[INFO] [stdout]     |
[INFO] [stdout] 129 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:138:57
[INFO] [stdout]     |
[INFO] [stdout] 138 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:147:57
[INFO] [stdout]     |
[INFO] [stdout] 147 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:156:57
[INFO] [stdout]     |
[INFO] [stdout] 156 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:165:57
[INFO] [stdout]     |
[INFO] [stdout] 165 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:174:57
[INFO] [stdout]     |
[INFO] [stdout] 174 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:175:64
[INFO] [stdout]     |
[INFO] [stdout] 175 | ...                   info!("未知: {} {:?} {:?}", field.clone(), item.column_type(),data);
[INFO] [stdout]     |                                                        ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:203:41
[INFO] [stdout]     |
[INFO] [stdout] 203 |                         e.query_iter(sql.clone())
[INFO] [stdout]     |                                         ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:207:50
[INFO] [stdout]     |
[INFO] [stdout] 207 |                     Ok(e) => self.query_cl(e, sql.clone()),
[INFO] [stdout]     |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:220:40
[INFO] [stdout]     |
[INFO] [stdout] 220 |                         e.exec_iter(sql.clone(), {})
[INFO] [stdout]     |                                        ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:224:52
[INFO] [stdout]     |
[INFO] [stdout] 224 |                     Ok(e) => self.execute_cl(e, sql.clone()),
[INFO] [stdout]     |                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:244:39
[INFO] [stdout]     |
[INFO] [stdout] 244 |                 match e.query_iter(sql.clone()) {
[INFO] [stdout]     |                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:245:50
[INFO] [stdout]     |
[INFO] [stdout] 245 |                     Ok(e) => self.query_cl(e, sql.clone()),
[INFO] [stdout]     |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:268:33
[INFO] [stdout]     |
[INFO] [stdout] 268 |             info!("sql: {}", sql.clone());
[INFO] [stdout]     |                                 ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:279:35
[INFO] [stdout]     |
[INFO] [stdout] 279 |                 let sync_sql = sql.clone();
[INFO] [stdout]     |                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:282:33
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     sql:sync_sql.clone(),
[INFO] [stdout]     |                                 ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:301:38
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 match e.exec_iter(sql.clone(), {}) {
[INFO] [stdout]     |                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:302:52
[INFO] [stdout]     |
[INFO] [stdout] 302 |                     Ok(e) => self.execute_cl(e, sql.clone()),
[INFO] [stdout]     |                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:329:54
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let (state, data) = self.execute(sql.as_str().clone());
[INFO] [stdout]     |                                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:402:54
[INFO] [stdout]     |
[INFO] [stdout] 402 |         let (state, data) = self.execute(sql.as_str().clone());
[INFO] [stdout]     |                                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:444:53
[INFO] [stdout]     |
[INFO] [stdout] 444 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:444:79
[INFO] [stdout]     |
[INFO] [stdout] 444 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:451:53
[INFO] [stdout]     |
[INFO] [stdout] 451 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:451:79
[INFO] [stdout]     |
[INFO] [stdout] 451 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:452:81
[INFO] [stdout]     |
[INFO] [stdout] 452 |             sql.push(format!("ALTER  TABLE {} CHANGE `{}` {};", data.table, name.clone(), row));
[INFO] [stdout]     |                                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:456:97
[INFO] [stdout]     |
[INFO] [stdout] 456 |         let (_, index_list) = self.query(format!("SHOW INDEX FROM `{}`", table.clone()).as_str().clone());
[INFO] [stdout]     |                                                                                                 ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:532:58
[INFO] [stdout]     |
[INFO] [stdout] 532 |             let (state, res) = self.execute(item.as_str().clone());
[INFO] [stdout]     |                                                          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:609:53
[INFO] [stdout]     |
[INFO] [stdout] 609 |             self.params.group[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:609:36
[INFO] [stdout]     |
[INFO] [stdout] 609 |             self.params.group[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:610:54
[INFO] [stdout]     |
[INFO] [stdout] 610 |             self.params.fields[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:610:37
[INFO] [stdout]     |
[INFO] [stdout] 610 |             self.params.fields[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:623:50
[INFO] [stdout]     |
[INFO] [stdout] 623 |             self.params.json[item.clone()] = item.clone().into();
[INFO] [stdout]     |                                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:623:34
[INFO] [stdout]     |
[INFO] [stdout] 623 |             self.params.json[item.clone()] = item.clone().into();
[INFO] [stdout]     |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:643:77
[INFO] [stdout]     |
[INFO] [stdout] 643 |                         let data = json::parse(item[field].as_str().unwrap().clone()).unwrap_or(array![]);
[INFO] [stdout]     |                                                                             ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:913:80
[INFO] [stdout]     |
[INFO] [stdout] 913 |         self.params.fields[field] = format!("{}.`{}`", self.params.table, field.clone()).into();
[INFO] [stdout]     |                                                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1236:83
[INFO] [stdout]      |
[INFO] [stdout] 1236 |                     self.params.fields[item.clone()] = format!("{} as {}", text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1236:100
[INFO] [stdout]      |
[INFO] [stdout] 1236 |                     self.params.fields[item.clone()] = format!("{} as {}", text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1236:44
[INFO] [stdout]      |
[INFO] [stdout] 1236 |                     self.params.fields[item.clone()] = format!("{} as {}", text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1238:102
[INFO] [stdout]      |
[INFO] [stdout] 1238 |                     self.params.fields[item.clone()] = format!("{}.`{}` as `{}`", join_table, text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1238:119
[INFO] [stdout]      |
[INFO] [stdout] 1238 |                     self.params.fields[item.clone()] = format!("{}.`{}` as `{}`", join_table, text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1238:44
[INFO] [stdout]      |
[INFO] [stdout] 1238 |                     self.params.fields[item.clone()] = format!("{}.`{}` as `{}`", join_table, text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1241:87
[INFO] [stdout]      |
[INFO] [stdout] 1241 |                 self.params.fields[item.clone()] = format!("{}.`{}`", join_table, item.clone()).into();
[INFO] [stdout]      |                                                                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1241:40
[INFO] [stdout]      |
[INFO] [stdout] 1241 |                 self.params.fields[item.clone()] = format!("{}.`{}`", join_table, item.clone()).into();
[INFO] [stdout]      |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1250:155
[INFO] [stdout]      |
[INFO] [stdout] 1250 | ...ABLE_NAME = '{}'", self.params.table).as_str().clone());
[INFO] [stdout]      |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1350:45
[INFO] [stdout]      |
[INFO] [stdout] 1350 |         let (state, data) = self.query(&*sql.clone());
[INFO] [stdout]      |                                             ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1373:75
[INFO] [stdout]      |
[INFO] [stdout] 1373 |         let main_fields = if main_fields == "" { "id" } else { main_fields.clone() };
[INFO] [stdout]      |                                                                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1381:75
[INFO] [stdout]      |
[INFO] [stdout] 1381 |         let main_fields = if main_fields == "" { "id" } else { main_fields.clone() };
[INFO] [stdout]      |                                                                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1383:51
[INFO] [stdout]      |
[INFO] [stdout] 1383 |         let sec_table_name = format!("{}{}", table.clone(), "_2");
[INFO] [stdout]      |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 72 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 32.55s
[INFO] running `Command { std: "docker" "inspect" "1aadf0292a0db3bac49d14aa5e6a60a555c21b39bdc17d362208caeb23e0a318", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1aadf0292a0db3bac49d14aa5e6a60a555c21b39bdc17d362208caeb23e0a318", kill_on_drop: false }`
[INFO] [stdout] 1aadf0292a0db3bac49d14aa5e6a60a555c21b39bdc17d362208caeb23e0a318
[INFO] checking br-db-1.2.4 against try#785364c7e5e0804473a3fddfb579798ea14e3493 for pr-114682
[INFO] extracting crate br-db 1.2.4 into /workspace/builds/worker-3-tc2/source
[INFO] validating manifest of crates.io crate br-db 1.2.4 on toolchain 785364c7e5e0804473a3fddfb579798ea14e3493
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate br-db 1.2.4
[INFO] finished tweaking crates.io crate br-db 1.2.4
[INFO] tweaked toml for crates.io crate br-db 1.2.4 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] crate crates.io crate br-db 1.2.4 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" "+785364c7e5e0804473a3fddfb579798ea14e3493" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e8a7f3b8cb98fa34ceacbb34414b5de5abfa2c08b56c3248fe11de969bfd798c
[INFO] running `Command { std: "docker" "start" "-a" "e8a7f3b8cb98fa34ceacbb34414b5de5abfa2c08b56c3248fe11de969bfd798c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e8a7f3b8cb98fa34ceacbb34414b5de5abfa2c08b56c3248fe11de969bfd798c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e8a7f3b8cb98fa34ceacbb34414b5de5abfa2c08b56c3248fe11de969bfd798c", kill_on_drop: false }`
[INFO] [stdout] e8a7f3b8cb98fa34ceacbb34414b5de5abfa2c08b56c3248fe11de969bfd798c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4394c1908b1055c6729afcaef333f78874976eba3214a13ce19537cc0bc66257
[INFO] running `Command { std: "docker" "start" "-a" "4394c1908b1055c6729afcaef333f78874976eba3214a13ce19537cc0bc66257", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.70
[INFO] [stderr]    Compiling libc v0.2.150
[INFO] [stderr]    Compiling pkg-config v0.3.27
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]     Checking lexical-util v0.8.5
[INFO] [stderr]    Compiling crossbeam-utils v0.8.16
[INFO] [stderr]    Compiling num-bigint v0.4.4
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling syn v2.0.39
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling frunk_core v0.4.2
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]     Checking once_cell v1.18.0
[INFO] [stderr]     Checking memchr v2.6.4
[INFO] [stderr]    Compiling bindgen v0.69.1
[INFO] [stderr]     Checking getrandom v0.2.11
[INFO] [stderr]    Compiling serde v1.0.193
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]    Compiling thiserror v1.0.50
[INFO] [stderr]    Compiling hashbrown v0.14.3
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling clang-sys v1.6.1
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]    Compiling indexmap v2.1.0
[INFO] [stderr]     Checking lexical-write-integer v0.8.5
[INFO] [stderr]     Checking lexical-parse-integer v0.8.6
[INFO] [stderr]    Compiling ahash v0.8.6
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.15
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling openssl-sys v0.9.96
[INFO] [stderr]    Compiling libz-sys v1.1.12
[INFO] [stderr]    Compiling winnow v0.5.19
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]    Compiling toml_datetime v0.6.5
[INFO] [stderr]     Checking regex-syntax v0.8.2
[INFO] [stderr]    Compiling radium v0.7.0
[INFO] [stderr]     Checking tinyvec v1.6.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking lexical-parse-float v0.8.5
[INFO] [stderr]     Checking lexical-write-float v0.8.5
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling cmake v0.1.50
[INFO] [stderr]    Compiling frunk_proc_macro_helpers v0.1.2
[INFO] [stderr]    Compiling darling_core v0.20.3
[INFO] [stderr]    Compiling subprocess v0.2.9
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking zerocopy v0.7.26
[INFO] [stderr]     Checking regex-automata v0.4.3
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling openssl v0.10.60
[INFO] [stderr]    Compiling crossbeam-queue v0.3.8
[INFO] [stderr]     Checking tap v1.0.1
[INFO] [stderr]     Checking cpufeatures v0.2.11
[INFO] [stderr]    Compiling rust_decimal v1.33.1
[INFO] [stderr]    Compiling serde_json v1.0.108
[INFO] [stderr]     Checking wyz v0.5.1
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]     Checking deranged v0.3.9
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]     Checking regex v1.10.2
[INFO] [stderr]    Compiling serde_derive v1.0.193
[INFO] [stderr]    Compiling thiserror-impl v1.0.50
[INFO] [stderr]    Compiling darling_macro v0.20.3
[INFO] [stderr]    Compiling frunk_derives v0.4.2
[INFO] [stderr]    Compiling frunk_proc_macros v0.1.2
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking unicode-normalization v0.1.22
[INFO] [stderr]     Checking lexical-core v0.8.5
[INFO] [stderr]    Compiling darling v0.20.3
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking arrayvec v0.7.4
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]     Checking base64 v0.21.5
[INFO] [stderr]    Compiling native-tls v0.2.11
[INFO] [stderr]     Checking itoa v1.0.9
[INFO] [stderr]     Checking ryu v1.0.15
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]     Checking unicode-bidi v0.3.13
[INFO] [stderr]    Compiling termcolor v1.1.3
[INFO] [stderr]    Compiling rustix v0.38.25
[INFO] [stderr]     Checking funty v2.0.0
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]     Checking time v0.3.30
[INFO] [stderr]    Compiling mysql-common-derive v0.30.2
[INFO] [stderr]     Checking bitvec v1.0.1
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking lexical v6.1.1
[INFO] [stderr]     Checking bigdecimal v0.3.1
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking crossbeam-deque v0.8.3
[INFO] [stderr]     Checking frunk v0.4.2
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking sha2 v0.10.8
[INFO] [stderr]    Compiling derive_utils v0.13.2
[INFO] [stderr]     Checking crossbeam-channel v0.5.8
[INFO] [stderr]     Checking saturating v0.1.0
[INFO] [stderr]     Checking smallvec v1.11.2
[INFO] [stderr]     Checking bytes v1.5.0
[INFO] [stderr]    Compiling mysql v24.0.0
[INFO] [stderr]     Checking openssl-probe v0.1.5
[INFO] [stderr]     Checking linux-raw-sys v0.4.11
[INFO] [stderr]     Checking uuid v1.6.1
[INFO] [stderr]     Checking chrono v0.4.31
[INFO] [stderr]    Compiling mysql_common v0.30.6
[INFO] [stderr]     Checking crossbeam v0.8.2
[INFO] [stderr]    Compiling io-enum v1.1.1
[INFO] [stderr]     Checking lru v0.10.1
[INFO] [stderr]     Checking url v2.5.0
[INFO] [stderr]     Checking pem v2.0.1
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]     Checking socket2 v0.5.5
[INFO] [stderr]     Checking json v0.12.4
[INFO] [stderr]     Checking bufstream v0.1.4
[INFO] [stderr]     Checking md5 v0.7.0
[INFO] [stderr]     Checking humantime v2.1.0
[INFO] [stderr]     Checking br-fields v2.0.2
[INFO] [stderr]     Checking is-terminal v0.4.9
[INFO] [stderr]     Checking env_logger v0.10.1
[INFO] [stderr]     Checking br-db v1.2.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:161:43
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let conf = fs::read_to_string(path.clone());
[INFO] [stdout]     |                                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:164:47
[INFO] [stdout]     |
[INFO] [stdout] 164 |                 match json::parse(str.as_str().clone()) {
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:170:58
[INFO] [stdout]     |
[INFO] [stdout] 170 |                         let path_buf = PathBuf::from(path.clone());
[INFO] [stdout]     |                                                          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:172:39
[INFO] [stdout]     |
[INFO] [stdout] 172 |                         fs::write(path.clone(), config.to_string()).unwrap();
[INFO] [stdout]     |                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:179:50
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 let path_buf = PathBuf::from(path.clone());
[INFO] [stdout]     |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 fs::write(path.clone(), config.to_string()).unwrap();
[INFO] [stdout]     |                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:246:10
[INFO] [stdout]     |
[INFO] [stdout] 246 |         }.clone();
[INFO] [stdout]     |          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:248:51
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let dbmode = DB.lock().unwrap().get(&*name.clone()).is_none();
[INFO] [stdout]     |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:250:51
[INFO] [stdout]     |
[INFO] [stdout] 250 |             let db = DB.lock().unwrap().get(&*name.clone()).unwrap().clone();
[INFO] [stdout]     |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:253:48
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let connection = connections.get(&*name.clone()).unwrap().clone();
[INFO] [stdout]     |                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:255:42
[INFO] [stdout]     |
[INFO] [stdout] 255 |         DB.lock().unwrap().insert((&*name.clone()).parse().unwrap(), db.clone());
[INFO] [stdout]     |                                          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:282:28
[INFO] [stdout]     |
[INFO] [stdout] 282 |         match name.as_str().clone() {
[INFO] [stdout]     |                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:614:35
[INFO] [stdout]     |
[INFO] [stdout] 614 |                 db.where_and(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:614:52
[INFO] [stdout]     |
[INFO] [stdout] 614 |                 db.where_and(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:643:34
[INFO] [stdout]     |
[INFO] [stdout] 643 |                 db.where_or(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:643:51
[INFO] [stdout]     |
[INFO] [stdout] 643 |                 db.where_or(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:942:30
[INFO] [stdout]     |
[INFO] [stdout] 942 |                 db.field(name.clone());
[INFO] [stdout]     |                              ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:960:31
[INFO] [stdout]     |
[INFO] [stdout] 960 |                 db.hidden(name.clone());
[INFO] [stdout]     |                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/sync/master.rs:70:44
[INFO] [stdout]    |
[INFO] [stdout] 70 |                 object! {api:"ping",data:"".clone()}
[INFO] [stdout]    |                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/sync/slave.rs:61:60
[INFO] [stdout]    |
[INFO] [stdout] 61 | ...                   object! {api:"pong",data:"".clone()}
[INFO] [stdout]    |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/mysql.rs:81:39
[INFO] [stdout]    |
[INFO] [stdout] 81 |                         if !data[field.clone()].is_null() {
[INFO] [stdout]    |                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/mysql.rs:96:57
[INFO] [stdout]    |
[INFO] [stdout] 96 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]    |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:111:57
[INFO] [stdout]     |
[INFO] [stdout] 111 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:120:57
[INFO] [stdout]     |
[INFO] [stdout] 120 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:129:57
[INFO] [stdout]     |
[INFO] [stdout] 129 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:138:57
[INFO] [stdout]     |
[INFO] [stdout] 138 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:147:57
[INFO] [stdout]     |
[INFO] [stdout] 147 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:156:57
[INFO] [stdout]     |
[INFO] [stdout] 156 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:165:57
[INFO] [stdout]     |
[INFO] [stdout] 165 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:174:57
[INFO] [stdout]     |
[INFO] [stdout] 174 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:175:64
[INFO] [stdout]     |
[INFO] [stdout] 175 | ...                   info!("未知: {} {:?} {:?}", field.clone(), item.column_type(),data);
[INFO] [stdout]     |                                                        ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:203:41
[INFO] [stdout]     |
[INFO] [stdout] 203 |                         e.query_iter(sql.clone())
[INFO] [stdout]     |                                         ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:207:50
[INFO] [stdout]     |
[INFO] [stdout] 207 |                     Ok(e) => self.query_cl(e, sql.clone()),
[INFO] [stdout]     |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:220:40
[INFO] [stdout]     |
[INFO] [stdout] 220 |                         e.exec_iter(sql.clone(), {})
[INFO] [stdout]     |                                        ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:224:52
[INFO] [stdout]     |
[INFO] [stdout] 224 |                     Ok(e) => self.execute_cl(e, sql.clone()),
[INFO] [stdout]     |                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:244:39
[INFO] [stdout]     |
[INFO] [stdout] 244 |                 match e.query_iter(sql.clone()) {
[INFO] [stdout]     |                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:245:50
[INFO] [stdout]     |
[INFO] [stdout] 245 |                     Ok(e) => self.query_cl(e, sql.clone()),
[INFO] [stdout]     |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:268:33
[INFO] [stdout]     |
[INFO] [stdout] 268 |             info!("sql: {}", sql.clone());
[INFO] [stdout]     |                                 ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:279:35
[INFO] [stdout]     |
[INFO] [stdout] 279 |                 let sync_sql = sql.clone();
[INFO] [stdout]     |                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:282:33
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     sql:sync_sql.clone(),
[INFO] [stdout]     |                                 ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:301:38
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 match e.exec_iter(sql.clone(), {}) {
[INFO] [stdout]     |                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:302:52
[INFO] [stdout]     |
[INFO] [stdout] 302 |                     Ok(e) => self.execute_cl(e, sql.clone()),
[INFO] [stdout]     |                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:329:54
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let (state, data) = self.execute(sql.as_str().clone());
[INFO] [stdout]     |                                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:402:54
[INFO] [stdout]     |
[INFO] [stdout] 402 |         let (state, data) = self.execute(sql.as_str().clone());
[INFO] [stdout]     |                                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:444:53
[INFO] [stdout]     |
[INFO] [stdout] 444 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:444:79
[INFO] [stdout]     |
[INFO] [stdout] 444 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:451:53
[INFO] [stdout]     |
[INFO] [stdout] 451 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:451:79
[INFO] [stdout]     |
[INFO] [stdout] 451 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:452:81
[INFO] [stdout]     |
[INFO] [stdout] 452 |             sql.push(format!("ALTER  TABLE {} CHANGE `{}` {};", data.table, name.clone(), row));
[INFO] [stdout]     |                                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:456:97
[INFO] [stdout]     |
[INFO] [stdout] 456 |         let (_, index_list) = self.query(format!("SHOW INDEX FROM `{}`", table.clone()).as_str().clone());
[INFO] [stdout]     |                                                                                                 ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:532:58
[INFO] [stdout]     |
[INFO] [stdout] 532 |             let (state, res) = self.execute(item.as_str().clone());
[INFO] [stdout]     |                                                          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:609:53
[INFO] [stdout]     |
[INFO] [stdout] 609 |             self.params.group[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:609:36
[INFO] [stdout]     |
[INFO] [stdout] 609 |             self.params.group[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:610:54
[INFO] [stdout]     |
[INFO] [stdout] 610 |             self.params.fields[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:610:37
[INFO] [stdout]     |
[INFO] [stdout] 610 |             self.params.fields[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:623:50
[INFO] [stdout]     |
[INFO] [stdout] 623 |             self.params.json[item.clone()] = item.clone().into();
[INFO] [stdout]     |                                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:623:34
[INFO] [stdout]     |
[INFO] [stdout] 623 |             self.params.json[item.clone()] = item.clone().into();
[INFO] [stdout]     |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:643:77
[INFO] [stdout]     |
[INFO] [stdout] 643 |                         let data = json::parse(item[field].as_str().unwrap().clone()).unwrap_or(array![]);
[INFO] [stdout]     |                                                                             ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:913:80
[INFO] [stdout]     |
[INFO] [stdout] 913 |         self.params.fields[field] = format!("{}.`{}`", self.params.table, field.clone()).into();
[INFO] [stdout]     |                                                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1236:83
[INFO] [stdout]      |
[INFO] [stdout] 1236 |                     self.params.fields[item.clone()] = format!("{} as {}", text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1236:100
[INFO] [stdout]      |
[INFO] [stdout] 1236 |                     self.params.fields[item.clone()] = format!("{} as {}", text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1236:44
[INFO] [stdout]      |
[INFO] [stdout] 1236 |                     self.params.fields[item.clone()] = format!("{} as {}", text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1238:102
[INFO] [stdout]      |
[INFO] [stdout] 1238 |                     self.params.fields[item.clone()] = format!("{}.`{}` as `{}`", join_table, text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1238:119
[INFO] [stdout]      |
[INFO] [stdout] 1238 |                     self.params.fields[item.clone()] = format!("{}.`{}` as `{}`", join_table, text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1238:44
[INFO] [stdout]      |
[INFO] [stdout] 1238 |                     self.params.fields[item.clone()] = format!("{}.`{}` as `{}`", join_table, text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1241:87
[INFO] [stdout]      |
[INFO] [stdout] 1241 |                 self.params.fields[item.clone()] = format!("{}.`{}`", join_table, item.clone()).into();
[INFO] [stdout]      |                                                                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1241:40
[INFO] [stdout]      |
[INFO] [stdout] 1241 |                 self.params.fields[item.clone()] = format!("{}.`{}`", join_table, item.clone()).into();
[INFO] [stdout]      |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1250:155
[INFO] [stdout]      |
[INFO] [stdout] 1250 | ...ABLE_NAME = '{}'", self.params.table).as_str().clone());
[INFO] [stdout]      |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1350:45
[INFO] [stdout]      |
[INFO] [stdout] 1350 |         let (state, data) = self.query(&*sql.clone());
[INFO] [stdout]      |                                             ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1373:75
[INFO] [stdout]      |
[INFO] [stdout] 1373 |         let main_fields = if main_fields == "" { "id" } else { main_fields.clone() };
[INFO] [stdout]      |                                                                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1381:75
[INFO] [stdout]      |
[INFO] [stdout] 1381 |         let main_fields = if main_fields == "" { "id" } else { main_fields.clone() };
[INFO] [stdout]      |                                                                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1383:51
[INFO] [stdout]      |
[INFO] [stdout] 1383 |         let sec_table_name = format!("{}{}", table.clone(), "_2");
[INFO] [stdout]      |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:161:43
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let conf = fs::read_to_string(path.clone());
[INFO] [stdout]     |                                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:164:47
[INFO] [stdout]     |
[INFO] [stdout] 164 |                 match json::parse(str.as_str().clone()) {
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:170:58
[INFO] [stdout]     |
[INFO] [stdout] 170 |                         let path_buf = PathBuf::from(path.clone());
[INFO] [stdout]     |                                                          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:172:39
[INFO] [stdout]     |
[INFO] [stdout] 172 |                         fs::write(path.clone(), config.to_string()).unwrap();
[INFO] [stdout]     |                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:179:50
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 let path_buf = PathBuf::from(path.clone());
[INFO] [stdout]     |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 fs::write(path.clone(), config.to_string()).unwrap();
[INFO] [stdout]     |                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:246:10
[INFO] [stdout]     |
[INFO] [stdout] 246 |         }.clone();
[INFO] [stdout]     |          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:248:51
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let dbmode = DB.lock().unwrap().get(&*name.clone()).is_none();
[INFO] [stdout]     |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:250:51
[INFO] [stdout]     |
[INFO] [stdout] 250 |             let db = DB.lock().unwrap().get(&*name.clone()).unwrap().clone();
[INFO] [stdout]     |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:253:48
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let connection = connections.get(&*name.clone()).unwrap().clone();
[INFO] [stdout]     |                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:255:42
[INFO] [stdout]     |
[INFO] [stdout] 255 |         DB.lock().unwrap().insert((&*name.clone()).parse().unwrap(), db.clone());
[INFO] [stdout]     |                                          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:282:28
[INFO] [stdout]     |
[INFO] [stdout] 282 |         match name.as_str().clone() {
[INFO] [stdout]     |                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:614:35
[INFO] [stdout]     |
[INFO] [stdout] 614 |                 db.where_and(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:614:52
[INFO] [stdout]     |
[INFO] [stdout] 614 |                 db.where_and(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:643:34
[INFO] [stdout]     |
[INFO] [stdout] 643 |                 db.where_or(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:643:51
[INFO] [stdout]     |
[INFO] [stdout] 643 |                 db.where_or(field.clone(), compare.clone(), value);
[INFO] [stdout]     |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:942:30
[INFO] [stdout]     |
[INFO] [stdout] 942 |                 db.field(name.clone());
[INFO] [stdout]     |                              ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/lib.rs:960:31
[INFO] [stdout]     |
[INFO] [stdout] 960 |                 db.hidden(name.clone());
[INFO] [stdout]     |                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/sync/master.rs:70:44
[INFO] [stdout]    |
[INFO] [stdout] 70 |                 object! {api:"ping",data:"".clone()}
[INFO] [stdout]    |                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/sync/slave.rs:61:60
[INFO] [stdout]    |
[INFO] [stdout] 61 | ...                   object! {api:"pong",data:"".clone()}
[INFO] [stdout]    |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/mysql.rs:81:39
[INFO] [stdout]    |
[INFO] [stdout] 81 |                         if !data[field.clone()].is_null() {
[INFO] [stdout]    |                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/mysql.rs:96:57
[INFO] [stdout]    |
[INFO] [stdout] 96 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]    |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:111:57
[INFO] [stdout]     |
[INFO] [stdout] 111 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:120:57
[INFO] [stdout]     |
[INFO] [stdout] 120 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:129:57
[INFO] [stdout]     |
[INFO] [stdout] 129 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:138:57
[INFO] [stdout]     |
[INFO] [stdout] 138 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:147:57
[INFO] [stdout]     |
[INFO] [stdout] 147 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:156:57
[INFO] [stdout]     |
[INFO] [stdout] 156 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:165:57
[INFO] [stdout]     |
[INFO] [stdout] 165 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:174:57
[INFO] [stdout]     |
[INFO] [stdout] 174 | ...                   let data = r.index(field.clone()).clone();
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:175:64
[INFO] [stdout]     |
[INFO] [stdout] 175 | ...                   info!("未知: {} {:?} {:?}", field.clone(), item.column_type(),data);
[INFO] [stdout]     |                                                        ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:203:41
[INFO] [stdout]     |
[INFO] [stdout] 203 |                         e.query_iter(sql.clone())
[INFO] [stdout]     |                                         ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:207:50
[INFO] [stdout]     |
[INFO] [stdout] 207 |                     Ok(e) => self.query_cl(e, sql.clone()),
[INFO] [stdout]     |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:220:40
[INFO] [stdout]     |
[INFO] [stdout] 220 |                         e.exec_iter(sql.clone(), {})
[INFO] [stdout]     |                                        ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:224:52
[INFO] [stdout]     |
[INFO] [stdout] 224 |                     Ok(e) => self.execute_cl(e, sql.clone()),
[INFO] [stdout]     |                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:244:39
[INFO] [stdout]     |
[INFO] [stdout] 244 |                 match e.query_iter(sql.clone()) {
[INFO] [stdout]     |                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:245:50
[INFO] [stdout]     |
[INFO] [stdout] 245 |                     Ok(e) => self.query_cl(e, sql.clone()),
[INFO] [stdout]     |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:268:33
[INFO] [stdout]     |
[INFO] [stdout] 268 |             info!("sql: {}", sql.clone());
[INFO] [stdout]     |                                 ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:279:35
[INFO] [stdout]     |
[INFO] [stdout] 279 |                 let sync_sql = sql.clone();
[INFO] [stdout]     |                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:282:33
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     sql:sync_sql.clone(),
[INFO] [stdout]     |                                 ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:301:38
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 match e.exec_iter(sql.clone(), {}) {
[INFO] [stdout]     |                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:302:52
[INFO] [stdout]     |
[INFO] [stdout] 302 |                     Ok(e) => self.execute_cl(e, sql.clone()),
[INFO] [stdout]     |                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:329:54
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let (state, data) = self.execute(sql.as_str().clone());
[INFO] [stdout]     |                                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:402:54
[INFO] [stdout]     |
[INFO] [stdout] 402 |         let (state, data) = self.execute(sql.as_str().clone());
[INFO] [stdout]     |                                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:444:53
[INFO] [stdout]     |
[INFO] [stdout] 444 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:444:79
[INFO] [stdout]     |
[INFO] [stdout] 444 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:451:53
[INFO] [stdout]     |
[INFO] [stdout] 451 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:451:79
[INFO] [stdout]     |
[INFO] [stdout] 451 |             let row = br_fields::field("mysql", name.clone(), data.fields[name.clone()].clone());
[INFO] [stdout]     |                                                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:452:81
[INFO] [stdout]     |
[INFO] [stdout] 452 |             sql.push(format!("ALTER  TABLE {} CHANGE `{}` {};", data.table, name.clone(), row));
[INFO] [stdout]     |                                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:456:97
[INFO] [stdout]     |
[INFO] [stdout] 456 |         let (_, index_list) = self.query(format!("SHOW INDEX FROM `{}`", table.clone()).as_str().clone());
[INFO] [stdout]     |                                                                                                 ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:532:58
[INFO] [stdout]     |
[INFO] [stdout] 532 |             let (state, res) = self.execute(item.as_str().clone());
[INFO] [stdout]     |                                                          ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:609:53
[INFO] [stdout]     |
[INFO] [stdout] 609 |             self.params.group[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:609:36
[INFO] [stdout]     |
[INFO] [stdout] 609 |             self.params.group[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:610:54
[INFO] [stdout]     |
[INFO] [stdout] 610 |             self.params.fields[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:610:37
[INFO] [stdout]     |
[INFO] [stdout] 610 |             self.params.fields[field.clone()] = field.clone().into();
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:623:50
[INFO] [stdout]     |
[INFO] [stdout] 623 |             self.params.json[item.clone()] = item.clone().into();
[INFO] [stdout]     |                                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/mysql.rs:623:34
[INFO] [stdout]     |
[INFO] [stdout] 623 |             self.params.json[item.clone()] = item.clone().into();
[INFO] [stdout]     |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:643:77
[INFO] [stdout]     |
[INFO] [stdout] 643 |                         let data = json::parse(item[field].as_str().unwrap().clone()).unwrap_or(array![]);
[INFO] [stdout]     |                                                                             ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/mysql.rs:913:80
[INFO] [stdout]     |
[INFO] [stdout] 913 |         self.params.fields[field] = format!("{}.`{}`", self.params.table, field.clone()).into();
[INFO] [stdout]     |                                                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1236:83
[INFO] [stdout]      |
[INFO] [stdout] 1236 |                     self.params.fields[item.clone()] = format!("{} as {}", text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1236:100
[INFO] [stdout]      |
[INFO] [stdout] 1236 |                     self.params.fields[item.clone()] = format!("{} as {}", text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                                    ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1236:44
[INFO] [stdout]      |
[INFO] [stdout] 1236 |                     self.params.fields[item.clone()] = format!("{} as {}", text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1238:102
[INFO] [stdout]      |
[INFO] [stdout] 1238 |                     self.params.fields[item.clone()] = format!("{}.`{}` as `{}`", join_table, text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                                      ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1238:119
[INFO] [stdout]      |
[INFO] [stdout] 1238 |                     self.params.fields[item.clone()] = format!("{}.`{}` as `{}`", join_table, text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                                                                                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1238:44
[INFO] [stdout]      |
[INFO] [stdout] 1238 |                     self.params.fields[item.clone()] = format!("{}.`{}` as `{}`", join_table, text[0].clone(), text[1].clone()).into();
[INFO] [stdout]      |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1241:87
[INFO] [stdout]      |
[INFO] [stdout] 1241 |                 self.params.fields[item.clone()] = format!("{}.`{}`", join_table, item.clone()).into();
[INFO] [stdout]      |                                                                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]     --> src/mysql.rs:1241:40
[INFO] [stdout]      |
[INFO] [stdout] 1241 |                 self.params.fields[item.clone()] = format!("{}.`{}`", join_table, item.clone()).into();
[INFO] [stdout]      |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1250:155
[INFO] [stdout]      |
[INFO] [stdout] 1250 | ...ABLE_NAME = '{}'", self.params.table).as_str().clone());
[INFO] [stdout]      |                                                  ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1350:45
[INFO] [stdout]      |
[INFO] [stdout] 1350 |         let (state, data) = self.query(&*sql.clone());
[INFO] [stdout]      |                                             ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1373:75
[INFO] [stdout]      |
[INFO] [stdout] 1373 |         let main_fields = if main_fields == "" { "id" } else { main_fields.clone() };
[INFO] [stdout]      |                                                                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1381:75
[INFO] [stdout]      |
[INFO] [stdout] 1381 |         let main_fields = if main_fields == "" { "id" } else { main_fields.clone() };
[INFO] [stdout]      |                                                                           ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]     --> src/mysql.rs:1383:51
[INFO] [stdout]      |
[INFO] [stdout] 1383 |         let sec_table_name = format!("{}{}", table.clone(), "_2");
[INFO] [stdout]      |                                                   ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]      |
[INFO] [stdout]      = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 72 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 72 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 16.17s
[INFO] running `Command { std: "docker" "inspect" "4394c1908b1055c6729afcaef333f78874976eba3214a13ce19537cc0bc66257", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4394c1908b1055c6729afcaef333f78874976eba3214a13ce19537cc0bc66257", kill_on_drop: false }`
[INFO] [stdout] 4394c1908b1055c6729afcaef333f78874976eba3214a13ce19537cc0bc66257
