[INFO] cloning repository https://github.com/dopeter/rust-practice
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dopeter/rust-practice" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdopeter%2Frust-practice", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdopeter%2Frust-practice'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1a9c1d1fabf0636d5440cb3c45207905e55d0ba8
[INFO] testing dopeter/rust-practice against beta-2020-10-09 for beta-1.48-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdopeter%2Frust-practice" "/workspace/builds/worker-7/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/dopeter/rust-practice on toolchain beta-2020-10-09
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-10-09" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/dopeter/rust-practice
[INFO] finished tweaking git repo https://github.com/dopeter/rust-practice
[INFO] tweaked toml for git repo https://github.com/dopeter/rust-practice written to /workspace/builds/worker-7/source/Cargo.toml
[INFO] crate git repo https://github.com/dopeter/rust-practice already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-10-09" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: dependencies.log4rs.feature
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded actix-web-codegen v0.2.0
[INFO] [stderr]   Downloaded actix-server v1.0.1
[INFO] [stderr]   Downloaded ucd-util v0.1.7
[INFO] [stderr]   Downloaded bytestring v0.1.4
[INFO] [stderr]   Downloaded log4rs v0.10.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] da41c78b094d60451022c1cec1432e8a5bdc08b689c64adfdb296b71610d4797
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "da41c78b094d60451022c1cec1432e8a5bdc08b689c64adfdb296b71610d4797", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "da41c78b094d60451022c1cec1432e8a5bdc08b689c64adfdb296b71610d4797", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "da41c78b094d60451022c1cec1432e8a5bdc08b689c64adfdb296b71610d4797", kill_on_drop: false }`
[INFO] [stdout] da41c78b094d60451022c1cec1432e8a5bdc08b689c64adfdb296b71610d4797
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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=warn" "-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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c5d996a34580347f4be36ab4966e782cf7f73a9cb6ac7778c6dc699596f384bc
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "c5d996a34580347f4be36ab4966e782cf7f73a9cb6ac7778c6dc699596f384bc", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: dependencies.log4rs.feature
[INFO] [stderr]    Compiling proc-macro2 v1.0.8
[INFO] [stderr]    Compiling syn v1.0.14
[INFO] [stderr]    Compiling memchr v2.3.0
[INFO] [stderr]    Compiling futures-core v0.3.2
[INFO] [stderr]    Compiling futures-sink v0.3.2
[INFO] [stderr]    Compiling arc-swap v0.4.4
[INFO] [stderr]    Compiling futures-task v0.3.2
[INFO] [stderr]    Compiling futures-io v0.3.2
[INFO] [stderr]    Compiling failure_derive v0.1.6
[INFO] [stderr]    Compiling copyless v0.1.4
[INFO] [stderr]    Compiling linked-hash-map v0.5.2
[INFO] [stderr]    Compiling ryu v1.0.2
[INFO] [stderr]    Compiling encoding_index_tests v0.1.4
[INFO] [stderr]    Compiling regex-syntax v0.6.14
[INFO] [stderr]    Compiling sha1 v0.6.0
[INFO] [stderr]    Compiling ucd-util v0.1.7
[INFO] [stderr]    Compiling utf8-ranges v1.0.4
[INFO] [stderr]    Compiling antidote v1.0.0
[INFO] [stderr]    Compiling log-mdc v0.1.0
[INFO] [stderr]    Compiling num-traits v0.2.11
[INFO] [stderr]    Compiling indexmap v1.3.1
[INFO] [stderr]    Compiling bytestring v0.1.4
[INFO] [stderr]    Compiling lock_api v0.3.3
[INFO] [stderr]    Compiling backtrace-sys v0.1.32
[INFO] [stderr]    Compiling brotli-sys v0.3.2
[INFO] [stderr]    Compiling mysqlclient-sys v0.2.4
[INFO] [stderr]    Compiling encoding-index-japanese v1.20141219.5
[INFO] [stderr]    Compiling encoding-index-singlebyte v1.20141219.5
[INFO] [stderr]    Compiling encoding-index-korean v1.20141219.5
[INFO] [stderr]    Compiling encoding-index-tradchinese v1.20141219.5
[INFO] [stderr]    Compiling encoding-index-simpchinese v1.20141219.5
[INFO] [stderr]    Compiling futures-channel v0.3.2
[INFO] [stderr]    Compiling regex-syntax v0.5.6
[INFO] [stderr]    Compiling lru-cache v0.1.2
[INFO] [stderr]    Compiling yaml-rust v0.4.3
[INFO] [stderr]    Compiling idna v0.1.5
[INFO] [stderr]    Compiling syn v0.11.11
[INFO] [stderr]    Compiling net2 v0.2.33
[INFO] [stderr]    Compiling iovec v0.1.4
[INFO] [stderr]    Compiling num_cpus v1.12.0
[INFO] [stderr]    Compiling signal-hook-registry v1.2.0
[INFO] [stderr]    Compiling parking_lot_core v0.7.0
[INFO] [stderr]    Compiling getrandom v0.1.14
[INFO] [stderr]    Compiling time v0.1.42
[INFO] [stderr]    Compiling socket2 v0.3.11
[INFO] [stderr]    Compiling hostname v0.1.5
[INFO] [stderr]    Compiling thread-id v3.3.0
[INFO] [stderr]    Compiling flate2 v1.0.13
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling threadpool v1.7.1
[INFO] [stderr]    Compiling encoding v0.2.33
[INFO] [stderr]    Compiling resolv-conf v0.6.2
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling aho-corasick v0.7.7
[INFO] [stderr]    Compiling aho-corasick v0.6.10
[INFO] [stderr]    Compiling parking_lot v0.10.0
[INFO] [stderr]    Compiling url v1.7.2
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]    Compiling rand_chacha v0.2.1
[INFO] [stderr]    Compiling backtrace v0.3.43
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling error-chain v0.10.0
[INFO] [stderr]    Compiling num-integer v0.1.42
[INFO] [stderr]    Compiling ordered-float v1.0.2
[INFO] [stderr]    Compiling regex v1.3.4
[INFO] [stderr]    Compiling chrono v0.4.10
[INFO] [stderr]    Compiling regex v0.2.11
[INFO] [stderr]    Compiling derive-error-chain v0.10.1
[INFO] [stderr]    Compiling dotenv v0.10.1
[INFO] [stderr]    Compiling brotli2 v0.3.2
[INFO] [stderr]    Compiling synstructure v0.12.3
[INFO] [stderr]    Compiling serde_derive v1.0.104
[INFO] [stderr]    Compiling proc-macro-hack v0.5.11
[INFO] [stderr]    Compiling tokio-macros v0.2.4
[INFO] [stderr]    Compiling pin-project-internal v0.4.8
[INFO] [stderr]    Compiling derive_more v0.99.2
[INFO] [stderr]    Compiling actix-macros v0.1.1
[INFO] [stderr]    Compiling enum-as-inner v0.3.0
[INFO] [stderr]    Compiling async-trait v0.1.24
[INFO] [stderr]    Compiling diesel_derives v1.4.1
[INFO] [stderr]    Compiling actix-web-codegen v0.2.0
[INFO] [stderr]    Compiling futures-macro v0.3.2
[INFO] [stderr]    Compiling failure v0.1.6
[INFO] [stderr]    Compiling pin-project v0.4.8
[INFO] [stderr]    Compiling futures-util v0.3.2
[INFO] [stderr]    Compiling serde v1.0.104
[INFO] [stderr]    Compiling futures-executor v0.3.2
[INFO] [stderr]    Compiling actix-service v1.0.5
[INFO] [stderr]    Compiling futures v0.3.2
[INFO] [stderr]    Compiling diesel v1.4.3
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]    Compiling serde_json v1.0.46
[INFO] [stderr]    Compiling serde_urlencoded v0.6.1
[INFO] [stderr]    Compiling serde_yaml v0.8.11
[INFO] [stderr]    Compiling serde-value v0.6.0
[INFO] [stderr]    Compiling mio v0.6.21
[INFO] [stderr]    Compiling actix-threadpool v0.3.1
[INFO] [stderr]    Compiling actix-router v0.2.4
[INFO] [stderr]    Compiling want v0.3.0
[INFO] [stderr]    Compiling log4rs v0.10.0
[INFO] [stderr]    Compiling mio-uds v0.6.7
[INFO] [stderr]    Compiling signal-hook v0.1.13
[INFO] [stderr]    Compiling tokio v0.2.11
[INFO] [stderr]    Compiling crossterm v0.14.2
[INFO] [stderr]    Compiling tokio-util v0.2.0
[INFO] [stderr]    Compiling actix-rt v1.0.0
[INFO] [stderr]    Compiling trust-dns-proto v0.18.0-alpha.2
[INFO] [stderr]    Compiling actix-codec v0.2.0
[INFO] [stderr]    Compiling h2 v0.2.1
[INFO] [stderr]    Compiling actix-utils v1.0.6
[INFO] [stderr]    Compiling actix-server v1.0.1
[INFO] [stderr]    Compiling actix-tls v1.0.0
[INFO] [stderr]    Compiling actix-testing v1.0.0
[INFO] [stderr]    Compiling trust-dns-resolver v0.18.0-alpha.2
[INFO] [stderr]    Compiling hyper v0.13.2
[INFO] [stderr]    Compiling actix-connect v1.0.2
[INFO] [stderr]    Compiling actix-http v1.0.1
[INFO] [stderr]    Compiling awc v1.0.1
[INFO] [stderr]    Compiling actix-web v2.0.0
[INFO] [stderr]    Compiling rust-practice v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `self::schema::districts`
[INFO] [stdout]   --> src/test_sql/store.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use self::schema::districts;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Borrow`
[INFO] [stdout]  --> src/data_build/district_builder.rs:4:30
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::borrow::{BorrowMut, Borrow};
[INFO] [stdout]   |                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::null`
[INFO] [stdout]  --> src/data_build/district_builder.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ptr::null;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/data_build/district_builder.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/data_build/district_builder.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `failure::_core::cell::Cell`
[INFO] [stdout]  --> src/data_build/district_builder.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use failure::_core::cell::Cell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Error`
[INFO] [stdout]  --> src/data_build/district_builder.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::io::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env::consts::OS`
[INFO] [stdout]   --> src/data_build/district_builder.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::env::consts::OS;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/data_build/district_builder.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 |         if (&district.adcode[0..4] == &node.adcode[0..4]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/data_build/district_builder.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     for mut district in root.districts.iter_mut() {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `test`
[INFO] [stdout]  --> src/test_sql/sql_helper.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn test() {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `testResp` should have a snake case name
[INFO] [stdout]  --> src/dto/response.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn testResp(){
[INFO] [stdout]   |        ^^^^^^^^ help: convert the identifier to snake case: `test_resp`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathList` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let pathList = walk_dir(dir).await;
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathList` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 |         Ok(pathList) => {
[INFO] [stdout]    |            ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/data_build/district_builder.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fs::write(path, serde_json::to_string(&content).unwrap());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathList` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut pathList = Vec::new();
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hangNormalProvince` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn hangNormalProvince(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_normal_province`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hangMunicipality` should have a snake case name
[INFO] [stdout]    --> src/data_build/district_builder.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn hangMunicipality(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_municipality`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 18 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Write`, `stdout`
[INFO] [stdout]  --> src/main.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{stdout, Write};
[INFO] [stdout]   |               ^^^^^^  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Colorize`, `ExecutableCommand`, `QueueableCommand`, `Result`, `cursor`, `self`, `terminal`
[INFO] [stdout]   --> src/main.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  |     cursor, ExecutableCommand,
[INFO] [stdout]    |     ^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     QueueableCommand, Result, style::{self, Colorize}, terminal
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^  ^^^^^^          ^^^^  ^^^^^^^^   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fs`, `thread`
[INFO] [stdout]   --> src/main.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::{thread, fs};
[INFO] [stdout]    |           ^^^^^^  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LevelFilter`, `error`, `info`, `trace`, `warn`
[INFO] [stdout]   --> src/main.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | use log::{error, info, warn, trace, debug, LevelFilter};
[INFO] [stdout]    |           ^^^^^  ^^^^  ^^^^  ^^^^^         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConsoleAppender`, `Target`
[INFO] [stdout]   --> src/main.rs:17:31
[INFO] [stdout]    |
[INFO] [stdout] 17 | use log4rs::append::console::{ConsoleAppender, Target};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log4rs::encode::json::JsonEncoder`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use log4rs::encode::json::JsonEncoder;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Appender`, `Config`, `Root`
[INFO] [stdout]   --> src/main.rs:19:22
[INFO] [stdout]    |
[INFO] [stdout] 19 | use log4rs::config::{Appender, Root, Config};
[INFO] [stdout]    |                      ^^^^^^^^  ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log4rs::append::file::FileAppender`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use log4rs::append::file::FileAppender;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log4rs::encode::pattern::PatternEncoder`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use log4rs::encode::pattern::PatternEncoder;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log4rs::filter::threshold::ThresholdFilter`
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use log4rs::filter::threshold::ThresholdFilter;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dto::response`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use dto::response;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Resp`, `testResp`
[INFO] [stdout]   --> src/main.rs:27:28
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::dto::response::{testResp, Resp};
[INFO] [stdout]    |                            ^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `district::spider`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use district::spider;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fetch_district`, `test_http_client`, `test_spider`
[INFO] [stdout]   --> src/main.rs:31:31
[INFO] [stdout]    |
[INFO] [stdout] 31 | use crate::district::spider::{test_spider, test_http_client, fetch_district};
[INFO] [stdout]    |                               ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_practice::test_sql::store::test_sql`
[INFO] [stdout]   --> src/main.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use rust_practice::test_sql::store::test_sql;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Borrow`
[INFO] [stdout]  --> src/data_build/district_builder.rs:4:30
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::borrow::{BorrowMut, Borrow};
[INFO] [stdout]   |                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::null`
[INFO] [stdout]  --> src/data_build/district_builder.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ptr::null;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/data_build/district_builder.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/data_build/district_builder.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `failure::_core::cell::Cell`
[INFO] [stdout]  --> src/data_build/district_builder.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use failure::_core::cell::Cell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Error`
[INFO] [stdout]  --> src/data_build/district_builder.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::io::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env::consts::OS`
[INFO] [stdout]   --> src/data_build/district_builder.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::env::consts::OS;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/data_build/district_builder.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 |         if (&district.adcode[0..4] == &node.adcode[0..4]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `data_build::district_builder::read_file_content`
[INFO] [stdout]   --> src/main.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use data_build::district_builder::read_file_content;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `process_entity`, `walk_dir`
[INFO] [stdout]   --> src/main.rs:37:43
[INFO] [stdout]    |
[INFO] [stdout] 37 | use crate::data_build::district_builder::{process_entity, walk_dir, build_district_str, save_json_file};
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LevelFilter`, `debug`, `info`, `trace`, `warn`
[INFO] [stdout]   --> src/main.rs:46:22
[INFO] [stdout]    |
[INFO] [stdout] 46 |     use log::{error, info, warn, trace, debug, LevelFilter};
[INFO] [stdout]    |                      ^^^^  ^^^^  ^^^^^  ^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `aa`
[INFO] [stdout]    --> src/main.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let aa=1/0;
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_aa`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]    --> src/main.rs:141:16
[INFO] [stdout]     |
[INFO] [stdout] 141 | async fn index(info: web::Path<(u32, String)>) -> impl Responder {
[INFO] [stdout]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]    --> src/main.rs:147:14
[INFO] [stdout]     |
[INFO] [stdout] 147 | async fn aaa(info: web::Path<(String, String)>) -> HttpResponse{
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/data_build/district_builder.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     for mut district in root.districts.iter_mut() {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `testResp`
[INFO] [stdout]  --> src/dto/response.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn testResp(){
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `ValidationError`
[INFO] [stdout]   --> src/dto/response.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     ValidationError { field: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `InternalError`
[INFO] [stdout]   --> src/dto/response.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     InternalError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `ok`
[INFO] [stdout]   --> src/dto/response.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn ok(data:T) -> Self {
[INFO] [stdout]    |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `to_json_result`
[INFO] [stdout]   --> src/dto/response.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn to_json_result(&self) -> Result<HttpResponse,BizException>{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `err`
[INFO] [stdout]   --> src/dto/response.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn err(error:i32,msg:&str) -> Self{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `test_spider`
[INFO] [stdout]   --> src/district/spider.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn test_spider() {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias is never used: `Result`
[INFO] [stdout]   --> src/district/spider.rs:15:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | type Result<T> = std::result::Result<T, Box<dyn std::error::Error + Send + Sync>>;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `test_http_client`
[INFO] [stdout]   --> src/district/spider.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn test_http_client() -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `fetch_json`
[INFO] [stdout]   --> src/district/spider.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | async fn fetch_json(url: hyper::Uri) -> Result<Vec<User>> {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `fetch_district`
[INFO] [stdout]   --> src/district/spider.rs:41:14
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub async fn fetch_district() -> Result<DistrictAPIDTO> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `test`
[INFO] [stdout]   --> src/main.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn test(){
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `testA` should have a snake case name
[INFO] [stdout]   --> src/main.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let testA= "510000";
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `test_a`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `testB` should have a snake case name
[INFO] [stdout]   --> src/main.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let testB=& testA[0..4];
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `test_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `testResp` should have a snake case name
[INFO] [stdout]  --> src/dto/response.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn testResp(){
[INFO] [stdout]   |        ^^^^^^^^ help: convert the identifier to snake case: `test_resp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathList` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let pathList = walk_dir(dir).await;
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathList` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 |         Ok(pathList) => {
[INFO] [stdout]    |            ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/data_build/district_builder.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fs::write(path, serde_json::to_string(&content).unwrap());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathList` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut pathList = Vec::new();
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hangNormalProvince` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn hangNormalProvince(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_normal_province`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hangMunicipality` should have a snake case name
[INFO] [stdout]    --> src/data_build/district_builder.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn hangMunicipality(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_municipality`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 52 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 4m 29s
[INFO] running `Command { std: "docker" "inspect" "c5d996a34580347f4be36ab4966e782cf7f73a9cb6ac7778c6dc699596f384bc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c5d996a34580347f4be36ab4966e782cf7f73a9cb6ac7778c6dc699596f384bc", kill_on_drop: false }`
[INFO] [stdout] c5d996a34580347f4be36ab4966e782cf7f73a9cb6ac7778c6dc699596f384bc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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=warn" "-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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3d696f09fd9e520afc02a477fce68a8e16602d90a6ad96c59760f3dbfc75366f
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "3d696f09fd9e520afc02a477fce68a8e16602d90a6ad96c59760f3dbfc75366f", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: dependencies.log4rs.feature
[INFO] [stderr]    Compiling rust-practice v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `self::schema::districts`
[INFO] [stdout]   --> src/test_sql/store.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use self::schema::districts;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Borrow`
[INFO] [stdout]  --> src/data_build/district_builder.rs:4:30
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::borrow::{BorrowMut, Borrow};
[INFO] [stdout]   |                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::null`
[INFO] [stdout]  --> src/data_build/district_builder.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ptr::null;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/data_build/district_builder.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/data_build/district_builder.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `failure::_core::cell::Cell`
[INFO] [stdout]  --> src/data_build/district_builder.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use failure::_core::cell::Cell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Error`
[INFO] [stdout]  --> src/data_build/district_builder.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::io::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env::consts::OS`
[INFO] [stdout]   --> src/data_build/district_builder.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::env::consts::OS;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/data_build/district_builder.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 |         if (&district.adcode[0..4] == &node.adcode[0..4]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/data_build/district_builder.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     for mut district in root.districts.iter_mut() {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `test`
[INFO] [stdout]  --> src/test_sql/sql_helper.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn test() {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `testResp` should have a snake case name
[INFO] [stdout]  --> src/dto/response.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn testResp(){
[INFO] [stdout]   |        ^^^^^^^^ help: convert the identifier to snake case: `test_resp`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathList` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let pathList = walk_dir(dir).await;
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathList` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 |         Ok(pathList) => {
[INFO] [stdout]    |            ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/data_build/district_builder.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fs::write(path, serde_json::to_string(&content).unwrap());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathList` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut pathList = Vec::new();
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hangNormalProvince` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn hangNormalProvince(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_normal_province`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hangMunicipality` should have a snake case name
[INFO] [stdout]    --> src/data_build/district_builder.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn hangMunicipality(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_municipality`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 18 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Write`, `stdout`
[INFO] [stdout]  --> src/main.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{stdout, Write};
[INFO] [stdout]   |               ^^^^^^  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Colorize`, `ExecutableCommand`, `QueueableCommand`, `Result`, `cursor`, `self`, `terminal`
[INFO] [stdout]   --> src/main.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  |     cursor, ExecutableCommand,
[INFO] [stdout]    |     ^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     QueueableCommand, Result, style::{self, Colorize}, terminal
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^  ^^^^^^          ^^^^  ^^^^^^^^   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fs`, `thread`
[INFO] [stdout]   --> src/main.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::{thread, fs};
[INFO] [stdout]    |           ^^^^^^  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LevelFilter`, `error`, `info`, `trace`, `warn`
[INFO] [stdout]   --> src/main.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | use log::{error, info, warn, trace, debug, LevelFilter};
[INFO] [stdout]    |           ^^^^^  ^^^^  ^^^^  ^^^^^         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConsoleAppender`, `Target`
[INFO] [stdout]   --> src/main.rs:17:31
[INFO] [stdout]    |
[INFO] [stdout] 17 | use log4rs::append::console::{ConsoleAppender, Target};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log4rs::encode::json::JsonEncoder`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use log4rs::encode::json::JsonEncoder;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Appender`, `Config`, `Root`
[INFO] [stdout]   --> src/main.rs:19:22
[INFO] [stdout]    |
[INFO] [stdout] 19 | use log4rs::config::{Appender, Root, Config};
[INFO] [stdout]    |                      ^^^^^^^^  ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log4rs::append::file::FileAppender`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use log4rs::append::file::FileAppender;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log4rs::encode::pattern::PatternEncoder`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use log4rs::encode::pattern::PatternEncoder;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log4rs::filter::threshold::ThresholdFilter`
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use log4rs::filter::threshold::ThresholdFilter;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dto::response`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use dto::response;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Resp`, `testResp`
[INFO] [stdout]   --> src/main.rs:27:28
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::dto::response::{testResp, Resp};
[INFO] [stdout]    |                            ^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `district::spider`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use district::spider;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fetch_district`, `test_http_client`, `test_spider`
[INFO] [stdout]   --> src/main.rs:31:31
[INFO] [stdout]    |
[INFO] [stdout] 31 | use crate::district::spider::{test_spider, test_http_client, fetch_district};
[INFO] [stdout]    |                               ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_practice::test_sql::store::test_sql`
[INFO] [stdout]   --> src/main.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use rust_practice::test_sql::store::test_sql;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Borrow`
[INFO] [stdout]  --> src/data_build/district_builder.rs:4:30
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::borrow::{BorrowMut, Borrow};
[INFO] [stdout]   |                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::null`
[INFO] [stdout]  --> src/data_build/district_builder.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ptr::null;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/data_build/district_builder.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/data_build/district_builder.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `failure::_core::cell::Cell`
[INFO] [stdout]  --> src/data_build/district_builder.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use failure::_core::cell::Cell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Error`
[INFO] [stdout]  --> src/data_build/district_builder.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::io::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env::consts::OS`
[INFO] [stdout]   --> src/data_build/district_builder.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::env::consts::OS;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/data_build/district_builder.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 |         if (&district.adcode[0..4] == &node.adcode[0..4]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]    --> src/data_build/district_builder.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |     use std::borrow::Borrow;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `failure::_core::cmp::max`
[INFO] [stdout]    --> src/data_build/district_builder.rs:196:9
[INFO] [stdout]     |
[INFO] [stdout] 196 |     use failure::_core::cmp::max;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]    --> src/data_build/district_builder.rs:197:9
[INFO] [stdout]     |
[INFO] [stdout] 197 |     use std::fs;
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/data_build/district_builder.rs:244:20
[INFO] [stdout]     |
[INFO] [stdout] 244 |                 if (maxChildLevel < childLevel) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `data_build::district_builder::read_file_content`
[INFO] [stdout]   --> src/main.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use data_build::district_builder::read_file_content;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `process_entity`, `walk_dir`
[INFO] [stdout]   --> src/main.rs:37:43
[INFO] [stdout]    |
[INFO] [stdout] 37 | use crate::data_build::district_builder::{process_entity, walk_dir, build_district_str, save_json_file};
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LevelFilter`, `debug`, `info`, `trace`, `warn`
[INFO] [stdout]   --> src/main.rs:46:22
[INFO] [stdout]    |
[INFO] [stdout] 46 |     use log::{error, info, warn, trace, debug, LevelFilter};
[INFO] [stdout]    |                      ^^^^  ^^^^  ^^^^^  ^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::schema::districts`
[INFO] [stdout]   --> src/test_sql/store.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use self::schema::districts;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Borrow`
[INFO] [stdout]  --> src/data_build/district_builder.rs:4:30
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::borrow::{BorrowMut, Borrow};
[INFO] [stdout]   |                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::null`
[INFO] [stdout]  --> src/data_build/district_builder.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ptr::null;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/data_build/district_builder.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/data_build/district_builder.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `failure::_core::cell::Cell`
[INFO] [stdout]  --> src/data_build/district_builder.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use failure::_core::cell::Cell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Error`
[INFO] [stdout]  --> src/data_build/district_builder.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::io::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env::consts::OS`
[INFO] [stdout]   --> src/data_build/district_builder.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::env::consts::OS;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/data_build/district_builder.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 |         if (&district.adcode[0..4] == &node.adcode[0..4]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]    --> src/data_build/district_builder.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |     use std::borrow::Borrow;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `failure::_core::cmp::max`
[INFO] [stdout]    --> src/data_build/district_builder.rs:196:9
[INFO] [stdout]     |
[INFO] [stdout] 196 |     use failure::_core::cmp::max;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]    --> src/data_build/district_builder.rs:197:9
[INFO] [stdout]     |
[INFO] [stdout] 197 |     use std::fs;
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/data_build/district_builder.rs:244:20
[INFO] [stdout]     |
[INFO] [stdout] 244 |                 if (maxChildLevel < childLevel) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `aa`
[INFO] [stdout]    --> src/main.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let aa=1/0;
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_aa`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]    --> src/main.rs:141:16
[INFO] [stdout]     |
[INFO] [stdout] 141 | async fn index(info: web::Path<(u32, String)>) -> impl Responder {
[INFO] [stdout]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]    --> src/main.rs:147:14
[INFO] [stdout]     |
[INFO] [stdout] 147 | async fn aaa(info: web::Path<(String, String)>) -> HttpResponse{
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `childLevel` is never read
[INFO] [stdout]    --> src/data_build/district_builder.rs:235:13
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let mut childLevel = level;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/data_build/district_builder.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     for mut district in root.districts.iter_mut() {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `testResp`
[INFO] [stdout]  --> src/dto/response.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn testResp(){
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `ValidationError`
[INFO] [stdout]   --> src/dto/response.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     ValidationError { field: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `InternalError`
[INFO] [stdout]   --> src/dto/response.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     InternalError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `ok`
[INFO] [stdout]   --> src/dto/response.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn ok(data:T) -> Self {
[INFO] [stdout]    |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `to_json_result`
[INFO] [stdout]   --> src/dto/response.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn to_json_result(&self) -> Result<HttpResponse,BizException>{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `err`
[INFO] [stdout]   --> src/dto/response.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn err(error:i32,msg:&str) -> Self{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `test_spider`
[INFO] [stdout]   --> src/district/spider.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn test_spider() {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias is never used: `Result`
[INFO] [stdout]   --> src/district/spider.rs:15:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | type Result<T> = std::result::Result<T, Box<dyn std::error::Error + Send + Sync>>;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `test_http_client`
[INFO] [stdout]   --> src/district/spider.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn test_http_client() -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `fetch_json`
[INFO] [stdout]   --> src/district/spider.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | async fn fetch_json(url: hyper::Uri) -> Result<Vec<User>> {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `fetch_district`
[INFO] [stdout]   --> src/district/spider.rs:41:14
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub async fn fetch_district() -> Result<DistrictAPIDTO> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `test3`
[INFO] [stdout]    --> src/data_build/district_builder.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 226 |     fn test3(content: &DistrictDto){
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `test`
[INFO] [stdout]   --> src/main.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn test(){
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `testA` should have a snake case name
[INFO] [stdout]   --> src/main.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let testA= "510000";
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `test_a`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `testB` should have a snake case name
[INFO] [stdout]   --> src/main.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let testB=& testA[0..4];
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `test_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `testResp` should have a snake case name
[INFO] [stdout]  --> src/dto/response.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn testResp(){
[INFO] [stdout]   |        ^^^^^^^^ help: convert the identifier to snake case: `test_resp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathList` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let pathList = walk_dir(dir).await;
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathList` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 |         Ok(pathList) => {
[INFO] [stdout]    |            ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/data_build/district_builder.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fs::write(path, serde_json::to_string(&content).unwrap());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathList` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut pathList = Vec::new();
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hangNormalProvince` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn hangNormalProvince(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_normal_province`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hangMunicipality` should have a snake case name
[INFO] [stdout]    --> src/data_build/district_builder.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn hangMunicipality(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_municipality`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkDistrictLevel` should have a snake case name
[INFO] [stdout]    --> src/data_build/district_builder.rs:234:8
[INFO] [stdout]     |
[INFO] [stdout] 234 |     fn checkDistrictLevel(dto: &DistrictDto, mut level: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `check_district_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `childLevel` should have a snake case name
[INFO] [stdout]    --> src/data_build/district_builder.rs:235:17
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let mut childLevel = level;
[INFO] [stdout]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `child_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `maxChildLevel` should have a snake case name
[INFO] [stdout]    --> src/data_build/district_builder.rs:236:17
[INFO] [stdout]     |
[INFO] [stdout] 236 |         let mut maxChildLevel = level;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: convert the identifier to snake case: `max_child_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `childLevel` is never read
[INFO] [stdout]    --> src/data_build/district_builder.rs:235:13
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let mut childLevel = level;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/data_build/district_builder.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     for mut district in root.districts.iter_mut() {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `test`
[INFO] [stdout]  --> src/test_sql/sql_helper.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn test() {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `test3`
[INFO] [stdout]    --> src/data_build/district_builder.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 226 |     fn test3(content: &DistrictDto){
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `testResp` should have a snake case name
[INFO] [stdout]  --> src/dto/response.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn testResp(){
[INFO] [stdout]   |        ^^^^^^^^ help: convert the identifier to snake case: `test_resp`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathList` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let pathList = walk_dir(dir).await;
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathList` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 |         Ok(pathList) => {
[INFO] [stdout]    |            ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/data_build/district_builder.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fs::write(path, serde_json::to_string(&content).unwrap());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathList` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let mut pathList = Vec::new();
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hangNormalProvince` should have a snake case name
[INFO] [stdout]   --> src/data_build/district_builder.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn hangNormalProvince(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_normal_province`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hangMunicipality` should have a snake case name
[INFO] [stdout]    --> src/data_build/district_builder.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn hangMunicipality(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_municipality`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checkDistrictLevel` should have a snake case name
[INFO] [stdout]    --> src/data_build/district_builder.rs:234:8
[INFO] [stdout]     |
[INFO] [stdout] 234 |     fn checkDistrictLevel(dto: &DistrictDto, mut level: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `check_district_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `childLevel` should have a snake case name
[INFO] [stdout]    --> src/data_build/district_builder.rs:235:17
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let mut childLevel = level;
[INFO] [stdout]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `child_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `maxChildLevel` should have a snake case name
[INFO] [stdout]    --> src/data_build/district_builder.rs:236:17
[INFO] [stdout]     |
[INFO] [stdout] 236 |         let mut maxChildLevel = level;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: convert the identifier to snake case: `max_child_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 27 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 61 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 13.27s
[INFO] running `Command { std: "docker" "inspect" "3d696f09fd9e520afc02a477fce68a8e16602d90a6ad96c59760f3dbfc75366f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d696f09fd9e520afc02a477fce68a8e16602d90a6ad96c59760f3dbfc75366f", kill_on_drop: false }`
[INFO] [stdout] 3d696f09fd9e520afc02a477fce68a8e16602d90a6ad96c59760f3dbfc75366f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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=warn" "-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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 4da2e79fa5e538dcd7947d8c522cbc7b21c7c28f6e72fdb7e0a2ea4acd70a806
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "4da2e79fa5e538dcd7947d8c522cbc7b21c7c28f6e72fdb7e0a2ea4acd70a806", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: dependencies.log4rs.feature
[INFO] [stderr] warning: unused import: `self::schema::districts`
[INFO] [stderr]   --> src/test_sql/store.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use self::schema::districts;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Borrow`
[INFO] [stderr]  --> src/data_build/district_builder.rs:4:30
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::borrow::{BorrowMut, Borrow};
[INFO] [stderr]   |                              ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ptr::null`
[INFO] [stderr]  --> src/data_build/district_builder.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::ptr::null;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> src/data_build/district_builder.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> src/data_build/district_builder.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `failure::_core::cell::Cell`
[INFO] [stderr]  --> src/data_build/district_builder.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use failure::_core::cell::Cell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Error`
[INFO] [stderr]  --> src/data_build/district_builder.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::io::Error;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::env::consts::OS`
[INFO] [stderr]   --> src/data_build/district_builder.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::env::consts::OS;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `self::schema::districts`
[INFO] [stderr]   --> src/test_sql/store.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use self::schema::districts;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/data_build/district_builder.rs:129:12
[INFO] [stderr]     |
[INFO] [stderr] 129 |         if (&district.adcode[0..4] == &node.adcode[0..4]) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::borrow::Borrow`
[INFO] [stderr]    --> src/data_build/district_builder.rs:195:9
[INFO] [stderr]     |
[INFO] [stderr] 195 |     use std::borrow::Borrow;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `failure::_core::cmp::max`
[INFO] [stderr]    --> src/data_build/district_builder.rs:196:9
[INFO] [stderr]     |
[INFO] [stderr] 196 |     use failure::_core::cmp::max;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Borrow`
[INFO] [stderr]  --> src/data_build/district_builder.rs:4:30
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::borrow::{BorrowMut, Borrow};
[INFO] [stderr]   |                              ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fs`
[INFO] [stderr]    --> src/data_build/district_builder.rs:197:9
[INFO] [stderr]     |
[INFO] [stderr] 197 |     use std::fs;
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/data_build/district_builder.rs:244:20
[INFO] [stderr]     |
[INFO] [stderr] 244 |                 if (maxChildLevel < childLevel) {
[INFO] [stderr]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ptr::null`
[INFO] [stderr]  --> src/data_build/district_builder.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::ptr::null;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> src/data_build/district_builder.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> src/data_build/district_builder.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `failure::_core::cell::Cell`
[INFO] [stderr]  --> src/data_build/district_builder.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use failure::_core::cell::Cell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Error`
[INFO] [stderr]  --> src/data_build/district_builder.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::io::Error;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::env::consts::OS`
[INFO] [stderr]   --> src/data_build/district_builder.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::env::consts::OS;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/data_build/district_builder.rs:129:12
[INFO] [stderr]     |
[INFO] [stderr] 129 |         if (&district.adcode[0..4] == &node.adcode[0..4]) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/data_build/district_builder.rs:128:9
[INFO] [stderr]     |
[INFO] [stderr] 128 |     for mut district in root.districts.iter_mut() {
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `test`
[INFO] [stderr]  --> src/test_sql/sql_helper.rs:4:4
[INFO] [stderr]   |
[INFO] [stderr] 4 | fn test() {
[INFO] [stderr]   |    ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `testResp` should have a snake case name
[INFO] [stderr]  --> src/dto/response.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn testResp(){
[INFO] [stderr]   |        ^^^^^^^^ help: convert the identifier to snake case: `test_resp`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `pathList` should have a snake case name
[INFO] [stderr]   --> src/data_build/district_builder.rs:26:9
[INFO] [stderr]    |
[INFO] [stderr] 26 |     let pathList = walk_dir(dir).await;
[INFO] [stderr]    |         ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `pathList` should have a snake case name
[INFO] [stderr]   --> src/data_build/district_builder.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 39 |         Ok(pathList) => {
[INFO] [stderr]    |            ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/data_build/district_builder.rs:75:5
[INFO] [stderr]    |
[INFO] [stderr] 75 |     fs::write(path, serde_json::to_string(&content).unwrap());
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: variable `pathList` should have a snake case name
[INFO] [stderr]   --> src/data_build/district_builder.rs:79:13
[INFO] [stderr]    |
[INFO] [stderr] 79 |     let mut pathList = Vec::new();
[INFO] [stderr]    |             ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stderr] 
[INFO] [stderr] warning: function `hangNormalProvince` should have a snake case name
[INFO] [stderr]   --> src/data_build/district_builder.rs:96:4
[INFO] [stderr]    |
[INFO] [stderr] 96 | fn hangNormalProvince(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_normal_province`
[INFO] [stderr] 
[INFO] [stderr] warning: function `hangMunicipality` should have a snake case name
[INFO] [stderr]    --> src/data_build/district_builder.rs:125:4
[INFO] [stderr]     |
[INFO] [stderr] 125 | fn hangMunicipality(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_municipality`
[INFO] [stderr] 
[INFO] [stderr] warning: 18 warnings emitted
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `childLevel` is never read
[INFO] [stderr]    --> src/data_build/district_builder.rs:235:13
[INFO] [stderr]     |
[INFO] [stderr] 235 |         let mut childLevel = level;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/data_build/district_builder.rs:128:9
[INFO] [stderr]     |
[INFO] [stderr] 128 |     for mut district in root.districts.iter_mut() {
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `test`
[INFO] [stderr]  --> src/test_sql/sql_helper.rs:4:4
[INFO] [stderr]   |
[INFO] [stderr] 4 | fn test() {
[INFO] [stderr]   |    ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `test3`
[INFO] [stderr]    --> src/data_build/district_builder.rs:226:8
[INFO] [stderr]     |
[INFO] [stderr] 226 |     fn test3(content: &DistrictDto){
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `testResp` should have a snake case name
[INFO] [stderr]  --> src/dto/response.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn testResp(){
[INFO] [stderr]   |        ^^^^^^^^ help: convert the identifier to snake case: `test_resp`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `pathList` should have a snake case name
[INFO] [stderr]   --> src/data_build/district_builder.rs:26:9
[INFO] [stderr]    |
[INFO] [stderr] 26 |     let pathList = walk_dir(dir).await;
[INFO] [stderr]    |         ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `pathList` should have a snake case name
[INFO] [stderr]   --> src/data_build/district_builder.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 39 |         Ok(pathList) => {
[INFO] [stderr]    |            ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/data_build/district_builder.rs:75:5
[INFO] [stderr]    |
[INFO] [stderr] 75 |     fs::write(path, serde_json::to_string(&content).unwrap());
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: variable `pathList` should have a snake case name
[INFO] [stderr]   --> src/data_build/district_builder.rs:79:13
[INFO] [stderr]    |
[INFO] [stderr] 79 |     let mut pathList = Vec::new();
[INFO] [stderr]    |             ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stderr] 
[INFO] [stderr] warning: function `hangNormalProvince` should have a snake case name
[INFO] [stderr]   --> src/data_build/district_builder.rs:96:4
[INFO] [stderr]    |
[INFO] [stderr] 96 | fn hangNormalProvince(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_normal_province`
[INFO] [stderr] 
[INFO] [stderr] warning: function `hangMunicipality` should have a snake case name
[INFO] [stderr]    --> src/data_build/district_builder.rs:125:4
[INFO] [stderr]     |
[INFO] [stderr] 125 | fn hangMunicipality(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_municipality`
[INFO] [stderr] 
[INFO] [stderr] warning: function `checkDistrictLevel` should have a snake case name
[INFO] [stderr]    --> src/data_build/district_builder.rs:234:8
[INFO] [stderr]     |
[INFO] [stderr] 234 |     fn checkDistrictLevel(dto: &DistrictDto, mut level: i32) -> i32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `check_district_level`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `childLevel` should have a snake case name
[INFO] [stderr]    --> src/data_build/district_builder.rs:235:17
[INFO] [stderr]     |
[INFO] [stderr] 235 |         let mut childLevel = level;
[INFO] [stderr]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `child_level`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `maxChildLevel` should have a snake case name
[INFO] [stderr]    --> src/data_build/district_builder.rs:236:17
[INFO] [stderr]     |
[INFO] [stderr] 236 |         let mut maxChildLevel = level;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^ help: convert the identifier to snake case: `max_child_level`
[INFO] [stderr] 
[INFO] [stderr] warning: 27 warnings emitted
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Write`, `stdout`
[INFO] [stderr]  --> src/main.rs:4:15
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::io::{stdout, Write};
[INFO] [stderr]   |               ^^^^^^  ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Colorize`, `ExecutableCommand`, `QueueableCommand`, `Result`, `cursor`, `self`, `terminal`
[INFO] [stderr]   --> src/main.rs:9:5
[INFO] [stderr]    |
[INFO] [stderr] 9  |     cursor, ExecutableCommand,
[INFO] [stderr]    |     ^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 10 |     QueueableCommand, Result, style::{self, Colorize}, terminal
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^  ^^^^^^          ^^^^  ^^^^^^^^   ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `fs`, `thread`
[INFO] [stderr]   --> src/main.rs:13:11
[INFO] [stderr]    |
[INFO] [stderr] 13 | use std::{thread, fs};
[INFO] [stderr]    |           ^^^^^^  ^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `LevelFilter`, `error`, `info`, `trace`, `warn`
[INFO] [stderr]   --> src/main.rs:15:11
[INFO] [stderr]    |
[INFO] [stderr] 15 | use log::{error, info, warn, trace, debug, LevelFilter};
[INFO] [stderr]    |           ^^^^^  ^^^^  ^^^^  ^^^^^         ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]   --> src/main.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use std::time::Duration;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ConsoleAppender`, `Target`
[INFO] [stderr]   --> src/main.rs:17:31
[INFO] [stderr]    |
[INFO] [stderr] 17 | use log4rs::append::console::{ConsoleAppender, Target};
[INFO] [stderr]    |                               ^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `log4rs::encode::json::JsonEncoder`
[INFO] [stderr]   --> src/main.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | use log4rs::encode::json::JsonEncoder;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Appender`, `Config`, `Root`
[INFO] [stderr]   --> src/main.rs:19:22
[INFO] [stderr]    |
[INFO] [stderr] 19 | use log4rs::config::{Appender, Root, Config};
[INFO] [stderr]    |                      ^^^^^^^^  ^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `log4rs::append::file::FileAppender`
[INFO] [stderr]   --> src/main.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | use log4rs::append::file::FileAppender;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `log4rs::encode::pattern::PatternEncoder`
[INFO] [stderr]   --> src/main.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | use log4rs::encode::pattern::PatternEncoder;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `log4rs::filter::threshold::ThresholdFilter`
[INFO] [stderr]   --> src/main.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 | use log4rs::filter::threshold::ThresholdFilter;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `dto::response`
[INFO] [stderr]   --> src/main.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 26 | use dto::response;
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Resp`, `testResp`
[INFO] [stderr]   --> src/main.rs:27:28
[INFO] [stderr]    |
[INFO] [stderr] 27 | use crate::dto::response::{testResp, Resp};
[INFO] [stderr]    |                            ^^^^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `district::spider`
[INFO] [stderr]   --> src/main.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 30 | use district::spider;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `fetch_district`, `test_http_client`, `test_spider`
[INFO] [stderr]   --> src/main.rs:31:31
[INFO] [stderr]    |
[INFO] [stderr] 31 | use crate::district::spider::{test_spider, test_http_client, fetch_district};
[INFO] [stderr]    |                               ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rust_practice::test_sql::store::test_sql`
[INFO] [stderr]   --> src/main.rs:33:5
[INFO] [stderr]    |
[INFO] [stderr] 33 | use rust_practice::test_sql::store::test_sql;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Borrow`
[INFO] [stderr]  --> src/data_build/district_builder.rs:4:30
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::borrow::{BorrowMut, Borrow};
[INFO] [stderr]   |                              ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ptr::null`
[INFO] [stderr]  --> src/data_build/district_builder.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::ptr::null;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> src/data_build/district_builder.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> src/data_build/district_builder.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `failure::_core::cell::Cell`
[INFO] [stderr]  --> src/data_build/district_builder.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use failure::_core::cell::Cell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Error`
[INFO] [stderr]  --> src/data_build/district_builder.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::io::Error;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::env::consts::OS`
[INFO] [stderr]   --> src/data_build/district_builder.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::env::consts::OS;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/data_build/district_builder.rs:129:12
[INFO] [stderr]     |
[INFO] [stderr] 129 |         if (&district.adcode[0..4] == &node.adcode[0..4]) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::borrow::Borrow`
[INFO] [stderr]    --> src/data_build/district_builder.rs:195:9
[INFO] [stderr]     |
[INFO] [stderr] 195 |     use std::borrow::Borrow;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `failure::_core::cmp::max`
[INFO] [stderr]    --> src/data_build/district_builder.rs:196:9
[INFO] [stderr]     |
[INFO] [stderr] 196 |     use failure::_core::cmp::max;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fs`
[INFO] [stderr]    --> src/data_build/district_builder.rs:197:9
[INFO] [stderr]     |
[INFO] [stderr] 197 |     use std::fs;
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/data_build/district_builder.rs:244:20
[INFO] [stderr]     |
[INFO] [stderr] 244 |                 if (maxChildLevel < childLevel) {
[INFO] [stderr]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `data_build::district_builder::read_file_content`
[INFO] [stderr]   --> src/main.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 36 | use data_build::district_builder::read_file_content;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `process_entity`, `walk_dir`
[INFO] [stderr]   --> src/main.rs:37:43
[INFO] [stderr]    |
[INFO] [stderr] 37 | use crate::data_build::district_builder::{process_entity, walk_dir, build_district_str, save_json_file};
[INFO] [stderr]    |                                           ^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `LevelFilter`, `debug`, `info`, `trace`, `warn`
[INFO] [stderr]   --> src/main.rs:46:22
[INFO] [stderr]    |
[INFO] [stderr] 46 |     use log::{error, info, warn, trace, debug, LevelFilter};
[INFO] [stderr]    |                      ^^^^  ^^^^  ^^^^^  ^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `aa`
[INFO] [stderr]    --> src/main.rs:129:9
[INFO] [stderr]     |
[INFO] [stderr] 129 |     let aa=1/0;
[INFO] [stderr]     |         ^^ help: if this is intentional, prefix it with an underscore: `_aa`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `info`
[INFO] [stderr]    --> src/main.rs:141:16
[INFO] [stderr]     |
[INFO] [stderr] 141 | async fn index(info: web::Path<(u32, String)>) -> impl Responder {
[INFO] [stderr]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `info`
[INFO] [stderr]    --> src/main.rs:147:14
[INFO] [stderr]     |
[INFO] [stderr] 147 | async fn aaa(info: web::Path<(String, String)>) -> HttpResponse{
[INFO] [stderr]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `childLevel` is never read
[INFO] [stderr]    --> src/data_build/district_builder.rs:235:13
[INFO] [stderr]     |
[INFO] [stderr] 235 |         let mut childLevel = level;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/data_build/district_builder.rs:128:9
[INFO] [stderr]     |
[INFO] [stderr] 128 |     for mut district in root.districts.iter_mut() {
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `testResp`
[INFO] [stderr]  --> src/dto/response.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn testResp(){
[INFO] [stderr]   |        ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `ValidationError`
[INFO] [stderr]   --> src/dto/response.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 |     ValidationError { field: String },
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `InternalError`
[INFO] [stderr]   --> src/dto/response.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 |     InternalError,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `ok`
[INFO] [stderr]   --> src/dto/response.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 27 |     pub fn ok(data:T) -> Self {
[INFO] [stderr]    |            ^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `to_json_result`
[INFO] [stderr]   --> src/dto/response.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub fn to_json_result(&self) -> Result<HttpResponse,BizException>{
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `err`
[INFO] [stderr]   --> src/dto/response.rs:43:12
[INFO] [stderr]    |
[INFO] [stderr] 43 |     pub fn err(error:i32,msg:&str) -> Self{
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `test_spider`
[INFO] [stderr]   --> src/district/spider.rs:10:8
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub fn test_spider() {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias is never used: `Result`
[INFO] [stderr]   --> src/district/spider.rs:15:1
[INFO] [stderr]    |
[INFO] [stderr] 15 | type Result<T> = std::result::Result<T, Box<dyn std::error::Error + Send + Sync>>;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `test_http_client`
[INFO] [stderr]   --> src/district/spider.rs:17:14
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub async fn test_http_client() -> Result<()> {
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `fetch_json`
[INFO] [stderr]   --> src/district/spider.rs:29:10
[INFO] [stderr]    |
[INFO] [stderr] 29 | async fn fetch_json(url: hyper::Uri) -> Result<Vec<User>> {
[INFO] [stderr]    |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `fetch_district`
[INFO] [stderr]   --> src/district/spider.rs:41:14
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub async fn fetch_district() -> Result<DistrictAPIDTO> {
[INFO] [stderr]    |              ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `test3`
[INFO] [stderr]    --> src/data_build/district_builder.rs:226:8
[INFO] [stderr]     |
[INFO] [stderr] 226 |     fn test3(content: &DistrictDto){
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `test`
[INFO] [stderr]   --> src/main.rs:48:12
[INFO] [stderr]    |
[INFO] [stderr] 48 |     pub fn test(){
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable `testA` should have a snake case name
[INFO] [stderr]   --> src/main.rs:57:9
[INFO] [stderr]    |
[INFO] [stderr] 57 |     let testA= "510000";
[INFO] [stderr]    |         ^^^^^ help: convert the identifier to snake case: `test_a`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `testB` should have a snake case name
[INFO] [stderr]   --> src/main.rs:58:9
[INFO] [stderr]    |
[INFO] [stderr] 58 |     let testB=& testA[0..4];
[INFO] [stderr]    |         ^^^^^ help: convert the identifier to snake case: `test_b`
[INFO] [stderr] 
[INFO] [stderr] warning: function `testResp` should have a snake case name
[INFO] [stderr]  --> src/dto/response.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn testResp(){
[INFO] [stderr]   |        ^^^^^^^^ help: convert the identifier to snake case: `test_resp`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `pathList` should have a snake case name
[INFO] [stderr]   --> src/data_build/district_builder.rs:26:9
[INFO] [stderr]    |
[INFO] [stderr] 26 |     let pathList = walk_dir(dir).await;
[INFO] [stderr]    |         ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `pathList` should have a snake case name
[INFO] [stderr]   --> src/data_build/district_builder.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 39 |         Ok(pathList) => {
[INFO] [stderr]    |            ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/data_build/district_builder.rs:75:5
[INFO] [stderr]    |
[INFO] [stderr] 75 |     fs::write(path, serde_json::to_string(&content).unwrap());
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: variable `pathList` should have a snake case name
[INFO] [stderr]   --> src/data_build/district_builder.rs:79:13
[INFO] [stderr]    |
[INFO] [stderr] 79 |     let mut pathList = Vec::new();
[INFO] [stderr]    |             ^^^^^^^^ help: convert the identifier to snake case: `path_list`
[INFO] [stderr] 
[INFO] [stderr] warning: function `hangNormalProvince` should have a snake case name
[INFO] [stderr]   --> src/data_build/district_builder.rs:96:4
[INFO] [stderr]    |
[INFO] [stderr] 96 | fn hangNormalProvince(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_normal_province`
[INFO] [stderr] 
[INFO] [stderr] warning: function `hangMunicipality` should have a snake case name
[INFO] [stderr]    --> src/data_build/district_builder.rs:125:4
[INFO] [stderr]     |
[INFO] [stderr] 125 | fn hangMunicipality(root: &mut DistrictDto, node: &DistrictDto) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hang_municipality`
[INFO] [stderr] 
[INFO] [stderr] warning: function `checkDistrictLevel` should have a snake case name
[INFO] [stderr]    --> src/data_build/district_builder.rs:234:8
[INFO] [stderr]     |
[INFO] [stderr] 234 |     fn checkDistrictLevel(dto: &DistrictDto, mut level: i32) -> i32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `check_district_level`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `childLevel` should have a snake case name
[INFO] [stderr]    --> src/data_build/district_builder.rs:235:17
[INFO] [stderr]     |
[INFO] [stderr] 235 |         let mut childLevel = level;
[INFO] [stderr]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `child_level`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `maxChildLevel` should have a snake case name
[INFO] [stderr]    --> src/data_build/district_builder.rs:236:17
[INFO] [stderr]     |
[INFO] [stderr] 236 |         let mut maxChildLevel = level;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^ help: convert the identifier to snake case: `max_child_level`
[INFO] [stderr] 
[INFO] [stderr] warning: 61 warnings emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.31s
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/rust_practice-90aba9ca17b146d9
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test data_build::district_builder::tests::test1 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
[INFO] [stdout] 
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/rust_practice-f8d0c391827b1987
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test data_build::district_builder::tests::test1 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests rust-practice
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> /opt/rustwide/workdir/src/data_build/district_builder.rs:129:12
[INFO] [stderr]     |
[INFO] [stderr] 129 |         if (&district.adcode[0..4] == &node.adcode[0..4]) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: 1 warning emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "4da2e79fa5e538dcd7947d8c522cbc7b21c7c28f6e72fdb7e0a2ea4acd70a806", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4da2e79fa5e538dcd7947d8c522cbc7b21c7c28f6e72fdb7e0a2ea4acd70a806", kill_on_drop: false }`
[INFO] [stdout] 4da2e79fa5e538dcd7947d8c522cbc7b21c7c28f6e72fdb7e0a2ea4acd70a806
