[INFO] cloning repository https://github.com/pengsy94/stranger-api [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pengsy94/stranger-api" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpengsy94%2Fstranger-api", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpengsy94%2Fstranger-api'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5e9e15e53aa5013a3df4d5dcf3208933a7c66a7b [INFO] linting pengsy94/stranger-api/5e9e15e53aa5013a3df4d5dcf3208933a7c66a7b against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpengsy94%2Fstranger-api" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/pengsy94/stranger-api [INFO] finished tweaking git repo https://github.com/pengsy94/stranger-api [INFO] tweaked toml for git repo https://github.com/pengsy94/stranger-api written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/pengsy94/stranger-api on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/pengsy94/stranger-api already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded pluralizer v0.5.0 [INFO] [stderr] Downloaded jiff-sqlx v0.1.1 [INFO] [stderr] Downloaded croner v3.0.1 [INFO] [stderr] Downloaded sea-query-sqlx v0.8.0-rc.10 [INFO] [stderr] Downloaded arcstr v1.2.0 [INFO] [stderr] Downloaded compression-codecs v0.4.35 [INFO] [stderr] Downloaded crc16 v0.4.0 [INFO] [stderr] Downloaded sea-orm-macros v2.0.0-rc.24 [INFO] [stderr] Downloaded tokio-cron-scheduler v0.15.1 [INFO] [stderr] Downloaded async-compression v0.4.36 [INFO] [stderr] Downloaded sea-query v1.0.0-rc.27 [INFO] [stderr] Downloaded redis v1.0.2 [INFO] [stderr] Downloaded sea-schema v0.17.0-rc.17 [INFO] [stderr] Downloaded sea-orm v2.0.0-rc.24 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1b18ebd234e61c9e3d8bc08da14bbb7ca1712cb1ca7cba56cb7ff84d8b6cc11a [INFO] running `Command { std: "docker" "start" "-a" "1b18ebd234e61c9e3d8bc08da14bbb7ca1712cb1ca7cba56cb7ff84d8b6cc11a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1b18ebd234e61c9e3d8bc08da14bbb7ca1712cb1ca7cba56cb7ff84d8b6cc11a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1b18ebd234e61c9e3d8bc08da14bbb7ca1712cb1ca7cba56cb7ff84d8b6cc11a", kill_on_drop: false }` [INFO] [stdout] 1b18ebd234e61c9e3d8bc08da14bbb7ca1712cb1ca7cba56cb7ff84d8b6cc11a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 749f4e4c90c8c462995b2a82e0ce3e8882a48f27b951385a7dd5c2388099f963 [INFO] running `Command { std: "docker" "start" "-a" "749f4e4c90c8c462995b2a82e0ce3e8882a48f27b951385a7dd5c2388099f963", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling libc v0.2.178 [INFO] [stderr] Checking itoa v1.0.16 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling zerocopy v0.8.31 [INFO] [stderr] Compiling syn v2.0.111 [INFO] [stderr] Checking ryu v1.0.21 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling cc v1.2.50 [INFO] [stderr] Compiling time-macros v0.2.24 [INFO] [stderr] Checking num_threads v0.1.7 [INFO] [stderr] Checking base64ct v1.8.1 [INFO] [stderr] Compiling rust_decimal v1.39.0 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Checking crc v3.4.0 [INFO] [stderr] Compiling num-bigint-dig v0.8.6 [INFO] [stderr] Checking regex-syntax v0.8.8 [INFO] [stderr] Checking http v1.4.0 [INFO] [stderr] Checking siphasher v1.0.1 [INFO] [stderr] Checking pem-rfc7468 v0.7.0 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking unicode-normalization v0.1.25 [INFO] [stderr] Compiling multer v3.1.0 [INFO] [stderr] Checking unicode-properties v0.1.4 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking der v0.7.10 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking phf_shared v0.12.1 [INFO] [stderr] Compiling thiserror v2.0.17 [INFO] [stderr] Compiling chrono-tz v0.10.4 [INFO] [stderr] Compiling crc16 v0.4.0 [INFO] [stderr] Checking hkdf v0.12.4 [INFO] [stderr] Checking phf v0.12.1 [INFO] [stderr] Checking md-5 v0.10.6 [INFO] [stderr] Compiling tokio-cron-scheduler v0.15.1 [INFO] [stderr] Checking whoami v1.6.1 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Checking flume v0.11.1 [INFO] [stderr] Checking home v0.5.12 [INFO] [stderr] Checking sha1_smol v1.0.1 [INFO] [stderr] Checking arcstr v1.2.0 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking atoi v2.0.0 [INFO] [stderr] Checking stringprep v0.1.5 [INFO] [stderr] Checking xxhash-rust v0.8.15 [INFO] [stderr] Checking ordered-float v4.6.0 [INFO] [stderr] Checking simd-adler32 v0.3.8 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking aliasable v0.1.3 [INFO] [stderr] Checking compression-core v0.4.31 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking http-range-header v0.4.2 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Checking socket2 v0.6.1 [INFO] [stderr] Checking signal-hook-registry v1.4.7 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking regex-automata v0.4.13 [INFO] [stderr] Checking num_cpus v1.17.0 [INFO] [stderr] Checking flate2 v1.1.5 [INFO] [stderr] Checking spki v0.7.3 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking pkcs8 v0.10.2 [INFO] [stderr] Checking compression-codecs v0.4.35 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Checking signature v2.2.0 [INFO] [stderr] Checking pkcs1 v0.7.5 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking serde_json v1.0.145 [INFO] [stderr] Checking uuid v1.19.0 [INFO] [stderr] Checking deranged v0.5.5 [INFO] [stderr] Checking bitflags v2.10.0 [INFO] [stderr] Checking serde_path_to_error v0.1.20 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Checking regex v1.12.2 [INFO] [stderr] Checking matchers v0.2.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling inherent v1.0.13 [INFO] [stderr] Compiling sea-bae v0.2.1 [INFO] [stderr] Compiling sea-schema-derive v0.3.0 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling ouroboros_macro v0.18.5 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling pluralizer v0.5.0 [INFO] [stderr] Checking axum-core v0.5.5 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking tungstenite v0.28.0 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Compiling sea-orm-macros v2.0.0-rc.24 [INFO] [stderr] Checking derive_more v2.1.1 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Checking strum v0.27.2 [INFO] [stderr] Checking ouroboros v0.18.5 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling derive_builder_core v0.20.2 [INFO] [stderr] Compiling sea-query-derive v1.0.0-rc.11 [INFO] [stderr] Compiling validator_derive v0.20.0 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking chrono v0.4.42 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking time v0.3.44 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Compiling derive_builder_macro v0.20.2 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking derive_builder v0.20.2 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking tokio v1.48.0 [INFO] [stderr] Checking futures-intrusive v0.5.0 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking rsa v0.9.9 [INFO] [stderr] Checking croner v3.0.1 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking url v2.5.7 [INFO] [stderr] Checking validator v0.20.0 [INFO] [stderr] Checking sea-query v1.0.0-rc.27 [INFO] [stderr] Checking tracing-subscriber v0.3.22 [INFO] [stderr] Checking tracing-appender v0.2.4 [INFO] [stderr] Checking tokio-stream v0.1.17 [INFO] [stderr] Checking tokio-util v0.7.17 [INFO] [stderr] Checking hyper v1.8.1 [INFO] [stderr] Checking tokio-tungstenite v0.28.0 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking async-compression v0.4.36 [INFO] [stderr] Checking combine v4.6.7 [INFO] [stderr] Checking tower-http v0.6.8 [INFO] [stderr] Checking sqlx-core v0.8.6 [INFO] [stderr] Checking hyper-util v0.1.19 [INFO] [stderr] Checking axum v0.8.8 [INFO] [stderr] Checking sqlx-postgres v0.8.6 [INFO] [stderr] Checking sqlx-mysql v0.8.6 [INFO] [stderr] Checking sqlx-sqlite v0.8.6 [INFO] [stderr] Checking redis v1.0.2 [INFO] [stderr] Checking common v0.1.0 (/opt/rustwide/workdir/common) [INFO] [stderr] Checking middleware-fn v0.1.0 (/opt/rustwide/workdir/middleware-fn) [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> middleware-fn/src/request.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / if let Some(query) = original_uri.query() { [INFO] [stdout] 23 | | if query.eq("number=11") { [INFO] [stdout] 24 | | return Err(Json(json!({ "status": "ok" }))); [INFO] [stdout] 25 | | } [INFO] [stdout] 26 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 22 ~ if let Some(query) = original_uri.query() [INFO] [stdout] 23 ~ && query.eq("number=11") { [INFO] [stdout] 24 | return Err(Json(json!({ "status": "ok" }))); [INFO] [stdout] 25 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> middleware-fn/src/request.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / if let Some(query) = original_uri.query() { [INFO] [stdout] 23 | | if query.eq("number=11") { [INFO] [stdout] 24 | | return Err(Json(json!({ "status": "ok" }))); [INFO] [stdout] 25 | | } [INFO] [stdout] 26 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 22 ~ if let Some(query) = original_uri.query() [INFO] [stdout] 23 ~ && query.eq("number=11") { [INFO] [stdout] 24 | return Err(Json(json!({ "status": "ok" }))); [INFO] [stdout] 25 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/validator/query.rs:30:21 [INFO] [stdout] | [INFO] [stdout] 30 | / return ( [INFO] [stdout] 31 | | StatusCode::OK, [INFO] [stdout] 32 | | Json(ErrorResponse { [INFO] [stdout] 33 | | code: 500, [INFO] [stdout] ... | [INFO] [stdout] 41 | | .into_response(); [INFO] [stdout] | |________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 30 ~ ( [INFO] [stdout] 31 + StatusCode::OK, [INFO] [stdout] 32 + Json(ErrorResponse { [INFO] [stdout] 33 + code: 500, [INFO] [stdout] 34 ~ message: "Query 参数解析失败".into(), [INFO] [stdout] 35 + errors: Some(vec![FieldError { [INFO] [stdout] 36 + field: "query".into(), [INFO] [stdout] 37 + message: e.to_string(), [INFO] [stdout] 38 + }]), [INFO] [stdout] 39 + }), [INFO] [stdout] 40 + ) [INFO] [stdout] 41 ~ .into_response() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/validator/path.rs:30:21 [INFO] [stdout] | [INFO] [stdout] 30 | / return ( [INFO] [stdout] 31 | | StatusCode::OK, [INFO] [stdout] 32 | | Json(ErrorResponse { [INFO] [stdout] 33 | | code: 500, [INFO] [stdout] ... | [INFO] [stdout] 41 | | .into_response(); [INFO] [stdout] | |________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 30 ~ ( [INFO] [stdout] 31 + StatusCode::OK, [INFO] [stdout] 32 + Json(ErrorResponse { [INFO] [stdout] 33 + code: 500, [INFO] [stdout] 34 ~ message: "Path 参数解析失败".into(), [INFO] [stdout] 35 + errors: Some(vec![FieldError { [INFO] [stdout] 36 + field: "Path".into(), [INFO] [stdout] 37 + message: e.to_string(), [INFO] [stdout] 38 + }]), [INFO] [stdout] 39 + }), [INFO] [stdout] 40 + ) [INFO] [stdout] 41 ~ .into_response() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/validator/json.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | / return ( [INFO] [stdout] 29 | | StatusCode::OK, [INFO] [stdout] 30 | | Json(ErrorResponse { [INFO] [stdout] 31 | | code: 500, [INFO] [stdout] ... | [INFO] [stdout] 39 | | .into_response(); [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 28 ~ ( [INFO] [stdout] 29 + StatusCode::OK, [INFO] [stdout] 30 + Json(ErrorResponse { [INFO] [stdout] 31 + code: 500, [INFO] [stdout] 32 ~ message: "Json 参数解析失败".into(), [INFO] [stdout] 33 + errors: Some(vec![FieldError { [INFO] [stdout] 34 + field: "Json".into(), [INFO] [stdout] 35 + message: e.to_string(), [INFO] [stdout] 36 + }]), [INFO] [stdout] 37 + }), [INFO] [stdout] 38 + ) [INFO] [stdout] 39 ~ .into_response() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/validator/form.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | / return ( [INFO] [stdout] 29 | | StatusCode::OK, [INFO] [stdout] 30 | | Json(ErrorResponse { [INFO] [stdout] 31 | | code: 500, [INFO] [stdout] ... | [INFO] [stdout] 39 | | .into_response(); [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 28 ~ ( [INFO] [stdout] 29 + StatusCode::OK, [INFO] [stdout] 30 + Json(ErrorResponse { [INFO] [stdout] 31 + code: 500, [INFO] [stdout] 32 ~ message: "Form 参数解析失败".into(), [INFO] [stdout] 33 + errors: Some(vec![FieldError { [INFO] [stdout] 34 + field: "Form".into(), [INFO] [stdout] 35 + message: e.to_string(), [INFO] [stdout] 36 + }]), [INFO] [stdout] 37 + }), [INFO] [stdout] 38 + ) [INFO] [stdout] 39 ~ .into_response() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/validator/query.rs:30:21 [INFO] [stdout] | [INFO] [stdout] 30 | / return ( [INFO] [stdout] 31 | | StatusCode::OK, [INFO] [stdout] 32 | | Json(ErrorResponse { [INFO] [stdout] 33 | | code: 500, [INFO] [stdout] ... | [INFO] [stdout] 41 | | .into_response(); [INFO] [stdout] | |________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 30 ~ ( [INFO] [stdout] 31 + StatusCode::OK, [INFO] [stdout] 32 + Json(ErrorResponse { [INFO] [stdout] 33 + code: 500, [INFO] [stdout] 34 ~ message: "Query 参数解析失败".into(), [INFO] [stdout] 35 + errors: Some(vec![FieldError { [INFO] [stdout] 36 + field: "query".into(), [INFO] [stdout] 37 + message: e.to_string(), [INFO] [stdout] 38 + }]), [INFO] [stdout] 39 + }), [INFO] [stdout] 40 + ) [INFO] [stdout] 41 ~ .into_response() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/validator/path.rs:30:21 [INFO] [stdout] | [INFO] [stdout] 30 | / return ( [INFO] [stdout] 31 | | StatusCode::OK, [INFO] [stdout] 32 | | Json(ErrorResponse { [INFO] [stdout] 33 | | code: 500, [INFO] [stdout] ... | [INFO] [stdout] 41 | | .into_response(); [INFO] [stdout] | |________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 30 ~ ( [INFO] [stdout] 31 + StatusCode::OK, [INFO] [stdout] 32 + Json(ErrorResponse { [INFO] [stdout] 33 + code: 500, [INFO] [stdout] 34 ~ message: "Path 参数解析失败".into(), [INFO] [stdout] 35 + errors: Some(vec![FieldError { [INFO] [stdout] 36 + field: "Path".into(), [INFO] [stdout] 37 + message: e.to_string(), [INFO] [stdout] 38 + }]), [INFO] [stdout] 39 + }), [INFO] [stdout] 40 + ) [INFO] [stdout] 41 ~ .into_response() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/validator/json.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | / return ( [INFO] [stdout] 29 | | StatusCode::OK, [INFO] [stdout] 30 | | Json(ErrorResponse { [INFO] [stdout] 31 | | code: 500, [INFO] [stdout] ... | [INFO] [stdout] 39 | | .into_response(); [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 28 ~ ( [INFO] [stdout] 29 + StatusCode::OK, [INFO] [stdout] 30 + Json(ErrorResponse { [INFO] [stdout] 31 + code: 500, [INFO] [stdout] 32 ~ message: "Json 参数解析失败".into(), [INFO] [stdout] 33 + errors: Some(vec![FieldError { [INFO] [stdout] 34 + field: "Json".into(), [INFO] [stdout] 35 + message: e.to_string(), [INFO] [stdout] 36 + }]), [INFO] [stdout] 37 + }), [INFO] [stdout] 38 + ) [INFO] [stdout] 39 ~ .into_response() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> common/src/validator/form.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | / return ( [INFO] [stdout] 29 | | StatusCode::OK, [INFO] [stdout] 30 | | Json(ErrorResponse { [INFO] [stdout] 31 | | code: 500, [INFO] [stdout] ... | [INFO] [stdout] 39 | | .into_response(); [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 28 ~ ( [INFO] [stdout] 29 + StatusCode::OK, [INFO] [stdout] 30 + Json(ErrorResponse { [INFO] [stdout] 31 + code: 500, [INFO] [stdout] 32 ~ message: "Form 参数解析失败".into(), [INFO] [stdout] 33 + errors: Some(vec![FieldError { [INFO] [stdout] 34 + field: "Form".into(), [INFO] [stdout] 35 + message: e.to_string(), [INFO] [stdout] 36 + }]), [INFO] [stdout] 37 + }), [INFO] [stdout] 38 + ) [INFO] [stdout] 39 ~ .into_response() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking sqlx v0.8.6 [INFO] [stderr] Checking sea-query-sqlx v0.8.0-rc.10 [INFO] [stderr] Checking sea-schema v0.17.0-rc.17 [INFO] [stderr] Checking sea-orm v2.0.0-rc.24 [INFO] [stderr] Checking kernel v0.1.0 (/opt/rustwide/workdir/kernel) [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SchedulerManager` [INFO] [stdout] --> kernel/src/tasks/manager.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / pub fn new() -> Self { [INFO] [stdout] 38 | | Self { [INFO] [stdout] 39 | | scheduler: Arc::new(RwLock::new(None)), [INFO] [stdout] 40 | | } [INFO] [stdout] 41 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 35 + impl Default for SchedulerManager { [INFO] [stdout] 36 + fn default() -> Self { [INFO] [stdout] 37 + Self::new() [INFO] [stdout] 38 + } [INFO] [stdout] 39 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: literal with an empty format string [INFO] [stdout] --> kernel/src/tasks/manager.rs:56:49 [INFO] [stdout] | [INFO] [stdout] 56 | println!("{} cron 定时任务调度器已启动成功!!!", "✅"); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stdout] = note: `#[warn(clippy::print_literal)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 56 - println!("{} cron 定时任务调度器已启动成功!!!", "✅"); [INFO] [stdout] 56 + println!("✅ cron 定时任务调度器已启动成功!!!"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function can be simplified using the `async fn` syntax [INFO] [stdout] --> kernel/src/tasks/manager.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn shutdown_future(&self) -> impl Future + '_ { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_async_fn [INFO] [stdout] = note: `#[warn(clippy::manual_async_fn)]` on by default [INFO] [stdout] help: make the function `async` and return the output of the future directly [INFO] [stdout] | [INFO] [stdout] 93 ~ pub async fn shutdown_future(&self) { [INFO] [stdout] 94 + if let Err(e) = self.shutdown().await { [INFO] [stdout] 95 ~ error!("\n 关闭调度器时出错: {}\n", e); [INFO] [stdout] 96 + } [INFO] [stdout] 97 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> kernel/src/redis_pool/service.rs:116:21 [INFO] [stdout] | [INFO] [stdout] 116 | let result: Vec<(String, Vec<(String, Vec<(String, String)>)>)> = redis::cmd("XREADGROUP") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `pending_info.get(0)` [INFO] [stdout] --> kernel/src/redis_pool/service.rs:204:49 [INFO] [stdout] | [INFO] [stdout] 204 | if let Some(redis::Value::Int(count)) = pending_info.get(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `pending_info.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> kernel/src/redis_pool/service.rs:255:13 [INFO] [stdout] | [INFO] [stdout] 255 | / if item.len() >= 2 { [INFO] [stdout] 256 | | if let (Value::BulkString(id_bytes), Value::BulkString(data_bytes)) = [INFO] [stdout] 257 | | (&item[0], &item[1]) [INFO] [stdout] ... | [INFO] [stdout] 263 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 255 ~ if item.len() >= 2 [INFO] [stdout] 256 ~ && let (Value::BulkString(id_bytes), Value::BulkString(data_bytes)) = [INFO] [stdout] 257 | (&item[0], &item[1]) [INFO] [stdout] ... [INFO] [stdout] 261 | messages.push((message_id, data)); [INFO] [stdout] 262 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SchedulerManager` [INFO] [stdout] --> kernel/src/tasks/manager.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | / pub fn new() -> Self { [INFO] [stdout] 38 | | Self { [INFO] [stdout] 39 | | scheduler: Arc::new(RwLock::new(None)), [INFO] [stdout] 40 | | } [INFO] [stdout] 41 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 35 + impl Default for SchedulerManager { [INFO] [stdout] 36 + fn default() -> Self { [INFO] [stdout] 37 + Self::new() [INFO] [stdout] 38 + } [INFO] [stdout] 39 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: literal with an empty format string [INFO] [stdout] --> kernel/src/tasks/manager.rs:56:49 [INFO] [stdout] | [INFO] [stdout] 56 | println!("{} cron 定时任务调度器已启动成功!!!", "✅"); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stdout] = note: `#[warn(clippy::print_literal)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 56 - println!("{} cron 定时任务调度器已启动成功!!!", "✅"); [INFO] [stdout] 56 + println!("✅ cron 定时任务调度器已启动成功!!!"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function can be simplified using the `async fn` syntax [INFO] [stdout] --> kernel/src/tasks/manager.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn shutdown_future(&self) -> impl Future + '_ { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_async_fn [INFO] [stdout] = note: `#[warn(clippy::manual_async_fn)]` on by default [INFO] [stdout] help: make the function `async` and return the output of the future directly [INFO] [stdout] | [INFO] [stdout] 93 ~ pub async fn shutdown_future(&self) { [INFO] [stdout] 94 + if let Err(e) = self.shutdown().await { [INFO] [stdout] 95 ~ error!("\n 关闭调度器时出错: {}\n", e); [INFO] [stdout] 96 + } [INFO] [stdout] 97 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> kernel/src/redis_pool/service.rs:116:21 [INFO] [stdout] | [INFO] [stdout] 116 | let result: Vec<(String, Vec<(String, Vec<(String, String)>)>)> = redis::cmd("XREADGROUP") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `pending_info.get(0)` [INFO] [stdout] --> kernel/src/redis_pool/service.rs:204:49 [INFO] [stdout] | [INFO] [stdout] 204 | if let Some(redis::Value::Int(count)) = pending_info.get(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `pending_info.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> kernel/src/redis_pool/service.rs:255:13 [INFO] [stdout] | [INFO] [stdout] 255 | / if item.len() >= 2 { [INFO] [stdout] 256 | | if let (Value::BulkString(id_bytes), Value::BulkString(data_bytes)) = [INFO] [stdout] 257 | | (&item[0], &item[1]) [INFO] [stdout] ... | [INFO] [stdout] 263 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 255 ~ if item.len() >= 2 [INFO] [stdout] 256 ~ && let (Value::BulkString(id_bytes), Value::BulkString(data_bytes)) = [INFO] [stdout] 257 | (&item[0], &item[1]) [INFO] [stdout] ... [INFO] [stdout] 261 | messages.push((message_id, data)); [INFO] [stdout] 262 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking app v0.1.0 (/opt/rustwide/workdir/app) [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ConnectionManager` [INFO] [stdout] --> app/src/websocket/types.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | / pub fn new() -> Self { [INFO] [stdout] 101 | | Self { [INFO] [stdout] 102 | | connections: Arc::new(RwLock::new(HashMap::new())), [INFO] [stdout] 103 | | } [INFO] [stdout] 104 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 99 + impl Default for ConnectionManager { [INFO] [stdout] 100 + fn default() -> Self { [INFO] [stdout] 101 + Self::new() [INFO] [stdout] 102 + } [INFO] [stdout] 103 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> app/src/websocket/ws.rs:125:17 [INFO] [stdout] | [INFO] [stdout] 125 | / if let Err(e) = handle_client_message(msg, state, client_id).await { [INFO] [stdout] 126 | | if !e.contains("连接关闭") { [INFO] [stdout] 127 | | tracing::warn!("处理消息失败: {}", e); [INFO] [stdout] 128 | | } [INFO] [stdout] 129 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 125 ~ if let Err(e) = handle_client_message(msg, state, client_id).await [INFO] [stdout] 126 ~ && !e.contains("连接关闭") { [INFO] [stdout] 127 | tracing::warn!("处理消息失败: {}", e); [INFO] [stdout] 128 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ConnectionManager` [INFO] [stdout] --> app/src/websocket/types.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | / pub fn new() -> Self { [INFO] [stdout] 101 | | Self { [INFO] [stdout] 102 | | connections: Arc::new(RwLock::new(HashMap::new())), [INFO] [stdout] 103 | | } [INFO] [stdout] 104 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 99 + impl Default for ConnectionManager { [INFO] [stdout] 100 + fn default() -> Self { [INFO] [stdout] 101 + Self::new() [INFO] [stdout] 102 + } [INFO] [stdout] 103 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> app/src/websocket/ws.rs:203:27 [INFO] [stdout] | [INFO] [stdout] 203 | state.send_to(&client_id, private_msg).await [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `client_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> app/src/websocket/ws.rs:125:17 [INFO] [stdout] | [INFO] [stdout] 125 | / if let Err(e) = handle_client_message(msg, state, client_id).await { [INFO] [stdout] 126 | | if !e.contains("连接关闭") { [INFO] [stdout] 127 | | tracing::warn!("处理消息失败: {}", e); [INFO] [stdout] 128 | | } [INFO] [stdout] 129 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 125 ~ if let Err(e) = handle_client_message(msg, state, client_id).await [INFO] [stdout] 126 ~ && !e.contains("连接关闭") { [INFO] [stdout] 127 | tracing::warn!("处理消息失败: {}", e); [INFO] [stdout] 128 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> app/src/websocket/ws.rs:203:27 [INFO] [stdout] | [INFO] [stdout] 203 | state.send_to(&client_id, private_msg).await [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `client_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking database v0.1.0 (/opt/rustwide/workdir/database) [INFO] [stderr] Checking bin v0.1.0 (/opt/rustwide/workdir/bin) [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> bin/src/bootstrap/logger.rs:24:42 [INFO] [stdout] | [INFO] [stdout] 24 | env::set_var("RUST_LOG", &config.log_level.as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `config.log_level.as_str()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> bin/src/bootstrap/mod.rs:97:60 [INFO] [stdout] | [INFO] [stdout] 97 | ... let _send = ws_manager.send_to(&"xiaofeng", "".to_string()).await; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `"xiaofeng"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> bin/src/bootstrap/logger.rs:24:42 [INFO] [stdout] | [INFO] [stdout] 24 | env::set_var("RUST_LOG", &config.log_level.as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `config.log_level.as_str()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> bin/src/bootstrap/mod.rs:97:60 [INFO] [stdout] | [INFO] [stdout] 97 | ... let _send = ws_manager.send_to(&"xiaofeng", "".to_string()).await; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `"xiaofeng"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 32s [INFO] running `Command { std: "docker" "inspect" "749f4e4c90c8c462995b2a82e0ce3e8882a48f27b951385a7dd5c2388099f963", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "749f4e4c90c8c462995b2a82e0ce3e8882a48f27b951385a7dd5c2388099f963", kill_on_drop: false }` [INFO] [stdout] 749f4e4c90c8c462995b2a82e0ce3e8882a48f27b951385a7dd5c2388099f963