[INFO] cloning repository https://github.com/droundy/rust-student-pairs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/droundy/rust-student-pairs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdroundy%2Frust-student-pairs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdroundy%2Frust-student-pairs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 3cf2d96100bdbf38828afd59dba38df1897dcc00 [INFO] linting droundy/rust-student-pairs against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdroundy%2Frust-student-pairs" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/droundy/rust-student-pairs [INFO] finished tweaking git repo https://github.com/droundy/rust-student-pairs [INFO] tweaked toml for git repo https://github.com/droundy/rust-student-pairs written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/droundy/rust-student-pairs 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/droundy/rust-student-pairs 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] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded chunked_transfer v0.3.1 [INFO] [stderr] Downloaded askama v0.8.0 [INFO] [stderr] Downloaded redox_syscall v0.2.4 [INFO] [stderr] Downloaded ascii v0.8.7 [INFO] [stderr] Downloaded const-random v0.1.13 [INFO] [stderr] Downloaded serde_derive v1.0.123 [INFO] [stderr] Downloaded askama_escape v0.2.0 [INFO] [stderr] Downloaded serde_yaml v0.8.16 [INFO] [stderr] Downloaded humansize v1.1.0 [INFO] [stderr] Downloaded tiny_http v0.6.2 [INFO] [stderr] Downloaded const-random-macro v0.1.13 [INFO] [stderr] Downloaded ahash v0.3.8 [INFO] [stderr] Downloaded internment v0.4.1 [INFO] [stderr] Downloaded multipart v0.15.4 [INFO] [stderr] Downloaded memorable-wordlist v0.1.7 [INFO] [stderr] Downloaded gzip-header v0.3.0 [INFO] [stderr] Downloaded serde_json v1.0.62 [INFO] [stderr] Downloaded dashmap v3.11.10 [INFO] [stderr] Downloaded rouille v3.0.0 [INFO] [stderr] Downloaded libc v0.2.86 [INFO] [stderr] Downloaded askama_shared v0.8.0 [INFO] [stderr] Downloaded askama_derive v0.8.0 [INFO] [stderr] Downloaded syn v1.0.60 [INFO] [stderr] Downloaded serde v1.0.123 [INFO] [stderr] Downloaded tinyset v0.4.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 10482956fbffe9a01f5da80b42394fbed2488030099c2fac302331ddaac31050 [INFO] running `Command { std: "docker" "start" "-a" "10482956fbffe9a01f5da80b42394fbed2488030099c2fac302331ddaac31050", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "10482956fbffe9a01f5da80b42394fbed2488030099c2fac302331ddaac31050", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "10482956fbffe9a01f5da80b42394fbed2488030099c2fac302331ddaac31050", kill_on_drop: false }` [INFO] [stdout] 10482956fbffe9a01f5da80b42394fbed2488030099c2fac302331ddaac31050 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] dcb0b0d2ddb1f9fb0067b76cbae6ad739e0c998a9aa51fd43a3151ae1cf54ca2 [INFO] running `Command { std: "docker" "start" "-a" "dcb0b0d2ddb1f9fb0067b76cbae6ad739e0c998a9aa51fd43a3151ae1cf54ca2", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Compiling libc v0.2.86 [INFO] [stderr] Compiling serde v1.0.123 [INFO] [stderr] Compiling syn v1.0.60 [INFO] [stderr] Compiling rand_core v0.3.1 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling serde_derive v1.0.123 [INFO] [stderr] Compiling quote v1.0.8 [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Checking unicase v1.4.2 [INFO] [stderr] Checking tinyvec v1.1.1 [INFO] [stderr] Compiling phf v0.7.24 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling cc v1.0.66 [INFO] [stderr] Compiling crc32fast v1.2.1 [INFO] [stderr] Compiling rand_xorshift v0.1.1 [INFO] [stderr] Compiling rand_hc v0.1.0 [INFO] [stderr] Compiling rand_isaac v0.1.1 [INFO] [stderr] Checking siphasher v0.2.3 [INFO] [stderr] Checking log v0.3.9 [INFO] [stderr] Checking phf_shared v0.7.24 [INFO] [stderr] Compiling nom v4.2.3 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling httparse v1.3.5 [INFO] [stderr] Checking byteorder v1.4.2 [INFO] [stderr] Checking safemem v0.3.3 [INFO] [stderr] Checking mime v0.2.6 [INFO] [stderr] Compiling serde_json v1.0.62 [INFO] [stderr] Compiling humansize v1.1.0 [INFO] [stderr] Compiling askama_escape v0.2.0 [INFO] [stderr] Checking getrandom v0.1.16 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking getrandom v0.2.2 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Checking time v0.1.43 [INFO] [stderr] Checking rand_core v0.6.1 [INFO] [stderr] Checking dirs v1.0.5 [INFO] [stderr] Checking gzip-header v0.3.0 [INFO] [stderr] Checking rand_chacha v0.3.0 [INFO] [stderr] Checking buf_redux v0.8.4 [INFO] [stderr] Checking twoway v0.1.8 [INFO] [stderr] Compiling rand_os v0.1.3 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking chunked_transfer v0.3.1 [INFO] [stderr] Compiling quote v0.6.13 [INFO] [stderr] Checking ahash v0.4.7 [INFO] [stderr] Checking tempdir v0.3.7 [INFO] [stderr] Checking unicode-normalization v0.1.16 [INFO] [stderr] Checking linked-hash-map v0.5.4 [INFO] [stderr] Compiling brotli-sys v0.3.2 [INFO] [stderr] Checking itoa v0.4.7 [INFO] [stderr] Compiling const-random-macro v0.1.13 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking ascii v0.8.7 [INFO] [stderr] Checking yaml-rust v0.4.5 [INFO] [stderr] Checking state v0.4.2 [INFO] [stderr] Checking hashbrown v0.9.1 [INFO] [stderr] Checking deflate v0.7.20 [INFO] [stderr] Checking rand v0.8.3 [INFO] [stderr] Checking const-random v0.1.13 [INFO] [stderr] Checking term v0.5.2 [INFO] [stderr] Checking rand v0.5.6 [INFO] [stderr] Checking ahash v0.3.8 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Checking base64 v0.9.3 [INFO] [stderr] Checking idna v0.1.5 [INFO] [stderr] Checking dashmap v3.11.10 [INFO] [stderr] Checking threadpool v1.8.1 [INFO] [stderr] Checking filetime v0.2.14 [INFO] [stderr] Checking sha1 v0.6.0 [INFO] [stderr] Checking dtoa v0.4.7 [INFO] [stderr] Checking once_cell v1.5.2 [INFO] [stderr] Checking tinyset v0.4.4 [INFO] [stderr] Checking memorable-wordlist v0.1.7 [INFO] [stderr] Compiling phf_generator v0.7.24 [INFO] [stderr] Checking tempfile v3.2.0 [INFO] [stderr] Compiling phf_codegen v0.7.24 [INFO] [stderr] Compiling mime_guess v1.8.8 [INFO] [stderr] Checking url v1.7.2 [INFO] [stderr] Checking tiny_http v0.6.2 [INFO] [stderr] Checking multipart v0.15.4 [INFO] [stderr] Checking toml v0.4.10 [INFO] [stderr] Checking serde_yaml v0.8.16 [INFO] [stderr] Checking internment v0.4.1 [INFO] [stderr] Compiling askama_shared v0.8.0 [INFO] [stderr] Compiling askama_derive v0.8.0 [INFO] [stderr] Checking askama v0.8.0 [INFO] [stderr] Checking brotli2 v0.3.2 [INFO] [stderr] Checking rouille v3.0.0 [INFO] [stderr] Checking rust-student-pairs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/atomicfile.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | dir: dir, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/atomicfile.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | file: file, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `file` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/database.rs:677:21 [INFO] [stdout] | [INFO] [stdout] 677 | day: day, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `day` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/database.rs:679:21 [INFO] [stdout] | [INFO] [stdout] 679 | current_pairing: current_pairing, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `current_pairing` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/database.rs:683:21 [INFO] [stdout] | [INFO] [stdout] 683 | previous_team: previous_team, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `previous_team` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/database.rs:813:29 [INFO] [stdout] | [INFO] [stdout] 813 | ... primary: primary, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `primary` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/database.rs:815:29 [INFO] [stdout] | [INFO] [stdout] 815 | ... team: team, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `team` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/database.rs:816:29 [INFO] [stdout] | [INFO] [stdout] 816 | ... section: section, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `section` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:125:23 [INFO] [stdout] | [INFO] [stdout] 125 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 126 | | id: usize, [INFO] [stdout] 127 | | name: String, [INFO] [stdout] 128 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:125:23 [INFO] [stdout] | [INFO] [stdout] 125 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 126 | | id: usize, [INFO] [stdout] 127 | | name: String, [INFO] [stdout] 128 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:160:21 [INFO] [stdout] | [INFO] [stdout] 160 | today: today, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `today` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:174:23 [INFO] [stdout] | [INFO] [stdout] 174 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 175 | | team: String, [INFO] [stdout] 176 | | section: String, [INFO] [stdout] 177 | | student: String, [INFO] [stdout] 178 | | action: String, [INFO] [stdout] 179 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:174:23 [INFO] [stdout] | [INFO] [stdout] 174 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 175 | | team: String, [INFO] [stdout] 176 | | section: String, [INFO] [stdout] 177 | | student: String, [INFO] [stdout] 178 | | action: String, [INFO] [stdout] 179 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:222:21 [INFO] [stdout] | [INFO] [stdout] 222 | today: today, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `today` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:235:21 [INFO] [stdout] | [INFO] [stdout] 235 | today: today, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `today` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:251:21 [INFO] [stdout] | [INFO] [stdout] 251 | today: today, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `today` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:267:23 [INFO] [stdout] | [INFO] [stdout] 267 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 268 | | team: String, [INFO] [stdout] 269 | | section: String, [INFO] [stdout] 270 | | primary: String, [INFO] [stdout] 271 | | secondary: String, [INFO] [stdout] 272 | | action: String, [INFO] [stdout] 273 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:267:23 [INFO] [stdout] | [INFO] [stdout] 267 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 268 | | team: String, [INFO] [stdout] 269 | | section: String, [INFO] [stdout] 270 | | primary: String, [INFO] [stdout] 271 | | secondary: String, [INFO] [stdout] 272 | | action: String, [INFO] [stdout] 273 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/atomicfile.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | dir: dir, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/atomicfile.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | file: file, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `file` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:320:21 [INFO] [stdout] | [INFO] [stdout] 320 | today: today, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `today` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:340:23 [INFO] [stdout] | [INFO] [stdout] 340 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 341 | | section: String, [INFO] [stdout] 342 | | oldname: String, [INFO] [stdout] 343 | | newname: String, [INFO] [stdout] 344 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:340:23 [INFO] [stdout] | [INFO] [stdout] 340 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 341 | | section: String, [INFO] [stdout] 342 | | oldname: String, [INFO] [stdout] 343 | | newname: String, [INFO] [stdout] 344 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:366:21 [INFO] [stdout] | [INFO] [stdout] 366 | focus_section: focus_section, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `focus_section` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:381:23 [INFO] [stdout] | [INFO] [stdout] 381 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 382 | | oldname: String, [INFO] [stdout] 383 | | newname: String, [INFO] [stdout] 384 | | newzoom: String, [INFO] [stdout] 385 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:381:23 [INFO] [stdout] | [INFO] [stdout] 381 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 382 | | oldname: String, [INFO] [stdout] 383 | | newname: String, [INFO] [stdout] 384 | | newzoom: String, [INFO] [stdout] 385 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:423:23 [INFO] [stdout] | [INFO] [stdout] 423 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 424 | | oldname: String, [INFO] [stdout] 425 | | newname: String, [INFO] [stdout] 426 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:423:23 [INFO] [stdout] | [INFO] [stdout] 423 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 424 | | oldname: String, [INFO] [stdout] 425 | | newname: String, [INFO] [stdout] 426 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/database.rs:677:21 [INFO] [stdout] | [INFO] [stdout] 677 | day: day, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `day` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/database.rs:679:21 [INFO] [stdout] | [INFO] [stdout] 679 | current_pairing: current_pairing, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `current_pairing` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/database.rs:683:21 [INFO] [stdout] | [INFO] [stdout] 683 | previous_team: previous_team, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `previous_team` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/database.rs:813:29 [INFO] [stdout] | [INFO] [stdout] 813 | ... primary: primary, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `primary` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/database.rs:815:29 [INFO] [stdout] | [INFO] [stdout] 815 | ... team: team, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `team` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/database.rs:816:29 [INFO] [stdout] | [INFO] [stdout] 816 | ... section: section, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `section` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:125:23 [INFO] [stdout] | [INFO] [stdout] 125 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 126 | | id: usize, [INFO] [stdout] 127 | | name: String, [INFO] [stdout] 128 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:125:23 [INFO] [stdout] | [INFO] [stdout] 125 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 126 | | id: usize, [INFO] [stdout] 127 | | name: String, [INFO] [stdout] 128 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:160:21 [INFO] [stdout] | [INFO] [stdout] 160 | today: today, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `today` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:174:23 [INFO] [stdout] | [INFO] [stdout] 174 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 175 | | team: String, [INFO] [stdout] 176 | | section: String, [INFO] [stdout] 177 | | student: String, [INFO] [stdout] 178 | | action: String, [INFO] [stdout] 179 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:174:23 [INFO] [stdout] | [INFO] [stdout] 174 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 175 | | team: String, [INFO] [stdout] 176 | | section: String, [INFO] [stdout] 177 | | student: String, [INFO] [stdout] 178 | | action: String, [INFO] [stdout] 179 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:222:21 [INFO] [stdout] | [INFO] [stdout] 222 | today: today, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `today` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:235:21 [INFO] [stdout] | [INFO] [stdout] 235 | today: today, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `today` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:251:21 [INFO] [stdout] | [INFO] [stdout] 251 | today: today, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `today` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:267:23 [INFO] [stdout] | [INFO] [stdout] 267 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 268 | | team: String, [INFO] [stdout] 269 | | section: String, [INFO] [stdout] 270 | | primary: String, [INFO] [stdout] 271 | | secondary: String, [INFO] [stdout] 272 | | action: String, [INFO] [stdout] 273 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:267:23 [INFO] [stdout] | [INFO] [stdout] 267 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 268 | | team: String, [INFO] [stdout] 269 | | section: String, [INFO] [stdout] 270 | | primary: String, [INFO] [stdout] 271 | | secondary: String, [INFO] [stdout] 272 | | action: String, [INFO] [stdout] 273 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:320:21 [INFO] [stdout] | [INFO] [stdout] 320 | today: today, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `today` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:340:23 [INFO] [stdout] | [INFO] [stdout] 340 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 341 | | section: String, [INFO] [stdout] 342 | | oldname: String, [INFO] [stdout] 343 | | newname: String, [INFO] [stdout] 344 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:340:23 [INFO] [stdout] | [INFO] [stdout] 340 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 341 | | section: String, [INFO] [stdout] 342 | | oldname: String, [INFO] [stdout] 343 | | newname: String, [INFO] [stdout] 344 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/main.rs:366:21 [INFO] [stdout] | [INFO] [stdout] 366 | focus_section: focus_section, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `focus_section` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:381:23 [INFO] [stdout] | [INFO] [stdout] 381 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 382 | | oldname: String, [INFO] [stdout] 383 | | newname: String, [INFO] [stdout] 384 | | newzoom: String, [INFO] [stdout] 385 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:381:23 [INFO] [stdout] | [INFO] [stdout] 381 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 382 | | oldname: String, [INFO] [stdout] 383 | | newname: String, [INFO] [stdout] 384 | | newzoom: String, [INFO] [stdout] 385 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:423:23 [INFO] [stdout] | [INFO] [stdout] 423 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 424 | | oldname: String, [INFO] [stdout] 425 | | newname: String, [INFO] [stdout] 426 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:423:23 [INFO] [stdout] | [INFO] [stdout] 423 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 424 | | oldname: String, [INFO] [stdout] 425 | | newname: String, [INFO] [stdout] 426 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NewStudent` is never constructed [INFO] [stdout] --> src/main.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 89 | struct NewStudent { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `am_odd` is never read [INFO] [stdout] --> src/database.rs:1084:13 [INFO] [stdout] | [INFO] [stdout] 1081 | struct Iter<'a, I> { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 1084 | pub am_odd: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/atomicfile.rs:24:28 [INFO] [stdout] | [INFO] [stdout] 24 | return Err(Error::new(ErrorKind::Other, [INFO] [stdout] | ____________________________^ [INFO] [stdout] 25 | | format!("Cannot create a file named {:?}", [INFO] [stdout] 26 | | filepath))); [INFO] [stdout] | |________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 24 - return Err(Error::new(ErrorKind::Other, [INFO] [stdout] 25 - format!("Cannot create a file named {:?}", [INFO] [stdout] 24 + return Err(Error::other(format!("Cannot create a file named {:?}", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/atomicfile.rs:28:24 [INFO] [stdout] | [INFO] [stdout] 28 | Some(p) if p.as_os_str().len() == 0 => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `p.as_os_str().is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/atomicfile.rs:29:17 [INFO] [stdout] | [INFO] [stdout] 29 | &Path::new(".") [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `Path::new(".")` [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 following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/atomicfile.rs:44:6 [INFO] [stdout] | [INFO] [stdout] 44 | impl<'a> Write for &'a AtomicFile { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 44 - impl<'a> Write for &'a AtomicFile { [INFO] [stdout] 44 + impl Write for &AtomicFile { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/database.rs:47:32 [INFO] [stdout] | [INFO] [stdout] 47 | usize::from_str(s).map(|x| Day::from(x)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Day::from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/database.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 70 | let clean = self.id.replace(&[' ', '-'][..], ""); [INFO] [stdout] | ------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 71 | clean [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 70 ~ [INFO] [stdout] 71 ~ self.id.replace(&[' ', '-'][..], "") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let .. else` expression looks like `matches!` macro [INFO] [stdout] --> src/database.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | / if let Pairing::Pair { .. } = *self { [INFO] [stdout] 117 | | true [INFO] [stdout] 118 | | } else { [INFO] [stdout] 119 | | false [INFO] [stdout] 120 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 116 - if let Pairing::Pair { .. } = *self { [INFO] [stdout] 117 - true [INFO] [stdout] 118 - } else { [INFO] [stdout] 119 - false [INFO] [stdout] 120 - } [INFO] [stdout] 116 + matches!(*self, Pairing::Pair { .. }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/database.rs:223:9 [INFO] [stdout] | [INFO] [stdout] 223 | return &self.days[day.id]; [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] 223 - return &self.days[day.id]; [INFO] [stdout] 223 + &self.days[day.id] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/database.rs:245:27 [INFO] [stdout] | [INFO] [stdout] 245 | if let Some(s2) = options.iter().cloned() [INFO] [stdout] | ___________________________^ [INFO] [stdout] 246 | | .filter(|&s2| self.nonrepeat_partners_for_day(day, s1, s2)) [INFO] [stdout] 247 | | .next() [INFO] [stdout] | |___________________^ help: try: `options.iter().cloned().find(|&s2| self.nonrepeat_partners_for_day(day, s1, s2))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] = note: `#[warn(clippy::filter_next)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `cloned` [INFO] [stdout] --> src/database.rs:261:18 [INFO] [stdout] | [INFO] [stdout] 261 | for p in self.days[day.id].iter().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] help: remove any references to the binding [INFO] [stdout] | [INFO] [stdout] 261 - for p in self.days[day.id].iter().cloned() { [INFO] [stdout] 261 + for p in self.days[day.id].iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/database.rs:285:61 [INFO] [stdout] | [INFO] [stdout] 285 | self.days[day.id].extend(pairings.iter().filter(|p| !p.team().is_some()).cloned()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `p.team().is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/database.rs:289:73 [INFO] [stdout] | [INFO] [stdout] 289 | for (p, section) in split_evenly(&pairings, sections.len()).zip(sections.into_iter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 289 - for (p, section) in split_evenly(&pairings, sections.len()).zip(sections.into_iter()) { [INFO] [stdout] 289 + for (p, section) in split_evenly(&pairings, sections.len()).zip(sections) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/database.rs:337:52 [INFO] [stdout] | [INFO] [stdout] 337 | self.days[day.id] = absent.into_iter().map(|s| Pairing::Absent(s)).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Pairing::Absent` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/database.rs:360:37 [INFO] [stdout] | [INFO] [stdout] 360 | while students.len() > 1 && possible_teams.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!possible_teams.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/database.rs:384:37 [INFO] [stdout] | [INFO] [stdout] 384 | while students.len() > 1 && possible_teams.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!possible_teams.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/database.rs:438:37 [INFO] [stdout] | [INFO] [stdout] 438 | while students.len() > 1 && possible_teams.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!possible_teams.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `cloned` [INFO] [stdout] --> src/database.rs:472:18 [INFO] [stdout] | [INFO] [stdout] 472 | for p in last_week_pairs.iter().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] help: remove any references to the binding [INFO] [stdout] | [INFO] [stdout] 472 - for p in last_week_pairs.iter().cloned() { [INFO] [stdout] 472 + for p in last_week_pairs.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/database.rs:526:37 [INFO] [stdout] | [INFO] [stdout] 526 | while students.len() > 1 && possible_teams.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!possible_teams.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NewStudent` is never constructed [INFO] [stdout] --> src/main.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 89 | struct NewStudent { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `am_odd` is never read [INFO] [stdout] --> src/database.rs:1084:13 [INFO] [stdout] | [INFO] [stdout] 1081 | struct Iter<'a, I> { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 1084 | pub am_odd: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/atomicfile.rs:24:28 [INFO] [stdout] | [INFO] [stdout] 24 | return Err(Error::new(ErrorKind::Other, [INFO] [stdout] | ____________________________^ [INFO] [stdout] 25 | | format!("Cannot create a file named {:?}", [INFO] [stdout] 26 | | filepath))); [INFO] [stdout] | |________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 24 - return Err(Error::new(ErrorKind::Other, [INFO] [stdout] 25 - format!("Cannot create a file named {:?}", [INFO] [stdout] 24 + return Err(Error::other(format!("Cannot create a file named {:?}", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/atomicfile.rs:28:24 [INFO] [stdout] | [INFO] [stdout] 28 | Some(p) if p.as_os_str().len() == 0 => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `p.as_os_str().is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/atomicfile.rs:29:17 [INFO] [stdout] | [INFO] [stdout] 29 | &Path::new(".") [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `Path::new(".")` [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 following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/atomicfile.rs:44:6 [INFO] [stdout] | [INFO] [stdout] 44 | impl<'a> Write for &'a AtomicFile { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 44 - impl<'a> Write for &'a AtomicFile { [INFO] [stdout] 44 + impl Write for &AtomicFile { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/database.rs:686:24 [INFO] [stdout] | [INFO] [stdout] 686 | if pairings.iter() [INFO] [stdout] | ________________________^ [INFO] [stdout] 687 | | .filter(|p| p.team() == Some(*t)) [INFO] [stdout] 688 | | .filter(|p| !p.has(s)) [INFO] [stdout] 689 | | .filter(|p| p.full_pair() || (p.section().is_some() [INFO] [stdout] 690 | | && opt.current_section().is_some() [INFO] [stdout] 691 | | && p.section() != opt.current_section())) [INFO] [stdout] 692 | | .next().is_none() [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Student` which implements the `Copy` trait [INFO] [stdout] --> src/database.rs:715:52 [INFO] [stdout] | [INFO] [stdout] 715 | .any(|p| *p == Pairing::Absent((*s).clone()))) [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*(*s)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/database.rs:769:9 [INFO] [stdout] | [INFO] [stdout] 769 | / match self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stdout] 770 | | Some(Pairing::Pair{ primary, secondary, team, section }) => { [INFO] [stdout] 771 | | if primary != student { [INFO] [stdout] 772 | | newpairings.insert(Pairing::Solo { [INFO] [stdout] ... | [INFO] [stdout] 785 | | _ => (), [INFO] [stdout] 786 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 769 ~ if let Some(Pairing::Pair{ primary, secondary, team, section }) = self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stdout] 770 + if primary != student { [INFO] [stdout] 771 + newpairings.insert(Pairing::Solo { [INFO] [stdout] 772 + student: primary, [INFO] [stdout] 773 + team, [INFO] [stdout] 774 + section [INFO] [stdout] 775 + }); [INFO] [stdout] 776 + } else { [INFO] [stdout] 777 + newpairings.insert(Pairing::Solo { [INFO] [stdout] 778 + student: secondary, [INFO] [stdout] 779 + team, [INFO] [stdout] 780 + section [INFO] [stdout] 781 + }); [INFO] [stdout] 782 + } [INFO] [stdout] 783 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/database.rs:769:15 [INFO] [stdout] | [INFO] [stdout] 769 | match self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.days[day.id].iter().cloned().find(|p| p.has(student))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/database.rs:47:32 [INFO] [stdout] | [INFO] [stdout] 47 | usize::from_str(s).map(|x| Day::from(x)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Day::from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/database.rs:803:19 [INFO] [stdout] | [INFO] [stdout] 803 | match self.days[day.id].iter().cloned().filter(|p| p.team() == Some(team)).next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.days[day.id].iter().cloned().find(|p| p.team() == Some(team))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/database.rs:828:29 [INFO] [stdout] | [INFO] [stdout] 828 | let section = match self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.days[day.id].iter().cloned().find(|p| p.has(student))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/database.rs:839:15 [INFO] [stdout] | [INFO] [stdout] 839 | match self.days[day.id].iter().cloned().filter(|p| p.team() == Some(team)).next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.days[day.id].iter().cloned().find(|p| p.team() == Some(team))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Section` which implements the `Copy` trait [INFO] [stdout] --> src/database.rs:892:66 [INFO] [stdout] | [INFO] [stdout] 892 | let mut list: Vec<_> = self.sections.iter().map(|(a,b)| (a.clone(), b.clone())).collect(); [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*a` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Zoom` which implements the `Copy` trait [INFO] [stdout] --> src/database.rs:892:77 [INFO] [stdout] | [INFO] [stdout] 892 | let mut list: Vec<_> = self.sections.iter().map(|(a,b)| (a.clone(), b.clone())).collect(); [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/database.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 70 | let clean = self.id.replace(&[' ', '-'][..], ""); [INFO] [stdout] | ------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 71 | clean [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 70 ~ [INFO] [stdout] 71 ~ self.id.replace(&[' ', '-'][..], "") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/database.rs:1043:38 [INFO] [stdout] | [INFO] [stdout] 1043 | if let Some((_, tags)) = self.possibilities.iter().cloned() [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 1044 | | .filter(|(o,_)| o.clone() == c.clone()).next() [INFO] [stdout] | |______________________________________________________________^ help: try: `self.possibilities.iter().cloned().find(|(o,_)| o.clone() == c.clone())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessarily eager cloning of iterator items [INFO] [stdout] --> src/database.rs:1043:38 [INFO] [stdout] | [INFO] [stdout] 1043 | if let Some((_, tags)) = self.possibilities.iter().cloned() [INFO] [stdout] | ______________________________________^ - [INFO] [stdout] | |_______________________________________________________________| [INFO] [stdout] 1044 | || .filter(|(o,_)| o.clone() == c.clone()).next() [INFO] [stdout] | ||_______________________________________________________^ help: try: `.filter(|&(o,_)| o.clone() == c.clone()).cloned()` [INFO] [stdout] | |_______________________________________________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_overeager_cloned [INFO] [stdout] = note: `#[warn(clippy::iter_overeager_cloned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let .. else` expression looks like `matches!` macro [INFO] [stdout] --> src/database.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | / if let Pairing::Pair { .. } = *self { [INFO] [stdout] 117 | | true [INFO] [stdout] 118 | | } else { [INFO] [stdout] 119 | | false [INFO] [stdout] 120 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 116 - if let Pairing::Pair { .. } = *self { [INFO] [stdout] 117 - true [INFO] [stdout] 118 - } else { [INFO] [stdout] 119 - false [INFO] [stdout] 120 - } [INFO] [stdout] 116 + matches!(*self, Pairing::Pair { .. }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/database.rs:1089:16 [INFO] [stdout] | [INFO] [stdout] 1089 | if self.slice.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.slice.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/database.rs:223:9 [INFO] [stdout] | [INFO] [stdout] 223 | return &self.days[day.id]; [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] 223 - return &self.days[day.id]; [INFO] [stdout] 223 + &self.days[day.id] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/database.rs:245:27 [INFO] [stdout] | [INFO] [stdout] 245 | if let Some(s2) = options.iter().cloned() [INFO] [stdout] | ___________________________^ [INFO] [stdout] 246 | | .filter(|&s2| self.nonrepeat_partners_for_day(day, s1, s2)) [INFO] [stdout] 247 | | .next() [INFO] [stdout] | |___________________^ help: try: `options.iter().cloned().find(|&s2| self.nonrepeat_partners_for_day(day, s1, s2))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] = note: `#[warn(clippy::filter_next)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `cloned` [INFO] [stdout] --> src/database.rs:261:18 [INFO] [stdout] | [INFO] [stdout] 261 | for p in self.days[day.id].iter().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] help: remove any references to the binding [INFO] [stdout] | [INFO] [stdout] 261 - for p in self.days[day.id].iter().cloned() { [INFO] [stdout] 261 + for p in self.days[day.id].iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/database.rs:285:61 [INFO] [stdout] | [INFO] [stdout] 285 | self.days[day.id].extend(pairings.iter().filter(|p| !p.team().is_some()).cloned()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `p.team().is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/database.rs:289:73 [INFO] [stdout] | [INFO] [stdout] 289 | for (p, section) in split_evenly(&pairings, sections.len()).zip(sections.into_iter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 289 - for (p, section) in split_evenly(&pairings, sections.len()).zip(sections.into_iter()) { [INFO] [stdout] 289 + for (p, section) in split_evenly(&pairings, sections.len()).zip(sections) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/database.rs:337:52 [INFO] [stdout] | [INFO] [stdout] 337 | self.days[day.id] = absent.into_iter().map(|s| Pairing::Absent(s)).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Pairing::Absent` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/database.rs:360:37 [INFO] [stdout] | [INFO] [stdout] 360 | while students.len() > 1 && possible_teams.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!possible_teams.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/database.rs:384:37 [INFO] [stdout] | [INFO] [stdout] 384 | while students.len() > 1 && possible_teams.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!possible_teams.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/database.rs:438:37 [INFO] [stdout] | [INFO] [stdout] 438 | while students.len() > 1 && possible_teams.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!possible_teams.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `cloned` [INFO] [stdout] --> src/database.rs:472:18 [INFO] [stdout] | [INFO] [stdout] 472 | for p in last_week_pairs.iter().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] help: remove any references to the binding [INFO] [stdout] | [INFO] [stdout] 472 - for p in last_week_pairs.iter().cloned() { [INFO] [stdout] 472 + for p in last_week_pairs.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/database.rs:526:37 [INFO] [stdout] | [INFO] [stdout] 526 | while students.len() > 1 && possible_teams.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!possible_teams.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/database.rs:686:24 [INFO] [stdout] | [INFO] [stdout] 686 | if pairings.iter() [INFO] [stdout] | ________________________^ [INFO] [stdout] 687 | | .filter(|p| p.team() == Some(*t)) [INFO] [stdout] 688 | | .filter(|p| !p.has(s)) [INFO] [stdout] 689 | | .filter(|p| p.full_pair() || (p.section().is_some() [INFO] [stdout] 690 | | && opt.current_section().is_some() [INFO] [stdout] 691 | | && p.section() != opt.current_section())) [INFO] [stdout] 692 | | .next().is_none() [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Student` which implements the `Copy` trait [INFO] [stdout] --> src/database.rs:715:52 [INFO] [stdout] | [INFO] [stdout] 715 | .any(|p| *p == Pairing::Absent((*s).clone()))) [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*(*s)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/database.rs:769:9 [INFO] [stdout] | [INFO] [stdout] 769 | / match self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stdout] 770 | | Some(Pairing::Pair{ primary, secondary, team, section }) => { [INFO] [stdout] 771 | | if primary != student { [INFO] [stdout] 772 | | newpairings.insert(Pairing::Solo { [INFO] [stdout] ... | [INFO] [stdout] 785 | | _ => (), [INFO] [stdout] 786 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 769 ~ if let Some(Pairing::Pair{ primary, secondary, team, section }) = self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stdout] 770 + if primary != student { [INFO] [stdout] 771 + newpairings.insert(Pairing::Solo { [INFO] [stdout] 772 + student: primary, [INFO] [stdout] 773 + team, [INFO] [stdout] 774 + section [INFO] [stdout] 775 + }); [INFO] [stdout] 776 + } else { [INFO] [stdout] 777 + newpairings.insert(Pairing::Solo { [INFO] [stdout] 778 + student: secondary, [INFO] [stdout] 779 + team, [INFO] [stdout] 780 + section [INFO] [stdout] 781 + }); [INFO] [stdout] 782 + } [INFO] [stdout] 783 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/database.rs:769:15 [INFO] [stdout] | [INFO] [stdout] 769 | match self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.days[day.id].iter().cloned().find(|p| p.has(student))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/database.rs:803:19 [INFO] [stdout] | [INFO] [stdout] 803 | match self.days[day.id].iter().cloned().filter(|p| p.team() == Some(team)).next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.days[day.id].iter().cloned().find(|p| p.team() == Some(team))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/database.rs:828:29 [INFO] [stdout] | [INFO] [stdout] 828 | let section = match self.days[day.id].iter().cloned().filter(|p| p.has(student)).next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.days[day.id].iter().cloned().find(|p| p.has(student))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/database.rs:839:15 [INFO] [stdout] | [INFO] [stdout] 839 | match self.days[day.id].iter().cloned().filter(|p| p.team() == Some(team)).next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.days[day.id].iter().cloned().find(|p| p.team() == Some(team))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Section` which implements the `Copy` trait [INFO] [stdout] --> src/database.rs:892:66 [INFO] [stdout] | [INFO] [stdout] 892 | let mut list: Vec<_> = self.sections.iter().map(|(a,b)| (a.clone(), b.clone())).collect(); [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*a` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Zoom` which implements the `Copy` trait [INFO] [stdout] --> src/database.rs:892:77 [INFO] [stdout] | [INFO] [stdout] 892 | let mut list: Vec<_> = self.sections.iter().map(|(a,b)| (a.clone(), b.clone())).collect(); [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/main.rs:95:22 [INFO] [stdout] | [INFO] [stdout] 95 | let is_css = router!{ [INFO] [stdout] | ______________________^ [INFO] [stdout] 96 | | request, [INFO] [stdout] 97 | | (GET) ["/pairs/style.css"] => { [INFO] [stdout] 98 | | Some(Response::from_data("text/css", Css.render().unwrap())) [INFO] [stdout] ... | [INFO] [stdout] 102 | | }, [INFO] [stdout] 103 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/database.rs:1043:38 [INFO] [stdout] | [INFO] [stdout] 1043 | if let Some((_, tags)) = self.possibilities.iter().cloned() [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 1044 | | .filter(|(o,_)| o.clone() == c.clone()).next() [INFO] [stdout] | |______________________________________________________________^ help: try: `self.possibilities.iter().cloned().find(|(o,_)| o.clone() == c.clone())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessarily eager cloning of iterator items [INFO] [stdout] --> src/database.rs:1043:38 [INFO] [stdout] | [INFO] [stdout] 1043 | if let Some((_, tags)) = self.possibilities.iter().cloned() [INFO] [stdout] | ______________________________________^ - [INFO] [stdout] | |_______________________________________________________________| [INFO] [stdout] 1044 | || .filter(|(o,_)| o.clone() == c.clone()).next() [INFO] [stdout] | ||_______________________________________________________^ help: try: `.filter(|&(o,_)| o.clone() == c.clone()).cloned()` [INFO] [stdout] | |_______________________________________________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_overeager_cloned [INFO] [stdout] = note: `#[warn(clippy::iter_overeager_cloned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/main.rs:125:23 [INFO] [stdout] | [INFO] [stdout] 125 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 126 | | id: usize, [INFO] [stdout] 127 | | name: String, [INFO] [stdout] 128 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: `#[warn(clippy::mem_replace_option_with_none)]` on by default [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/database.rs:1089:16 [INFO] [stdout] | [INFO] [stdout] 1089 | if self.slice.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.slice.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:133:28 [INFO] [stdout] | [INFO] [stdout] 133 | if input.name != "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!input.name.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/main.rs:174:23 [INFO] [stdout] | [INFO] [stdout] 174 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 175 | | team: String, [INFO] [stdout] 176 | | section: String, [INFO] [stdout] 177 | | student: String, [INFO] [stdout] 178 | | action: String, [INFO] [stdout] 179 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/main.rs:267:23 [INFO] [stdout] | [INFO] [stdout] 267 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 268 | | team: String, [INFO] [stdout] 269 | | section: String, [INFO] [stdout] 270 | | primary: String, [INFO] [stdout] 271 | | secondary: String, [INFO] [stdout] 272 | | action: String, [INFO] [stdout] 273 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:279:32 [INFO] [stdout] | [INFO] [stdout] 279 | ... if input.primary != "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!input.primary.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:284:32 [INFO] [stdout] | [INFO] [stdout] 284 | ... if input.secondary != "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!input.secondary.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/main.rs:95:22 [INFO] [stdout] | [INFO] [stdout] 95 | let is_css = router!{ [INFO] [stdout] | ______________________^ [INFO] [stdout] 96 | | request, [INFO] [stdout] 97 | | (GET) ["/pairs/style.css"] => { [INFO] [stdout] 98 | | Some(Response::from_data("text/css", Css.render().unwrap())) [INFO] [stdout] ... | [INFO] [stdout] 102 | | }, [INFO] [stdout] 103 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/main.rs:340:23 [INFO] [stdout] | [INFO] [stdout] 340 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 341 | | section: String, [INFO] [stdout] 342 | | oldname: String, [INFO] [stdout] 343 | | newname: String, [INFO] [stdout] 344 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:347:28 [INFO] [stdout] | [INFO] [stdout] 347 | if input.oldname == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.oldname.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:350:35 [INFO] [stdout] | [INFO] [stdout] 350 | } else if input.newname == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.newname.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/main.rs:125:23 [INFO] [stdout] | [INFO] [stdout] 125 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 126 | | id: usize, [INFO] [stdout] 127 | | name: String, [INFO] [stdout] 128 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: `#[warn(clippy::mem_replace_option_with_none)]` on by default [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:133:28 [INFO] [stdout] | [INFO] [stdout] 133 | if input.name != "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!input.name.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/main.rs:381:23 [INFO] [stdout] | [INFO] [stdout] 381 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 382 | | oldname: String, [INFO] [stdout] 383 | | newname: String, [INFO] [stdout] 384 | | newzoom: String, [INFO] [stdout] 385 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:389:28 [INFO] [stdout] | [INFO] [stdout] 389 | if input.oldname == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.oldname.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:391:35 [INFO] [stdout] | [INFO] [stdout] 391 | } else if input.newname == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.newname.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/main.rs:174:23 [INFO] [stdout] | [INFO] [stdout] 174 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 175 | | team: String, [INFO] [stdout] 176 | | section: String, [INFO] [stdout] 177 | | student: String, [INFO] [stdout] 178 | | action: String, [INFO] [stdout] 179 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/main.rs:423:23 [INFO] [stdout] | [INFO] [stdout] 423 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 424 | | oldname: String, [INFO] [stdout] 425 | | newname: String, [INFO] [stdout] 426 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:428:28 [INFO] [stdout] | [INFO] [stdout] 428 | if input.oldname == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.oldname.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:430:35 [INFO] [stdout] | [INFO] [stdout] 430 | } else if input.newname == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.newname.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/main.rs:267:23 [INFO] [stdout] | [INFO] [stdout] 267 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 268 | | team: String, [INFO] [stdout] 269 | | section: String, [INFO] [stdout] 270 | | primary: String, [INFO] [stdout] 271 | | secondary: String, [INFO] [stdout] 272 | | action: String, [INFO] [stdout] 273 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:279:32 [INFO] [stdout] | [INFO] [stdout] 279 | ... if input.primary != "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!input.primary.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:284:32 [INFO] [stdout] | [INFO] [stdout] 284 | ... if input.secondary != "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!input.secondary.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/main.rs:340:23 [INFO] [stdout] | [INFO] [stdout] 340 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 341 | | section: String, [INFO] [stdout] 342 | | oldname: String, [INFO] [stdout] 343 | | newname: String, [INFO] [stdout] 344 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:347:28 [INFO] [stdout] | [INFO] [stdout] 347 | if input.oldname == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.oldname.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:350:35 [INFO] [stdout] | [INFO] [stdout] 350 | } else if input.newname == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.newname.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/main.rs:381:23 [INFO] [stdout] | [INFO] [stdout] 381 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 382 | | oldname: String, [INFO] [stdout] 383 | | newname: String, [INFO] [stdout] 384 | | newzoom: String, [INFO] [stdout] 385 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:389:28 [INFO] [stdout] | [INFO] [stdout] 389 | if input.oldname == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.oldname.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:391:35 [INFO] [stdout] | [INFO] [stdout] 391 | } else if input.newname == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.newname.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / router!{ [INFO] [stdout] 108 | | request, [INFO] [stdout] 109 | | (GET) (/) => { [INFO] [stdout] 110 | | rouille::Response::redirect_303(format!("/pairs/{}/", memorable_wordlist::camel_case(44))) [INFO] [stdout] ... | [INFO] [stdout] 451 | | }, [INFO] [stdout] 452 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: this warning originates in the macro `router` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/main.rs:423:23 [INFO] [stdout] | [INFO] [stdout] 423 | match post_input!(request, { [INFO] [stdout] | _______________________^ [INFO] [stdout] 424 | | oldname: String, [INFO] [stdout] 425 | | newname: String, [INFO] [stdout] 426 | | }) { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: this warning originates in the macro `post_input` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:428:28 [INFO] [stdout] | [INFO] [stdout] 428 | if input.oldname == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.oldname.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:430:35 [INFO] [stdout] | [INFO] [stdout] 430 | } else if input.newname == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.newname.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.03s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: buf_redux v0.8.4, multipart v0.15.4, nom v4.2.3 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3` [INFO] running `Command { std: "docker" "inspect" "dcb0b0d2ddb1f9fb0067b76cbae6ad739e0c998a9aa51fd43a3151ae1cf54ca2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dcb0b0d2ddb1f9fb0067b76cbae6ad739e0c998a9aa51fd43a3151ae1cf54ca2", kill_on_drop: false }` [INFO] [stdout] dcb0b0d2ddb1f9fb0067b76cbae6ad739e0c998a9aa51fd43a3151ae1cf54ca2