[INFO] fetching crate dweb 0.13.3... [INFO] linting dweb-0.13.3 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate dweb 0.13.3 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate dweb 0.13.3 [INFO] finished tweaking crates.io crate dweb 0.13.3 [INFO] tweaked toml for crates.io crate dweb 0.13.3 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate dweb 0.13.3 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 crates.io crate dweb 0.13.3 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded data-encoding-macro v0.1.18 [INFO] [stderr] Downloaded data-encoding-macro-internal v0.1.16 [INFO] [stderr] Downloaded port_check v0.2.1 [INFO] [stderr] Downloaded xor_name v5.0.0 [INFO] [stderr] Downloaded prettytable v0.10.0 [INFO] [stderr] Downloaded alloy-hardforks v0.2.11 [INFO] [stderr] Downloaded utoipa v5.4.0 [INFO] [stderr] Downloaded custom_debug_derive v0.6.2 [INFO] [stderr] Downloaded alloy-tx-macros v1.0.38 [INFO] [stderr] Downloaded alloy-sol-macro-input v1.2.1 [INFO] [stderr] Downloaded hex-conservative v0.2.1 [INFO] [stderr] Downloaded file-rotate v0.7.6 [INFO] [stderr] Downloaded alloy-node-bindings v1.0.38 [INFO] [stderr] Downloaded alloy-eip7702 v0.6.1 [INFO] [stderr] Downloaded ant-logging v0.3.0 [INFO] [stderr] Downloaded ant-protocol v1.0.9 [INFO] [stderr] Downloaded blstrs v0.6.2 [INFO] [stderr] Downloaded ant-bootstrap v0.2.12 [INFO] [stderr] Downloaded ruint v1.15.0 [INFO] [stderr] Downloaded bip39 v2.2.0 [INFO] [stderr] Downloaded actix-http v3.11.0 [INFO] [stderr] Downloaded crdts v7.3.2 [INFO] [stderr] Downloaded self_encryption v0.34.3 [INFO] [stderr] Downloaded brotli-decompressor v2.3.5 [INFO] [stderr] Downloaded autonomi v0.7.1 [INFO] [stderr] Downloaded actix-web v4.11.0 [INFO] [stderr] Downloaded webpki-roots v1.0.1 [INFO] [stderr] Downloaded serde_with v3.13.0 [INFO] [stderr] Downloaded alloy-provider v1.0.38 [INFO] [stderr] Downloaded alloy-genesis v1.0.38 [INFO] [stderr] Downloaded alloy-eips v1.0.38 [INFO] [stderr] Downloaded self_encryption v0.30.0 [INFO] [stderr] Downloaded alloy-consensus v1.0.38 [INFO] [stderr] Downloaded blst v0.3.15 [INFO] [stderr] Downloaded alloy-primitives v1.2.1 [INFO] [stderr] Downloaded blsttc v8.0.2 [INFO] [stderr] Downloaded alloy-rpc-types-eth v1.0.38 [INFO] [stderr] Downloaded alloy-sol-types v1.2.1 [INFO] [stderr] Downloaded utoipa-gen v5.4.0 [INFO] [stderr] Downloaded alloy-contract v1.0.38 [INFO] [stderr] Downloaded alloy-dyn-abi v1.2.1 [INFO] [stderr] Downloaded evmlib v0.4.5 [INFO] [stderr] Downloaded libp2p-relay v0.21.0 [INFO] [stderr] Downloaded yamux v0.13.5 [INFO] [stderr] Downloaded alloy-rpc-client v1.0.38 [INFO] [stderr] Downloaded alloy-network v1.0.38 [INFO] [stderr] Downloaded alloy-signer-local v1.0.38 [INFO] [stderr] Downloaded alloy-sol-macro-expander v1.2.1 [INFO] [stderr] Downloaded alloy-json-abi v1.2.1 [INFO] [stderr] Downloaded syn-solidity v1.2.1 [INFO] [stderr] Downloaded alloy-json-rpc v1.0.38 [INFO] [stderr] Downloaded alloy-transport v1.0.38 [INFO] [stderr] Downloaded nybbles v0.4.5 [INFO] [stderr] Downloaded alloy v1.0.38 [INFO] [stderr] Downloaded serde_with_macros v3.13.0 [INFO] [stderr] Downloaded vergen v8.3.2 [INFO] [stderr] Downloaded ant-evm v0.1.17 [INFO] [stderr] Downloaded soketto v0.8.1 [INFO] [stderr] Downloaded libp2p-websocket v0.45.1 [INFO] [stderr] Downloaded alloy-chains v0.2.4 [INFO] [stderr] Downloaded alloy-rpc-types v1.0.38 [INFO] [stderr] Downloaded alloy-sol-type-parser v1.2.1 [INFO] [stderr] Downloaded alloy-sol-macro v1.2.1 [INFO] [stderr] Downloaded alloy-transport-http v1.0.38 [INFO] [stderr] Downloaded alloy-serde v1.0.38 [INFO] [stderr] Downloaded alloy-signer v1.0.38 [INFO] [stderr] Downloaded wasmtimer v0.4.2 [INFO] [stderr] Downloaded const-hex v1.14.1 [INFO] [stderr] Downloaded atomic-write-file v0.2.3 [INFO] [stderr] Downloaded ant-build-info v0.1.29 [INFO] [stderr] Downloaded tonic-build v0.6.2 [INFO] [stderr] Downloaded custom_debug v0.6.2 [INFO] [stderr] Downloaded generator v0.8.5 [INFO] [stderr] Downloaded resolv-conf v0.7.4 [INFO] [stderr] Downloaded alloy-core v1.2.1 [INFO] [stderr] Downloaded alloy-rpc-types-any v1.0.38 [INFO] [stderr] Downloaded alloy-consensus-any v1.0.38 [INFO] [stderr] Downloaded alloy-eip2930 v0.2.1 [INFO] [stderr] Downloaded alloy-network-primitives v1.0.38 [INFO] [stderr] Downloaded exponential-backoff v2.1.0 [INFO] [stderr] Downloaded alloy-rpc-types-anvil v1.0.38 [INFO] [stderr] Downloaded c-kzg v2.1.1 [INFO] [stderr] Downloaded utoipa-swagger-ui-vendored v0.1.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 1b17cbe8f019a0634023d6fb8228801f67b4625706285723da2ad80f001efc5b [INFO] running `Command { std: "docker" "start" "-a" "1b17cbe8f019a0634023d6fb8228801f67b4625706285723da2ad80f001efc5b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1b17cbe8f019a0634023d6fb8228801f67b4625706285723da2ad80f001efc5b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1b17cbe8f019a0634023d6fb8228801f67b4625706285723da2ad80f001efc5b", kill_on_drop: false }` [INFO] [stdout] 1b17cbe8f019a0634023d6fb8228801f67b4625706285723da2ad80f001efc5b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 64771814f51654d16cc1212e2a08eebdccd6cc04c37f9ff9cd4f7b63daf15be6 [INFO] running `Command { std: "docker" "start" "-a" "64771814f51654d16cc1212e2a08eebdccd6cc04c37f9ff9cd4f7b63daf15be6", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.174 [INFO] [stderr] Compiling portable-atomic v1.11.1 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Checking critical-section v1.2.0 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Checking futures-core v0.3.31 [INFO] [stderr] Checking foldhash v0.1.5 [INFO] [stderr] Checking slab v0.4.10 [INFO] [stderr] Checking futures-io v0.3.31 [INFO] [stderr] Checking futures-task v0.3.31 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Compiling crunchy v0.2.4 [INFO] [stderr] Compiling ruint-macro v1.2.1 [INFO] [stderr] Compiling cfg-if v1.0.1 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling itoa v1.0.15 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Compiling semver v1.0.26 [INFO] [stderr] Checking once_cell v1.21.3 [INFO] [stderr] Compiling jobserver v0.1.33 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Compiling cc v1.2.27 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling curve25519-dalek v4.1.3 [INFO] [stderr] Compiling winnow v0.7.11 [INFO] [stderr] Compiling data-encoding v2.9.0 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking signal-hook-registry v1.4.5 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking rand_xorshift v0.3.0 [INFO] [stderr] Checking num_cpus v1.17.0 [INFO] [stderr] Checking ff v0.13.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking getrandom v0.3.3 [INFO] [stderr] Checking core2 v0.4.0 [INFO] [stderr] Checking crc-catalog v2.4.0 [INFO] [stderr] Checking crc v3.3.0 [INFO] [stderr] Compiling rustls v0.23.28 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Checking group v0.13.0 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Checking sync_wrapper v1.0.2 [INFO] [stderr] Checking rand v0.9.1 [INFO] [stderr] Checking openssl-probe v0.1.6 [INFO] [stderr] Checking futures-utils-wasm v0.1.0 [INFO] [stderr] Checking tinyvec v1.9.0 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking iri-string v0.7.8 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Checking tempfile v3.20.0 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling log v0.4.27 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling macro-string v0.1.4 [INFO] [stderr] Compiling syn-solidity v1.2.1 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Checking rusticata-macros v4.1.0 [INFO] [stderr] Checking crossbeam-channel v0.5.15 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zeroize_derive v1.4.2 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Checking zeroize v1.8.1 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking thiserror v2.0.12 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking signature v2.2.0 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Checking der v0.7.10 [INFO] [stderr] Checking crypto-bigint v0.5.5 [INFO] [stderr] Compiling alloy-rlp-derive v0.3.12 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Checking zerovec v0.11.2 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking sec1 v0.7.3 [INFO] [stderr] Checking spki v0.7.3 [INFO] [stderr] Checking rfc6979 v0.4.0 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling curve25519-dalek-derive v0.1.1 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking bytes v1.10.1 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking hashbrown v0.15.4 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking elliptic-curve v0.13.8 [INFO] [stderr] Checking alloy-rlp v0.3.12 [INFO] [stderr] Checking const-hex v1.14.1 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking ruint v1.15.0 [INFO] [stderr] Checking tokio v1.45.1 [INFO] [stderr] Checking ecdsa v0.16.9 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Checking k256 v0.13.4 [INFO] [stderr] Checking http v1.3.1 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Compiling alloy-sol-type-parser v1.2.1 [INFO] [stderr] Checking derive_more v2.0.1 [INFO] [stderr] Compiling alloy-primitives v1.2.1 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking ed25519 v2.2.3 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Checking rustls-pki-types v1.12.0 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Compiling data-encoding-macro-internal v0.1.16 [INFO] [stderr] Compiling auto_impl v1.3.0 [INFO] [stderr] Checking data-encoding-macro v0.1.18 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Checking multihash v0.19.3 [INFO] [stderr] Checking hkdf v0.12.4 [INFO] [stderr] Checking multibase v0.9.1 [INFO] [stderr] Checking indexmap v2.10.0 [INFO] [stderr] Compiling alloy-json-abi v1.2.1 [INFO] [stderr] Checking ed25519-dalek v2.1.1 [INFO] [stderr] Checking multistream-select v0.13.0 [INFO] [stderr] Checking libp2p-identity v0.2.12 [INFO] [stderr] Checking rw-stream-sink v0.4.0 [INFO] [stderr] Checking alloy-eip2124 v0.2.0 [INFO] [stderr] Compiling serde_with_macros v3.13.0 [INFO] [stderr] Checking multiaddr v0.18.2 [INFO] [stderr] Checking rustls-webpki v0.103.3 [INFO] [stderr] Compiling darling_core v0.21.3 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Checking libp2p-core v0.43.1 [INFO] [stderr] Compiling alloy-sol-macro-input v1.2.1 [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking serde_with v3.13.0 [INFO] [stderr] Checking alloy-eip7702 v0.6.1 [INFO] [stderr] Compiling alloy-sol-macro-expander v1.2.1 [INFO] [stderr] Checking alloy-serde v1.0.38 [INFO] [stderr] Checking alloy-eip2930 v0.2.1 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking nybbles v0.4.5 [INFO] [stderr] Checking h2 v0.4.10 [INFO] [stderr] Checking alloy-trie v0.9.1 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Checking webpki-roots v1.0.1 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking lru v0.12.5 [INFO] [stderr] Compiling libp2p-swarm-derive v0.35.1 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking alloy-eips v1.0.38 [INFO] [stderr] Checking netlink-packet-utils v0.5.2 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Checking libp2p-swarm v0.47.0 [INFO] [stderr] Checking tokio-rustls v0.26.2 [INFO] [stderr] Compiling darling_macro v0.21.3 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Compiling darling v0.21.3 [INFO] [stderr] Compiling alloy-tx-macros v1.0.38 [INFO] [stderr] Compiling num_enum_derive v0.7.4 [INFO] [stderr] Compiling strum_macros v0.27.1 [INFO] [stderr] Checking netlink-packet-core v0.7.0 [INFO] [stderr] Checking tower-http v0.6.6 [INFO] [stderr] Checking alloy-signer v1.0.38 [INFO] [stderr] Checking asynchronous-codec v0.7.0 [INFO] [stderr] Compiling asn1-rs-derive v0.6.0 [INFO] [stderr] Checking num_enum v0.7.4 [INFO] [stderr] Compiling asn1-rs-impl v0.2.0 [INFO] [stderr] Compiling alloy-sol-macro v1.2.1 [INFO] [stderr] Checking netlink-sys v0.8.7 [INFO] [stderr] Checking futures-bounded v0.2.4 [INFO] [stderr] Checking alloy-consensus v1.0.38 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling home v0.5.11 [INFO] [stderr] Compiling which v4.4.2 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking netlink-proto v0.11.5 [INFO] [stderr] Checking alloy-sol-types v1.2.1 [INFO] [stderr] Checking asn1-rs v0.7.1 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking quick-protobuf-codec v0.3.1 [INFO] [stderr] Checking netlink-packet-route v0.17.1 [INFO] [stderr] Checking alloy-genesis v1.0.38 [INFO] [stderr] Checking tokio-stream v0.1.17 [INFO] [stderr] Checking hyper-util v0.1.14 [INFO] [stderr] Checking strum v0.27.1 [INFO] [stderr] Checking alloy-chains v0.2.4 [INFO] [stderr] Checking tracing-serde v0.2.0 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Compiling prost-derive v0.9.0 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Checking alloy-hardforks v0.2.11 [INFO] [stderr] Checking alloy-consensus-any v1.0.38 [INFO] [stderr] Checking alloy-network-primitives v1.0.38 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking nix v0.26.4 [INFO] [stderr] Compiling quinn-udp v0.5.13 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking hyper-rustls v0.27.7 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Checking reqwest v0.12.20 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking thread_local v1.1.9 [INFO] [stderr] Compiling linux-raw-sys v0.9.4 [INFO] [stderr] Compiling moka v0.12.10 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Checking der-parser v10.0.0 [INFO] [stderr] Checking rtnetlink v0.13.1 [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Compiling deranged v0.4.0 [INFO] [stderr] Checking tracing-subscriber v0.3.20 [INFO] [stderr] Compiling prost v0.9.0 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Checking oid-registry v0.8.1 [INFO] [stderr] Compiling prost-build v0.9.0 [INFO] [stderr] Checking futures-rustls v0.26.0 [INFO] [stderr] Checking lru v0.13.0 [INFO] [stderr] Compiling enum-as-inner v0.6.1 [INFO] [stderr] Compiling quinn v0.11.8 [INFO] [stderr] Compiling blst v0.3.15 [INFO] [stderr] Checking yasna v0.5.2 [INFO] [stderr] Compiling vergen v8.3.2 [INFO] [stderr] Checking uuid v1.17.0 [INFO] [stderr] Checking pem v3.0.5 [INFO] [stderr] Compiling snow v0.9.6 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Checking xml-rs v0.8.26 [INFO] [stderr] Checking lru-slab v0.1.2 [INFO] [stderr] Checking tagptr v0.2.0 [INFO] [stderr] Checking hickory-proto v0.25.2 [INFO] [stderr] Checking rcgen v0.13.2 [INFO] [stderr] Checking quinn-proto v0.11.12 [INFO] [stderr] Compiling time v0.3.41 [INFO] [stderr] Checking xmltree v0.10.3 [INFO] [stderr] Compiling petgraph v0.6.5 [INFO] [stderr] Compiling prost-types v0.9.0 [INFO] [stderr] Checking x509-parser v0.17.0 [INFO] [stderr] Checking if-watch v3.2.1 [INFO] [stderr] Checking attohttpc v0.24.1 [INFO] [stderr] Checking cbor4ii v0.3.3 [INFO] [stderr] Checking serde_test v1.0.177 [INFO] [stderr] Checking block-padding v0.3.3 [INFO] [stderr] Compiling zstd-sys v2.0.15+zstd.1.5.7 [INFO] [stderr] Checking threadpool v1.8.1 [INFO] [stderr] Checking ff v0.12.1 [INFO] [stderr] Checking dirs-sys-next v0.1.2 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Checking iana-time-zone v0.1.63 [INFO] [stderr] Compiling object v0.36.7 [INFO] [stderr] Compiling multimap v0.8.3 [INFO] [stderr] Checking resolv-conf v0.7.4 [INFO] [stderr] Compiling owo-colors v4.2.2 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking xor_name v5.0.0 [INFO] [stderr] Checking hickory-resolver v0.25.2 [INFO] [stderr] Checking flate2 v1.1.2 [INFO] [stderr] Checking dirs-next v2.0.0 [INFO] [stderr] Checking group v0.12.1 [INFO] [stderr] Checking alloy-rpc-types-eth v1.0.38 [INFO] [stderr] Checking alloy-json-rpc v1.0.38 [INFO] [stderr] Checking alloy-dyn-abi v1.2.1 [INFO] [stderr] Checking libp2p-request-response v0.29.0 [INFO] [stderr] Checking alloy-transport v1.0.38 [INFO] [stderr] Checking alloy-core v1.2.1 [INFO] [stderr] Checking inout v0.1.4 [INFO] [stderr] Checking igd-next v0.16.1 [INFO] [stderr] Checking libp2p-tls v0.6.2 [INFO] [stderr] Checking yamux v0.13.5 [INFO] [stderr] Checking yamux v0.12.1 [INFO] [stderr] Checking alloy-transport-http v1.0.38 [INFO] [stderr] Checking soketto v0.8.1 [INFO] [stderr] Checking webpki-roots v0.26.11 [INFO] [stderr] Checking x25519-dalek v2.0.1 [INFO] [stderr] Checking uint v0.10.0 [INFO] [stderr] Checking gimli v0.31.1 [INFO] [stderr] Compiling color-spantrace v0.3.0 [INFO] [stderr] Checking alloy-rpc-client v1.0.38 [INFO] [stderr] Checking libp2p-yamux v0.47.0 [INFO] [stderr] Compiling ant-build-info v0.1.29 [INFO] [stderr] Checking libp2p-kad v0.48.0 [INFO] [stderr] Checking libp2p-noise v0.46.1 [INFO] [stderr] Checking libp2p-upnp v0.5.0 [INFO] [stderr] Checking libp2p-websocket v0.45.1 [INFO] [stderr] Checking libp2p-quic v0.13.0 [INFO] [stderr] Checking libp2p-autonat v0.15.0 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking libp2p-dns v0.44.0 [INFO] [stderr] Compiling tonic-build v0.6.2 [INFO] [stderr] Checking pairing v0.22.0 [INFO] [stderr] Checking alloy-rpc-types-any v1.0.38 [INFO] [stderr] Checking alloy-rpc-types-anvil v1.0.38 [INFO] [stderr] Checking alloy-network v1.0.38 [INFO] [stderr] Checking alloy-rpc-types v1.0.38 [INFO] [stderr] Checking libp2p-tcp v0.44.0 [INFO] [stderr] Checking alloy-signer-local v1.0.38 [INFO] [stderr] Checking tracing-error v0.2.1 [INFO] [stderr] Checking libp2p-relay v0.21.0 [INFO] [stderr] Checking alloy-node-bindings v1.0.38 [INFO] [stderr] Checking libp2p-identify v0.47.0 [INFO] [stderr] Checking addr2line v0.24.2 [INFO] [stderr] Checking libp2p-connection-limits v0.6.0 [INFO] [stderr] Checking libp2p-allow-block-list v0.6.0 [INFO] [stderr] Compiling custom_debug_derive v0.6.2 [INFO] [stderr] Checking crossbeam-deque v0.8.6 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Checking alloy-provider v1.0.38 [INFO] [stderr] Checking rmp v0.8.14 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Compiling bitcoin-internals v0.2.0 [INFO] [stderr] Compiling prometheus-client v0.23.1 [INFO] [stderr] Checking rustc-demangle v0.1.25 [INFO] [stderr] Checking anstyle-query v1.1.3 [INFO] [stderr] Checking libp2p v0.56.0 [INFO] [stderr] Checking anstream v0.6.19 [INFO] [stderr] Checking custom_debug v0.6.2 [INFO] [stderr] Checking rmp-serde v1.3.0 [INFO] [stderr] Checking eyre v0.6.12 [INFO] [stderr] Checking rayon-core v1.12.1 [INFO] [stderr] Compiling ant-protocol v1.0.9 [INFO] [stderr] Checking blstrs v0.6.2 [INFO] [stderr] Checking brotli-decompressor v2.3.5 [INFO] [stderr] Compiling prometheus-client-derive-encode v0.4.2 [INFO] [stderr] Compiling pin-project-lite v0.2.16 [INFO] [stderr] Checking hex_fmt v0.3.0 [INFO] [stderr] Checking dtoa v1.0.10 [INFO] [stderr] Checking clap_builder v4.5.40 [INFO] [stderr] Checking blsttc v8.0.2 [INFO] [stderr] Checking brotli v3.3.4 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking backtrace v0.3.75 [INFO] [stderr] Checking color-eyre v0.6.5 [INFO] [stderr] Checking actix-utils v3.0.1 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking cbc v0.1.2 [INFO] [stderr] Checking file-rotate v0.7.6 [INFO] [stderr] Checking tracing-appender v0.2.3 [INFO] [stderr] Checking actix-rt v2.10.0 [INFO] [stderr] Compiling bytestring v1.4.0 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking crdts v7.3.2 [INFO] [stderr] Compiling clap_derive v4.5.40 [INFO] [stderr] Checking actix-service v2.0.3 [INFO] [stderr] Compiling cookie v0.16.2 [INFO] [stderr] Compiling unicase v2.8.1 [INFO] [stderr] Checking hex-conservative v0.1.2 [INFO] [stderr] Compiling actix-router v0.5.3 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Checking bitcoin_hashes v0.13.0 [INFO] [stderr] Checking alloy-contract v1.0.38 [INFO] [stderr] Checking ant-logging v0.3.0 [INFO] [stderr] Checking alloy v1.0.38 [INFO] [stderr] Checking brotli v8.0.1 [INFO] [stderr] Checking evmlib v0.4.5 [INFO] [stderr] Checking atomic-write-file v0.2.3 [INFO] [stderr] Checking local-channel v0.1.5 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking actix-codec v0.5.2 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Checking unicode-normalization v0.1.24 [INFO] [stderr] Checking pairing v0.23.0 [INFO] [stderr] Checking csv-core v0.1.12 [INFO] [stderr] Checking bip39 v2.2.0 [INFO] [stderr] Checking clap v4.5.40 [INFO] [stderr] Checking csv v1.3.1 [INFO] [stderr] Checking blstrs v0.7.1 [INFO] [stderr] Checking ant-evm v0.1.17 [INFO] [stderr] Checking self_encryption v0.34.3 [INFO] [stderr] Compiling actix-web-codegen v4.3.0 [INFO] [stderr] Checking self_encryption v0.30.0 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Checking actix-server v2.6.0 [INFO] [stderr] Checking term v0.7.0 [INFO] [stderr] Compiling utoipa-gen v5.4.0 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Checking exponential-backoff v2.1.0 [INFO] [stderr] Checking rtoolbox v0.0.3 [INFO] [stderr] Checking is-terminal v0.4.16 [INFO] [stderr] Checking impl-more v0.1.9 [INFO] [stderr] Checking encode_unicode v1.0.0 [INFO] [stderr] Checking hashbrown v0.13.2 [INFO] [stderr] Checking prettytable v0.10.0 [INFO] [stderr] Checking ant-bootstrap v0.2.12 [INFO] [stderr] Checking rpassword v7.4.0 [INFO] [stderr] Checking sha256 v1.6.0 [INFO] [stderr] Checking port_check v0.2.1 [INFO] [stderr] Checking schnellru v0.2.4 [INFO] [stderr] Checking zstd v0.13.3 [INFO] [stderr] Checking actix-http v3.11.0 [INFO] [stderr] Checking autonomi v0.7.1 [INFO] [stderr] Checking actix-web v4.11.0 [INFO] [stderr] Checking utoipa v5.4.0 [INFO] [stderr] Checking dweb v0.13.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: empty lines after doc comment [INFO] [stdout] --> src/api/mod.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | / /// for Rust apps. [INFO] [stdout] ... | [INFO] [stdout] 37 | | [INFO] [stdout] | |_^ [INFO] [stdout] 38 | pub const DWEB_API_ROUTE_V0: &str = "/dweb-0"; // Route for dweb API v0 [INFO] [stdout] | --------------------------- the comment documents this constant item [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty lines are unintentional, remove them [INFO] [stdout] help: if the doc comment should not document constant item `DWEB_API_ROUTE_V0` then comment it out [INFO] [stdout] | [INFO] [stdout] 27 ~ // /// The dweb::api is a native Rust API that handles http interaction with the dweb server. [INFO] [stdout] 28 ~ // /// [INFO] [stdout] 29 ~ // /// The server can be accessed directly from any language, but this API simplifies the process [INFO] [stdout] 30 ~ // /// for Rust apps. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty lines after doc comment [INFO] [stdout] --> src/api/mod.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | / /// for Rust apps. [INFO] [stdout] ... | [INFO] [stdout] 37 | | [INFO] [stdout] | |_^ [INFO] [stdout] 38 | pub const DWEB_API_ROUTE_V0: &str = "/dweb-0"; // Route for dweb API v0 [INFO] [stdout] | --------------------------- the comment documents this constant item [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty lines are unintentional, remove them [INFO] [stdout] help: if the doc comment should not document constant item `DWEB_API_ROUTE_V0` then comment it out [INFO] [stdout] | [INFO] [stdout] 27 ~ // /// The dweb::api is a native Rust API that handles http interaction with the dweb server. [INFO] [stdout] 28 ~ // /// [INFO] [stdout] 29 ~ // /// The server can be accessed directly from any language, but this API simplifies the process [INFO] [stdout] 30 ~ // /// for Rust apps. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/cache/directory_with_port.rs:47:1 [INFO] [stdout] | [INFO] [stdout] 47 | / /// [INFO] [stdout] 48 | | [INFO] [stdout] | |_^ [INFO] [stdout] 49 | // Port configuration for the deterministic port algorithm [INFO] [stdout] 50 | const DETERMINISTIC_PORT_RANGE: u64 = 20_000; [INFO] [stdout] | ------------------------------ the comment documents this constant item [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the doc comment should not document constant item `DETERMINISTIC_PORT_RANGE` then comment it out [INFO] [stdout] | [INFO] [stdout] 42 ~ // /// A cache of DirectoryVersionWithPort [INFO] [stdout] 43 ~ // /// [INFO] [stdout] 44 ~ // /// Key: ARCHIVE_ADDRESS [INFO] [stdout] 45 ~ // /// [INFO] [stdout] 46 ~ // /// Entry: DirectoryVersionWithPort [INFO] [stdout] 47 ~ // /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/files/archive.rs:52:1 [INFO] [stdout] | [INFO] [stdout] 52 | / /// [INFO] [stdout] 53 | | [INFO] [stdout] | |_^ [INFO] [stdout] 54 | /// Separator used in PublicArchive/PrivateArchive and Tree::directory_map [INFO] [stdout] 55 | pub const ARCHIVE_PATH_SEPARATOR: char = '/'; [INFO] [stdout] | -------------------------------- the comment documents this constant item [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 53 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/history.rs:1357:13 [INFO] [stdout] | [INFO] [stdout] 1357 | trove_address: trove_address, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `trove_address` [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: empty line after doc comment [INFO] [stdout] --> src/cache/directory_with_port.rs:47:1 [INFO] [stdout] | [INFO] [stdout] 47 | / /// [INFO] [stdout] 48 | | [INFO] [stdout] | |_^ [INFO] [stdout] 49 | // Port configuration for the deterministic port algorithm [INFO] [stdout] 50 | const DETERMINISTIC_PORT_RANGE: u64 = 20_000; [INFO] [stdout] | ------------------------------ the comment documents this constant item [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the doc comment should not document constant item `DETERMINISTIC_PORT_RANGE` then comment it out [INFO] [stdout] | [INFO] [stdout] 42 ~ // /// A cache of DirectoryVersionWithPort [INFO] [stdout] 43 ~ // /// [INFO] [stdout] 44 ~ // /// Key: ARCHIVE_ADDRESS [INFO] [stdout] 45 ~ // /// [INFO] [stdout] 46 ~ // /// Entry: DirectoryVersionWithPort [INFO] [stdout] 47 ~ // /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/files/archive.rs:52:1 [INFO] [stdout] | [INFO] [stdout] 52 | / /// [INFO] [stdout] 53 | | [INFO] [stdout] | |_^ [INFO] [stdout] 54 | /// Separator used in PublicArchive/PrivateArchive and Tree::directory_map [INFO] [stdout] 55 | pub const ARCHIVE_PATH_SEPARATOR: char = '/'; [INFO] [stdout] | -------------------------------- the comment documents this constant item [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 53 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/token.rs:58:13 [INFO] [stdout] | [INFO] [stdout] 58 | token: token, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `token` [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/token.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | gas: gas, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `gas` [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/history.rs:1357:13 [INFO] [stdout] | [INFO] [stdout] 1357 | trove_address: trove_address, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `trove_address` [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/token.rs:58:13 [INFO] [stdout] | [INFO] [stdout] 58 | token: token, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `token` [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/token.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | gas: gas, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `gas` [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: unused variable: `ignore_pointer` [INFO] [stdout] --> src/web/fetch.rs:203:14 [INFO] [stdout] | [INFO] [stdout] 203 | let (ignore_pointer, minimum_entry_index) = if dweb_host.version.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignore_pointer` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `minimum_entry_index` [INFO] [stdout] --> src/web/fetch.rs:203:30 [INFO] [stdout] | [INFO] [stdout] 203 | let (ignore_pointer, minimum_entry_index) = if dweb_host.version.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minimum_entry_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fixed_dweb_host_tag` [INFO] [stdout] --> src/web/name.rs:251:9 [INFO] [stdout] | [INFO] [stdout] 251 | let fixed_dweb_host_tag = String::from(FIXED_WEBNAME_SEPARATOR) + "-"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fixed_dweb_host_tag` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `found_version_segment` is assigned to, but never used [INFO] [stdout] --> src/web/name.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | let mut found_version_segment = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_found_version_segment` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `found_version_segment` is never read [INFO] [stdout] --> src/web/name.rs:274:29 [INFO] [stdout] | [INFO] [stdout] 274 | ... found_version_segment = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `store_private_key` is never used [INFO] [stdout] --> src/autonomi/wallet/fs.rs:41:15 [INFO] [stdout] | [INFO] [stdout] 41 | pub(crate) fn store_private_key( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `confirm_password` is never used [INFO] [stdout] --> src/autonomi/wallet/input.rs:30:15 [INFO] [stdout] | [INFO] [stdout] 30 | pub(crate) fn confirm_password(password: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `request_password` is never used [INFO] [stdout] --> src/autonomi/wallet/input.rs:43:15 [INFO] [stdout] | [INFO] [stdout] 43 | pub(crate) fn request_password(required: bool) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `dweb_host_string` and `version` are never read [INFO] [stdout] --> src/cache/directory_with_name.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 78 | pub struct DirectoryVersionWithName { [INFO] [stdout] | ------------------------ fields in this struct [INFO] [stdout] 79 | /// The 'v[VERSION].DWEB-NAME.www-dweb.au' part of a dweb URL (see dweb::web::name) [INFO] [stdout] 80 | dweb_host_string: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | version: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DirectoryVersionWithName` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `json_string` is never read [INFO] [stdout] --> src/files/directory.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 76 | pub struct JsonSettings { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 77 | json_string: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `JsonSettings` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `create_pointer_for_update` is never used [INFO] [stdout] --> src/history.rs:653:8 [INFO] [stdout] | [INFO] [stdout] 184 | impl + Clone> History { [INFO] [stdout] | ------------------------------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 653 | fn create_pointer_for_update( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_files_in_path_recursively` is never used [INFO] [stdout] --> src/storage.rs:736:4 [INFO] [stdout] | [INFO] [stdout] 736 | fn count_files_in_path_recursively(directory_path: &PathBuf) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is an outer doc comment and does not apply to the parent module or crate [INFO] [stdout] --> src/api/mod.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | / ///! A Rust interface to dweb server APIs [INFO] [stdout] 21 | | ///! [INFO] [stdout] 22 | | ///! TODO keep this and the with ports APIs in sync [INFO] [stdout] | |___________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_doc_comments [INFO] [stdout] = note: `#[warn(clippy::suspicious_doc_comments)]` on by default [INFO] [stdout] help: use an inner doc comment to document the parent module or crate [INFO] [stdout] | [INFO] [stdout] 20 + //! A Rust interface to dweb server APIs [INFO] [stdout] 21 + //! [INFO] [stdout] 22 + //! TODO keep this and the with ports APIs in sync [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cache/directory_with_port.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | format!("{}", archive_address.to_hex()).to_ascii_lowercase() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `archive_address.to_hex().to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.history_address` after checking its variant with `is_some` [INFO] [stdout] --> src/cache/directory_with_port.rs:118:49 [INFO] [stdout] | [INFO] [stdout] 118 | if self.history_address.is_some() { self.history_address.unwrap().to_hex() } else { "None".to_string() }, [INFO] [stdout] | --------------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: try: `if let Some() = self.history_address` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.version` after checking its variant with `is_some` [INFO] [stdout] --> src/cache/directory_with_port.rs:119:41 [INFO] [stdout] | [INFO] [stdout] 119 | if self.version.is_some() { self.version.unwrap() } else { 0 }, [INFO] [stdout] | ------------------------- ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: try: `if let Some() = self.version` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> src/cache/directory_with_port.rs:120:33 [INFO] [stdout] | [INFO] [stdout] 120 | self.archive_address.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/cache/directory_with_port.rs:118:49 [INFO] [stdout] | [INFO] [stdout] 118 | if self.history_address.is_some() { self.history_address.unwrap().to_hex() } else { "None".to_string() }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] = note: requested on the command line with `-W clippy::unwrap-used` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/cache/directory_with_port.rs:119:41 [INFO] [stdout] | [INFO] [stdout] 119 | if self.version.is_some() { self.version.unwrap() } else { 0 }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `cached_address` after checking its variant with `is_none` [INFO] [stdout] --> src/cache/directory_with_port.rs:167:41 [INFO] [stdout] | [INFO] [stdout] 162 | if cached_address.is_none() { [INFO] [stdout] | --------------------------- help: try: `if let Some() = cached_address` [INFO] [stdout] ... [INFO] [stdout] 167 | history_address = Some(*cached_address.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `archive_address` after checking its variant with `is_none` [INFO] [stdout] --> src/cache/directory_with_port.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 173 | let archive_address = if archive_address.is_none() { [INFO] [stdout] | ---------------------------- help: try: `if let Some() = archive_address` [INFO] [stdout] ... [INFO] [stdout] 207 | archive_address.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/cache/directory_with_port.rs:159:5 [INFO] [stdout] | [INFO] [stdout] 159 | / if history_address.is_none() && archive_address.is_none() { [INFO] [stdout] 160 | | if let Ok(lock) = &mut HISTORY_NAMES.lock() { [INFO] [stdout] 161 | | let cached_address = lock.get(address_or_name); [INFO] [stdout] 162 | | if cached_address.is_none() { [INFO] [stdout] ... | [INFO] [stdout] 169 | | }; [INFO] [stdout] 170 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 159 ~ if history_address.is_none() && archive_address.is_none() [INFO] [stdout] 160 ~ && let Ok(lock) = &mut HISTORY_NAMES.lock() { [INFO] [stdout] 161 | let cached_address = lock.get(address_or_name); [INFO] [stdout] ... [INFO] [stdout] 168 | } [INFO] [stdout] 169 ~ };; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/cache/directory_with_port.rs:167:41 [INFO] [stdout] | [INFO] [stdout] 167 | history_address = Some(*cached_address.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/cache/directory_with_port.rs:177:13 [INFO] [stdout] | [INFO] [stdout] 177 | history_address.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/cache/directory_with_port.rs:198:17 [INFO] [stdout] | [INFO] [stdout] 186 | / let archive_address = match history [INFO] [stdout] 187 | | .get_version_entry_value(version, ignore_pointer) [INFO] [stdout] 188 | | .await [INFO] [stdout] ... | [INFO] [stdout] 197 | | }; [INFO] [stdout] | |__________________- unnecessary `let` binding [INFO] [stdout] 198 | archive_address [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] 186 ~ [INFO] [stdout] 187 ~ match history [INFO] [stdout] 188 + .get_version_entry_value(version, ignore_pointer) [INFO] [stdout] 189 + .await [INFO] [stdout] 190 + { [INFO] [stdout] 191 + Ok(archive_address) => archive_address, [INFO] [stdout] 192 + Err(e) => { [INFO] [stdout] 193 + let msg = [INFO] [stdout] 194 + format!("Unable to get archive address for version {version} - {e}"); [INFO] [stdout] 195 + println!("DEBUG {msg}"); [INFO] [stdout] 196 + return Err(eyre!(msg)); [INFO] [stdout] 197 + } [INFO] [stdout] 198 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/cache/directory_with_port.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 207 | archive_address.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/cache/directory_with_port.rs:212:5 [INFO] [stdout] | [INFO] [stdout] 212 | / if let Ok(lock) = &mut DIRECTORY_VERSIONS_WITH_PORT.lock() { [INFO] [stdout] 213 | | if let Some(directory_version) = lock.get(&key) { [INFO] [stdout] 214 | | return Ok((directory_version.clone(), true)); [INFO] [stdout] 215 | | }; [INFO] [stdout] 216 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 212 ~ if let Ok(lock) = &mut DIRECTORY_VERSIONS_WITH_PORT.lock() [INFO] [stdout] 213 ~ && let Some(directory_version) = lock.get(&key) { [INFO] [stdout] 214 | return Ok((directory_version.clone(), true)); [INFO] [stdout] 215 ~ };; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/cache/directory_with_port.rs:238:17 [INFO] [stdout] | [INFO] [stdout] 238 | / println!( [INFO] [stdout] 239 | | "DEBUG Deterministic port {} is not available, using random port {} instead", [INFO] [stdout] 240 | | port, free_port [INFO] [stdout] 241 | | ); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] = note: requested on the command line with `-W clippy::uninlined-format-args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cache/directory_with_port.rs:266:23 [INFO] [stdout] | [INFO] [stdout] 266 | let msg = format!("Failed to add new DirectoryVersionWithPort to the cache"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Failed to add new DirectoryVersionWithPort to the cache".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/client.rs:152:13 [INFO] [stdout] | [INFO] [stdout] 152 | client_config.clone().client.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/client.rs:184:14 [INFO] [stdout] | [INFO] [stdout] 184 | (client_config.clone().wallet.unwrap(), false) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client.rs:186:56 [INFO] [stdout] | [INFO] [stdout] 186 | match crate::autonomi::wallet::load_wallet(&client.evm_network()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `client.evm_network()` [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: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/client.rs:213:13 [INFO] [stdout] | [INFO] [stdout] 213 | wallet.balance_of_tokens().await.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/client.rs:217:13 [INFO] [stdout] | [INFO] [stdout] 217 | wallet.balance_of_gas_tokens().await.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/client.rs:219:9 [INFO] [stdout] | [INFO] [stdout] 219 | println!("Max fee per gas set to: {:?}", max_fee_per_gas); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 219 - println!("Max fee per gas set to: {:?}", max_fee_per_gas); [INFO] [stdout] 219 + println!("Max fee per gas set to: {max_fee_per_gas:?}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `DualArchive` [INFO] [stdout] --> src/files/archive.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | / pub fn new() -> Self { [INFO] [stdout] 67 | | Self { [INFO] [stdout] 68 | | dweb_type: DwebType::Unknown, [INFO] [stdout] 69 | | public_archive: PublicArchive::new(), [INFO] [stdout] ... | [INFO] [stdout] 72 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 64 + impl Default for DualArchive { [INFO] [stdout] 65 + fn default() -> Self { [INFO] [stdout] 66 + Self::new() [INFO] [stdout] 67 + } [INFO] [stdout] 68 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/files/archive.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 157 | &self.public_archive.map() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.public_archive.map()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/archive.rs:258:23 [INFO] [stdout] | [INFO] [stdout] 258 | Err(e) => return Err(e.into()), [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] 258 - Err(e) => return Err(e.into()), [INFO] [stdout] 258 + Err(e) => Err(e.into()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/files/archive.rs:242:17 [INFO] [stdout] | [INFO] [stdout] 242 | / if let Some((_path_buf, (datamap_chunk, _metadata))) = archive.map().iter().next() { [INFO] [stdout] 243 | | if datamap_chunk.to_hex().len() <= crate::helpers::DATA_ADDRESS_LEN { [INFO] [stdout] 244 | | return Err(eyre!( [INFO] [stdout] 245 | | "Found DataAddress instead of DatamapChunk: {}", [INFO] [stdout] ... | [INFO] [stdout] 249 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 242 ~ if let Some((_path_buf, (datamap_chunk, _metadata))) = archive.map().iter().next() [INFO] [stdout] 243 ~ && datamap_chunk.to_hex().len() <= crate::helpers::DATA_ADDRESS_LEN { [INFO] [stdout] 244 | return Err(eyre!( [INFO] [stdout] ... [INFO] [stdout] 247 | )); [INFO] [stdout] 248 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/archive.rs:275:23 [INFO] [stdout] | [INFO] [stdout] 275 | Err(e) => return Err(e.into()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 275 - Err(e) => return Err(e.into()), [INFO] [stdout] 275 + Err(e) => Err(e.into()), [INFO] [stdout] | [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/files/archive.rs:264:9 [INFO] [stdout] | [INFO] [stdout] 264 | / match Self::from_bytes_as_private(data.clone()) { [INFO] [stdout] 265 | | Ok(_archive) => return Err(eyre!("Found PrivateArchive not PublicArchive")), [INFO] [stdout] 266 | | Err(_) => {} [INFO] [stdout] 267 | | } [INFO] [stdout] | |_________^ help: try: `if let Ok(_archive) = Self::from_bytes_as_private(data.clone()) { return Err(eyre!("Found PrivateArchive not PublicArchive")) }` [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/archive.rs:285:17 [INFO] [stdout] | [INFO] [stdout] 285 | / return Err(rmp_serde::encode::Error::InvalidDataModel( [INFO] [stdout] 286 | | "DualArchive::to_bytes_as_public() can only serialise DwebType::PublicArchive", [INFO] [stdout] 287 | | )) [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 285 ~ Err(rmp_serde::encode::Error::InvalidDataModel( [INFO] [stdout] 286 + "DualArchive::to_bytes_as_public() can only serialise DwebType::PublicArchive", [INFO] [stdout] 287 + )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/archive.rs:297:18 [INFO] [stdout] | [INFO] [stdout] 297 | _ => return Err(rmp_serde::encode::Error::InvalidDataModel( [INFO] [stdout] | __________________^ [INFO] [stdout] 298 | | "DualArchive::to_bytes_as_private() can only serialise DwebType::PrivateArchive", [INFO] [stdout] 299 | | )), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 297 ~ _ => Err(rmp_serde::encode::Error::InvalidDataModel( [INFO] [stdout] 298 + "DualArchive::to_bytes_as_private() can only serialise DwebType::PrivateArchive", [INFO] [stdout] 299 ~ )), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `JsonSettings` [INFO] [stdout] --> src/files/directory.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | / pub fn new() -> JsonSettings { [INFO] [stdout] 83 | | JsonSettings { [INFO] [stdout] 84 | | json_string: String::from(""), [INFO] [stdout] 85 | | } [INFO] [stdout] 86 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 81 + impl Default for JsonSettings { [INFO] [stdout] 82 + fn default() -> Self { [INFO] [stdout] 83 + Self::new() [INFO] [stdout] 84 + } [INFO] [stdout] 85 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/directory.rs:135:27 [INFO] [stdout] | [INFO] [stdout] 135 | Ok(string) => return Self::from_string(string), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 135 ~ Ok(string) => Self::from_string(string), [INFO] [stdout] 136 | Err(e) => panic!("DwebSettings::from_bytes() - failed {e}"), [INFO] [stdout] 137 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/files/directory.rs:150:5 [INFO] [stdout] | [INFO] [stdout] 150 | / pub fn default() -> DwebSettings { [INFO] [stdout] 151 | | DwebSettings { [INFO] [stdout] 152 | | index_filenames: Vec::from([String::from("index.html"), String::from("index.htm")]), [INFO] [stdout] 153 | | json_config: JsonSettings::new(), [INFO] [stdout] 154 | | } [INFO] [stdout] 155 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/files/directory.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | DataAddress::from_hex(FILE_TREE_TYPE).unwrap() // An error here is a bug that should be fixed [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/files/directory.rs:246:45 [INFO] [stdout] | [INFO] [stdout] 246 | return Self::from_datamap_chunk(&client, datamap_chunk).await; [INFO] [stdout] | ^^^^^^^ help: change this to: `client` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/files/directory.rs:248:47 [INFO] [stdout] | [INFO] [stdout] 248 | return Self::from_archive_address(&client, archive_address).await; [INFO] [stdout] | ^^^^^^^ help: change this to: `client` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/directory.rs:276:21 [INFO] [stdout] | [INFO] [stdout] 276 | return Err(eyre!(message)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 276 - return Err(eyre!(message)); [INFO] [stdout] 276 + Err(eyre!(message)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/directory.rs:311:21 [INFO] [stdout] | [INFO] [stdout] 311 | return Err(eyre!(message)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 311 - return Err(eyre!(message)); [INFO] [stdout] 311 + Err(eyre!(message)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/files/directory.rs:373:31 [INFO] [stdout] | [INFO] [stdout] 373 | let message = format!("Tree cannot initialise using unknown DualArchive.dweb_type"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Tree cannot initialise using unknown DualArchive.dweb_type".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/files/directory.rs:393:9 [INFO] [stdout] | [INFO] [stdout] 393 | / if let Some((datamap_chunk, data_address, _metadata)) = [INFO] [stdout] 394 | | self.archive.lookup_file(&dweb_settings_path) [INFO] [stdout] 395 | | { [INFO] [stdout] 396 | | if let Ok(bytes) = get_content_using_hex(client, datamap_chunk, data_address).await { [INFO] [stdout] ... | [INFO] [stdout] 402 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 394 ~ self.archive.lookup_file(&dweb_settings_path) [INFO] [stdout] 395 ~ && let Ok(bytes) = get_content_using_hex(client, datamap_chunk, data_address).await { [INFO] [stdout] 396 | if let Ok(parsed_settings) = DwebSettings::from_bytes(&bytes) { [INFO] [stdout] ... [INFO] [stdout] 399 | }; [INFO] [stdout] 400 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/files/directory.rs:396:13 [INFO] [stdout] | [INFO] [stdout] 396 | / if let Ok(bytes) = get_content_using_hex(client, datamap_chunk, data_address).await { [INFO] [stdout] 397 | | if let Ok(parsed_settings) = DwebSettings::from_bytes(&bytes) { [INFO] [stdout] 398 | | self.dweb_settings = parsed_settings; [INFO] [stdout] 399 | | return true; [INFO] [stdout] 400 | | }; [INFO] [stdout] 401 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 396 ~ if let Ok(bytes) = get_content_using_hex(client, datamap_chunk, data_address).await [INFO] [stdout] 397 ~ && let Ok(parsed_settings) = DwebSettings::from_bytes(&bytes) { [INFO] [stdout] 398 | self.dweb_settings = parsed_settings; [INFO] [stdout] 399 | return true; [INFO] [stdout] 400 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/files/directory.rs:424:12 [INFO] [stdout] | [INFO] [stdout] 424 | if !history.fetch_version_trove(version).await.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `history.fetch_version_trove(version).await.is_some()` [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: called `unwrap` on `history.cached_version` after checking its variant with `is_some` [INFO] [stdout] --> src/files/directory.rs:428:38 [INFO] [stdout] | [INFO] [stdout] 425 | if history.cached_version.is_some() [INFO] [stdout] | -------------------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 428 | let cached_version = history.cached_version.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/files/directory.rs:426:20 [INFO] [stdout] | [INFO] [stdout] 426 | && history.cached_version.as_ref().unwrap().trove.is_some() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/files/directory.rs:428:38 [INFO] [stdout] | [INFO] [stdout] 428 | let cached_version = history.cached_version.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/files/directory.rs:429:33 [INFO] [stdout] | [INFO] [stdout] 429 | let directory = cached_version.trove.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/files/directory.rs:456:24 [INFO] [stdout] | [INFO] [stdout] 456 | resource_path: &String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 456 ~ resource_path: &str, [INFO] [stdout] 457 | as_website: bool, [INFO] [stdout] ... [INFO] [stdout] 462 | } [INFO] [stdout] 463 ~ let original_resource_path = resource_path.to_owned(); [INFO] [stdout] 464 ~ let mut resource_path = resource_path.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/files/directory.rs:465:30 [INFO] [stdout] | [INFO] [stdout] 465 | let last_separator = last_separator_result.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/files/directory.rs:466:9 [INFO] [stdout] | [INFO] [stdout] 466 | println!("Splitting path '{}'", resource_path); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 466 - println!("Splitting path '{}'", resource_path); [INFO] [stdout] 466 + println!("Splitting path '{resource_path}'"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/files/directory.rs:468:9 [INFO] [stdout] | [INFO] [stdout] 468 | println!("...into '{}' and '{}'", resource_path, second_part); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 468 - println!("...into '{}' and '{}'", resource_path, second_part); [INFO] [stdout] 468 + println!("...into '{resource_path}' and '{second_part}'"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/files/directory.rs:472:9 [INFO] [stdout] | [INFO] [stdout] 472 | / if let Some(resources) = self.directory_map.paths_to_files_map.get(&resource_path) { [INFO] [stdout] 473 | | if second_part.len() > 0 { [INFO] [stdout] 474 | | println!("DEBUG Tree looking up '{}'", second_part); [INFO] [stdout] 475 | | match Self::lookup_name_in_vec(&second_part, resources) { [INFO] [stdout] ... | [INFO] [stdout] 482 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 472 ~ if let Some(resources) = self.directory_map.paths_to_files_map.get(&resource_path) [INFO] [stdout] 473 ~ && second_part.len() > 0 { [INFO] [stdout] 474 | println!("DEBUG Tree looking up '{}'", second_part); [INFO] [stdout] ... [INFO] [stdout] 480 | } [INFO] [stdout] 481 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/files/directory.rs:473:16 [INFO] [stdout] | [INFO] [stdout] 473 | if second_part.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!second_part.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: variables can be used directly in the `format!` string [INFO] [stdout] --> src/files/directory.rs:474:17 [INFO] [stdout] | [INFO] [stdout] 474 | println!("DEBUG Tree looking up '{}'", second_part); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 474 - println!("DEBUG Tree looking up '{}'", second_part); [INFO] [stdout] 474 + println!("DEBUG Tree looking up '{second_part}'"); [INFO] [stdout] | [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/files/directory.rs:475:17 [INFO] [stdout] | [INFO] [stdout] 475 | / match Self::lookup_name_in_vec(&second_part, resources) { [INFO] [stdout] 476 | | Some((datamap_chunk, data_address)) => { [INFO] [stdout] 477 | | path_and_address = Some((second_part, datamap_chunk, data_address)) [INFO] [stdout] ... | [INFO] [stdout] 480 | | } [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] help: try [INFO] [stdout] | [INFO] [stdout] 475 ~ if let Some((datamap_chunk, data_address)) = Self::lookup_name_in_vec(&second_part, resources) { [INFO] [stdout] 476 + path_and_address = Some((second_part, datamap_chunk, data_address)) [INFO] [stdout] 477 + } [INFO] [stdout] | [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/files/directory.rs:504:21 [INFO] [stdout] | [INFO] [stdout] 504 | / match Self::lookup_name_in_vec(&index_file, &new_resources) { [INFO] [stdout] 505 | | Some((datamap_chunk, data_address)) => { [INFO] [stdout] 506 | | path_and_address = [INFO] [stdout] 507 | | Some((index_file.clone(), datamap_chunk, data_address)) [INFO] [stdout] 508 | | } [INFO] [stdout] 509 | | None => {} [INFO] [stdout] 510 | | }; [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] help: try [INFO] [stdout] | [INFO] [stdout] 504 ~ if let Some((datamap_chunk, data_address)) = Self::lookup_name_in_vec(&index_file, &new_resources) { [INFO] [stdout] 505 + path_and_address = [INFO] [stdout] 506 + Some((index_file.clone(), datamap_chunk, data_address)) [INFO] [stdout] 507 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/files/directory.rs:504:52 [INFO] [stdout] | [INFO] [stdout] 504 | match Self::lookup_name_in_vec(&index_file, &new_resources) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `index_file` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/files/directory.rs:504:65 [INFO] [stdout] | [INFO] [stdout] 504 | match Self::lookup_name_in_vec(&index_file, &new_resources) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `new_resources` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/files/directory.rs:517:36 [INFO] [stdout] | [INFO] [stdout] 517 | let content_type = match mime_guess::from_path(path).first_raw() { [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 518 | | Some(str) => Some(str.to_string()), [INFO] [stdout] 519 | | None => None, [INFO] [stdout] 520 | | }; [INFO] [stdout] | |_________________^ help: try: `mime_guess::from_path(path).first_raw().map(|str| str.to_string())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `TreePathMap` [INFO] [stdout] --> src/files/directory.rs:565:5 [INFO] [stdout] | [INFO] [stdout] 565 | / pub fn new() -> TreePathMap { [INFO] [stdout] 566 | | TreePathMap { [INFO] [stdout] 567 | | paths_to_files_map: HashMap::>::new( [INFO] [stdout] 568 | | ), [INFO] [stdout] 569 | | } [INFO] [stdout] 570 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 564 + impl Default for TreePathMap { [INFO] [stdout] 565 + fn default() -> Self { [INFO] [stdout] 566 + Self::new() [INFO] [stdout] 567 + } [INFO] [stdout] 568 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/files/directory.rs:575:9 [INFO] [stdout] | [INFO] [stdout] 575 | while let Some((path_buf, (data_address, metadata))) = iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for (path_buf, (data_address, metadata)) in iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] = note: `#[warn(clippy::while_let_on_iterator)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/files/directory.rs:599:9 [INFO] [stdout] | [INFO] [stdout] 599 | while let Some((path_buf, (datamap, metadata))) = iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for (path_buf, (datamap, metadata)) in iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/files/directory.rs:631:48 [INFO] [stdout] | [INFO] [stdout] 631 | let mut web_path = Self::webify_string(&resource_website_path); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `resource_website_path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/directory.rs:671:9 [INFO] [stdout] | [INFO] [stdout] 671 | return path_string.replace("\\", "/"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 671 - return path_string.replace("\\", "/"); [INFO] [stdout] 671 + path_string.replace("\\", "/") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/files/directory.rs:669:39 [INFO] [stdout] | [INFO] [stdout] 669 | pub fn webify_string(path_string: &String) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 669 ~ pub fn webify_string(path_string: &str) -> String { [INFO] [stdout] 670 ~ let path_string = path_string.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/files/directory.rs:684:39 [INFO] [stdout] | [INFO] [stdout] 684 | pub fn canonicalise_path(path_string: &String) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 684 - pub fn canonicalise_path(path_string: &String) -> String { [INFO] [stdout] 684 + pub fn canonicalise_path(path_string: &str) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/files/directory.rs:686:8 [INFO] [stdout] | [INFO] [stdout] 686 | if path_string.len() > 0 && !path_string.starts_with("/") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!path_string.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: manual implementation of `ok` [INFO] [stdout] --> src/files/directory.rs:699:9 [INFO] [stdout] | [INFO] [stdout] 699 | / match DataMapChunk::from_hex(&datamap_chunk) { [INFO] [stdout] 700 | | Ok(datamap_chunk) => Some(datamap_chunk), [INFO] [stdout] 701 | | Err(_) => None, [INFO] [stdout] 702 | | } [INFO] [stdout] | |_________^ help: replace with: `DataMapChunk::from_hex(&datamap_chunk).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] = note: `#[warn(clippy::manual_ok_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/files/directory.rs:708:9 [INFO] [stdout] | [INFO] [stdout] 708 | / match DataAddress::from_hex(&data_address) { [INFO] [stdout] 709 | | Ok(data_address) => Some(data_address), [INFO] [stdout] 710 | | Err(_) => None, [INFO] [stdout] 711 | | } [INFO] [stdout] | |_________^ help: replace with: `DataAddress::from_hex(&data_address).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/files/directory.rs:764:27 [INFO] [stdout] | [INFO] [stdout] 764 | ... let message = format!( [INFO] [stdout] | _____________________^ [INFO] [stdout] 765 | | ... "get_content_using_hex() failed to access data from network using data_address: '{:?}' or datamap_chunk: '{:?}' - {e}", [INFO] [stdout] 766 | | ... data_address, datamap_chunk, [INFO] [stdout] 767 | | ... ); [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ignore_pointer` [INFO] [stdout] --> src/web/fetch.rs:203:14 [INFO] [stdout] | [INFO] [stdout] 203 | let (ignore_pointer, minimum_entry_index) = if dweb_host.version.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ignore_pointer` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `minimum_entry_index` [INFO] [stdout] --> src/web/fetch.rs:203:30 [INFO] [stdout] | [INFO] [stdout] 203 | let (ignore_pointer, minimum_entry_index) = if dweb_host.version.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minimum_entry_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/helpers/convert.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | / if str.len() > HISTORY_ADDRESS_LEN { [INFO] [stdout] 36 | | if let Ok(datamap_chunk) = DataMapChunk::from_hex(str) { [INFO] [stdout] 37 | | return Ok(datamap_chunk); [INFO] [stdout] 38 | | }; [INFO] [stdout] 39 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 35 ~ if str.len() > HISTORY_ADDRESS_LEN [INFO] [stdout] 36 ~ && let Ok(datamap_chunk) = DataMapChunk::from_hex(str) { [INFO] [stdout] 37 | return Ok(datamap_chunk); [INFO] [stdout] 38 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helpers/convert.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | return (None, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 131 - return (None, None); [INFO] [stdout] 131 + (None, None) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helpers/convert.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | return (None, None, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 161 - return (None, None, None); [INFO] [stdout] 161 + (None, None, None) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/helpers/convert.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | / if let Ok(lock) = &mut HISTORY_NAMES.lock() { [INFO] [stdout] 156 | | if let Some(history_address) = lock.get(datamap_address_or_name).copied() { [INFO] [stdout] 157 | | return (None, Some(history_address), None); [INFO] [stdout] 158 | | } [INFO] [stdout] 159 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 155 ~ if let Ok(lock) = &mut HISTORY_NAMES.lock() [INFO] [stdout] 156 ~ && let Some(history_address) = lock.get(datamap_address_or_name).copied() { [INFO] [stdout] 157 | return (None, Some(history_address), None); [INFO] [stdout] 158 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helpers/convert.rs:183:5 [INFO] [stdout] | [INFO] [stdout] 183 | return (None, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 183 - return (None, None); [INFO] [stdout] 183 + (None, None) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/helpers/convert.rs:177:5 [INFO] [stdout] | [INFO] [stdout] 177 | / if let Ok(lock) = &mut HISTORY_NAMES.lock() { [INFO] [stdout] 178 | | if let Some(history_address) = lock.get(address_or_name).copied() { [INFO] [stdout] 179 | | return (Some(history_address), None); [INFO] [stdout] 180 | | } [INFO] [stdout] 181 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 177 ~ if let Ok(lock) = &mut HISTORY_NAMES.lock() [INFO] [stdout] 178 ~ && let Some(history_address) = lock.get(address_or_name).copied() { [INFO] [stdout] 179 | return (Some(history_address), None); [INFO] [stdout] 180 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/helpers/convert.rs:202:8 [INFO] [stdout] | [INFO] [stdout] 202 | if port >= MIN_SERVER_PORT && port <= MAX_SERVER_PORT { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(MIN_SERVER_PORT..=MAX_SERVER_PORT).contains(&port)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/helpers/convert.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | &str[AWE_PROTOCOL_HISTORY.len()..] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/helpers/convert.rs:231:15 [INFO] [stdout] | [INFO] [stdout] 231 | let str = if str.starts_with(AWE_PROTOCOL_HISTORY) { [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] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 231 ~ let str = if let Some() = str.strip_prefix(AWE_PROTOCOL_HISTORY) { [INFO] [stdout] 232 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/convert.rs:234:9 [INFO] [stdout] | [INFO] [stdout] 234 | &str [INFO] [stdout] | ^^^^ help: change this to: `str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/helpers/convert.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | &str[AWE_PROTOCOL_HISTORY.len()..] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/helpers/convert.rs:247:15 [INFO] [stdout] | [INFO] [stdout] 247 | let str = if str.starts_with(AWE_PROTOCOL_HISTORY) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 247 ~ let str = if let Some() = str.strip_prefix(AWE_PROTOCOL_HISTORY) { [INFO] [stdout] 248 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/convert.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | &str [INFO] [stdout] | ^^^^ help: change this to: `str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/helpers/convert.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | &str[AWE_PROTOCOL_DIRECTORY.len()..] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/helpers/convert.rs:260:15 [INFO] [stdout] | [INFO] [stdout] 260 | let str = if str.starts_with(AWE_PROTOCOL_DIRECTORY) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 260 ~ let str = if let Some() = str.strip_prefix(AWE_PROTOCOL_DIRECTORY) { [INFO] [stdout] 261 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/helpers/convert.rs:263:9 [INFO] [stdout] | [INFO] [stdout] 263 | &str[AWE_PROTOCOL_FILE.len()..] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/helpers/convert.rs:262:12 [INFO] [stdout] | [INFO] [stdout] 262 | } else if str.starts_with(AWE_PROTOCOL_FILE) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 262 ~ } else if let Some() = str.strip_prefix(AWE_PROTOCOL_FILE) { [INFO] [stdout] 263 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/convert.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 265 | &str [INFO] [stdout] | ^^^^ help: change this to: `str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/helpers/convert.rs:281:9 [INFO] [stdout] | [INFO] [stdout] 281 | &str[AWE_PROTOCOL_DIRECTORY.len()..] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/helpers/convert.rs:280:15 [INFO] [stdout] | [INFO] [stdout] 280 | let str = if str.starts_with(AWE_PROTOCOL_DIRECTORY) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 280 ~ let str = if let Some() = str.strip_prefix(AWE_PROTOCOL_DIRECTORY) { [INFO] [stdout] 281 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/helpers/convert.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | &str[AWE_PROTOCOL_FILE.len()..] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/helpers/convert.rs:282:12 [INFO] [stdout] | [INFO] [stdout] 282 | } else if str.starts_with(AWE_PROTOCOL_FILE) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 282 ~ } else if let Some() = str.strip_prefix(AWE_PROTOCOL_FILE) { [INFO] [stdout] 283 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/convert.rs:285:9 [INFO] [stdout] | [INFO] [stdout] 285 | &str [INFO] [stdout] | ^^^^ help: change this to: `str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `main_owner` after checking its variant with `is_none` [INFO] [stdout] --> src/helpers/graph_entry.rs:64:41 [INFO] [stdout] | [INFO] [stdout] 60 | if main_owner.is_none() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = main_owner` [INFO] [stdout] ... [INFO] [stdout] 64 | let descendent_public_key = main_owner [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 65 | | .unwrap() [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/helpers/graph_entry.rs:47:22 [INFO] [stdout] | [INFO] [stdout] 47 | let parents = if graph_entry.parents.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!graph_entry.parents.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/helpers/graph_entry.rs:59:26 [INFO] [stdout] | [INFO] [stdout] 59 | let descendents = if graph_entry.descendants.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!graph_entry.descendants.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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/graph_entry.rs:63:68 [INFO] [stdout] | [INFO] [stdout] 63 | let derivation_index = get_derivation_from_graph_entry(&graph_entry); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `graph_entry` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/helpers/graph_entry.rs:64:41 [INFO] [stdout] | [INFO] [stdout] 64 | let descendent_public_key = main_owner [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 65 | | .unwrap() [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/helpers/graph_entry.rs:66:30 [INFO] [stdout] | [INFO] [stdout] 66 | .derive_key(&derivation_index.unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/helpers/graph_entry.rs:81:21 [INFO] [stdout] | [INFO] [stdout] 81 | hex::encode(&graph_entry.content), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `graph_entry.content` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helpers/graph_entry.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | return Err(eyre!(msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 146 - return Err(eyre!(msg)); [INFO] [stdout] 146 + Err(eyre!(msg)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/graph_entry.rs:172:25 [INFO] [stdout] | [INFO] [stdout] 172 | .derive_key(&new_derivation) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `new_derivation` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fixed_dweb_host_tag` [INFO] [stdout] --> src/web/name.rs:251:9 [INFO] [stdout] | [INFO] [stdout] 251 | let fixed_dweb_host_tag = String::from(FIXED_WEBNAME_SEPARATOR) + "-"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fixed_dweb_host_tag` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/helpers/graph_entry.rs:182:21 [INFO] [stdout] | [INFO] [stdout] 182 | hex::encode(&history_secret_key.to_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `history_secret_key.to_bytes()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `found_version_segment` is assigned to, but never used [INFO] [stdout] --> src/web/name.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | let mut found_version_segment = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_found_version_segment` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `found_version_segment` is never read [INFO] [stdout] --> src/web/name.rs:274:29 [INFO] [stdout] | [INFO] [stdout] 274 | ... found_version_segment = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/helpers/graph_entry.rs:186:21 [INFO] [stdout] | [INFO] [stdout] 186 | hex::encode(&next_public_key.to_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `next_public_key.to_bytes()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/helpers/graph_entry.rs:188:26 [INFO] [stdout] | [INFO] [stdout] 188 | let parents_str = if parents.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!parents.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: manual implementation of an assign operation [INFO] [stdout] --> src/helpers/retry.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | try_number = try_number + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `try_number += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/helpers/web.rs:67:48 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn json_date_to_metadata_date(date_string: &String) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 67 - pub fn json_date_to_metadata_date(date_string: &String) -> Result { [INFO] [stdout] 67 + pub fn json_date_to_metadata_date(date_string: &str) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/helpers/web.rs:84:17 [INFO] [stdout] | [INFO] [stdout] 84 | json_string = json_string + ",\n"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `json_string += ",\n"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/helpers/web.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | directory_size = directory_size + file_size; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `directory_size += file_size` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/helpers/web.rs:103:12 [INFO] [stdout] | [INFO] [stdout] 103 | if path.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!path.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: manual implementation of an assign operation [INFO] [stdout] --> src/helpers/web.rs:105:17 [INFO] [stdout] | [INFO] [stdout] 105 | json_string = json_string + ",\n"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `json_string += ",\n"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helpers/mod.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | return Err(eyre!(message)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 50 - return Err(eyre!(message)); [INFO] [stdout] 50 + Err(eyre!(message)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/history.rs:141:5 [INFO] [stdout] | [INFO] [stdout] 141 | /// a standard web browser, including viewing every version published on Autonomi (similar [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 141 | /// a standard web browser, including viewing every version published on Autonomi (similar [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/history.rs:142:5 [INFO] [stdout] | [INFO] [stdout] 142 | /// to the Internet Archive). [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 142 | /// to the Internet Archive). [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/history.rs:144:5 [INFO] [stdout] | [INFO] [stdout] 144 | /// amounting to a versioned history for any struct impl Trove. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 144 | /// amounting to a versioned history for any struct impl Trove. [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/history.rs:199:48 [INFO] [stdout] | [INFO] [stdout] 199 | let spends = Spends::new(&client, Some(&"History create online cost: ")).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"History create online cost: "` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:360:31 [INFO] [stdout] | [INFO] [stdout] 360 | Err(e) => return Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 360 - Err(e) => return Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] 360 + Err(e) => Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:363:23 [INFO] [stdout] | [INFO] [stdout] 363 | Err(e) => return Err(eyre!("DEBUG failed to get history prior to update!\n{e}")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 363 - Err(e) => return Err(eyre!("DEBUG failed to get history prior to update!\n{e}")), [INFO] [stdout] 363 + Err(e) => Err(eyre!("DEBUG failed to get history prior to update!\n{e}")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/history.rs:296:53 [INFO] [stdout] | [INFO] [stdout] 296 | let spends = Spends::new(&self.client, Some(&"History update online cost: ")).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"History update online cost: "` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HistoryAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:297:68 [INFO] [stdout] | [INFO] [stdout] 297 | let pointer_address = pointer_address_from_history_address(history_address.clone())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `history_address` [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: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/history.rs:301:36 [INFO] [stdout] | [INFO] [stdout] 301 | let head_address = self.head_graphentry.clone().unwrap().address(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_private_key` is never used [INFO] [stdout] --> src/autonomi/wallet/encryption.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn encrypt_private_key(private_key: &str, password: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `store_private_key` is never used [INFO] [stdout] --> src/autonomi/wallet/fs.rs:41:15 [INFO] [stdout] | [INFO] [stdout] 41 | pub(crate) fn store_private_key( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `confirm_password` is never used [INFO] [stdout] --> src/autonomi/wallet/input.rs:30:15 [INFO] [stdout] | [INFO] [stdout] 30 | pub(crate) fn confirm_password(password: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `request_password` is never used [INFO] [stdout] --> src/autonomi/wallet/input.rs:43:15 [INFO] [stdout] | [INFO] [stdout] 43 | pub(crate) fn request_password(required: bool) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `dweb_host_string` and `version` are never read [INFO] [stdout] --> src/cache/directory_with_name.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 78 | pub struct DirectoryVersionWithName { [INFO] [stdout] | ------------------------ fields in this struct [INFO] [stdout] 79 | /// The 'v[VERSION].DWEB-NAME.www-dweb.au' part of a dweb URL (see dweb::web::name) [INFO] [stdout] 80 | dweb_host_string: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | version: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DirectoryVersionWithName` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `json_string` is never read [INFO] [stdout] --> src/files/directory.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 76 | pub struct JsonSettings { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 77 | json_string: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `JsonSettings` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/history.rs:333:21 [INFO] [stdout] | [INFO] [stdout] 333 | &"pointer_update()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `"pointer_update()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `create_pointer_for_update` is never used [INFO] [stdout] --> src/history.rs:653:8 [INFO] [stdout] | [INFO] [stdout] 184 | impl + Clone> History { [INFO] [stdout] | ------------------------------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 653 | fn create_pointer_for_update( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_files_in_path_recursively` is never used [INFO] [stdout] --> src/storage.rs:736:4 [INFO] [stdout] | [INFO] [stdout] 736 | fn count_files_in_path_recursively(directory_path: &PathBuf) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:344:29 [INFO] [stdout] | [INFO] [stdout] 344 | ... return Err(eyre!("Failed to add a trove to history: {e:?}")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 344 - return Err(eyre!("Failed to add a trove to history: {e:?}")); [INFO] [stdout] 344 + Err(eyre!("Failed to add a trove to history: {e:?}")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is an outer doc comment and does not apply to the parent module or crate [INFO] [stdout] --> src/api/mod.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | / ///! A Rust interface to dweb server APIs [INFO] [stdout] 21 | | ///! [INFO] [stdout] 22 | | ///! TODO keep this and the with ports APIs in sync [INFO] [stdout] | |___________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_doc_comments [INFO] [stdout] = note: `#[warn(clippy::suspicious_doc_comments)]` on by default [INFO] [stdout] help: use an inner doc comment to document the parent module or crate [INFO] [stdout] | [INFO] [stdout] 20 + //! A Rust interface to dweb server APIs [INFO] [stdout] 21 + //! [INFO] [stdout] 22 + //! TODO keep this and the with ports APIs in sync [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/history.rs:442:12 [INFO] [stdout] | [INFO] [stdout] 442 | if ignore_pointer || (!ignore_pointer && minimum_entry_index > pointer.counter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 442 - if ignore_pointer || (!ignore_pointer && minimum_entry_index > pointer.counter()) { [INFO] [stdout] 442 + if !(!ignore_pointer && minimum_entry_index <= pointer.counter()) { [INFO] [stdout] | [INFO] [stdout] 442 - if ignore_pointer || (!ignore_pointer && minimum_entry_index > pointer.counter()) { [INFO] [stdout] 442 + if ignore_pointer || minimum_entry_index > pointer.counter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HistoryAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:402:68 [INFO] [stdout] | [INFO] [stdout] 402 | let pointer_address = pointer_address_from_history_address(history_address.clone())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `history_address` [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: useless conversion to the same type: `color_eyre::Report` [INFO] [stdout] --> src/history.rs:411:28 [INFO] [stdout] | [INFO] [stdout] 411 | return Err(e.into()); [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stdout] | [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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/history.rs:534:12 [INFO] [stdout] | [INFO] [stdout] 534 | if ignore_pointer || (!ignore_pointer && minimum_entry_index > pointer.counter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 534 - if ignore_pointer || (!ignore_pointer && minimum_entry_index > pointer.counter()) { [INFO] [stdout] 534 + if !(!ignore_pointer && minimum_entry_index <= pointer.counter()) { [INFO] [stdout] | [INFO] [stdout] 534 - if ignore_pointer || (!ignore_pointer && minimum_entry_index > pointer.counter()) { [INFO] [stdout] 534 + if ignore_pointer || minimum_entry_index > pointer.counter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HistoryAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:497:68 [INFO] [stdout] | [INFO] [stdout] 497 | let pointer_address = pointer_address_from_history_address(history_address.clone())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `history_address` [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: useless conversion to the same type: `color_eyre::Report` [INFO] [stdout] --> src/history.rs:506:28 [INFO] [stdout] | [INFO] [stdout] 506 | return Err(e.into()); [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/history.rs:580:23 [INFO] [stdout] | [INFO] [stdout] 580 | return Ok(self.head_graphentry.clone().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HistoryAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:584:68 [INFO] [stdout] | [INFO] [stdout] 584 | let pointer_address = pointer_address_from_history_address(self.history_address.clone())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.history_address` [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: useless conversion to the same type: `color_eyre::Report` [INFO] [stdout] --> src/history.rs:593:28 [INFO] [stdout] | [INFO] [stdout] 593 | return Err(e.into()); [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/history.rs:618:23 [INFO] [stdout] | [INFO] [stdout] 618 | return Ok(self.head_graphentry.clone().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/history.rs:639:17 [INFO] [stdout] | [INFO] [stdout] 639 | iter_index = iter_index + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `iter_index += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/history.rs:640:17 [INFO] [stdout] | [INFO] [stdout] 640 | final_index = final_index + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `final_index += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/history.rs:667:42 [INFO] [stdout] | [INFO] [stdout] 667 | let derivation_index: [u8; 32] = Self::trove_type().xorname().to_vec().try_into().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:684:9 [INFO] [stdout] | [INFO] [stdout] 684 | return HistoryAddress::new(history_secret_key.public_key()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 684 - return HistoryAddress::new(history_secret_key.public_key()); [INFO] [stdout] 684 + HistoryAddress::new(history_secret_key.public_key()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/history.rs:691:13 [INFO] [stdout] | [INFO] [stdout] 691 | &HISTORY_POINTER_DERIVATION_INDEX, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `HISTORY_POINTER_DERIVATION_INDEX` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/history.rs:720:32 [INFO] [stdout] | [INFO] [stdout] 720 | self.default_version = match self.num_versions() { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 721 | | Ok(version) => Some(version), [INFO] [stdout] 722 | | Err(_) => None, [INFO] [stdout] 723 | | }; [INFO] [stdout] | |_________^ help: replace with: `self.num_versions().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HistoryAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:736:9 [INFO] [stdout] | [INFO] [stdout] 736 | self.history_address.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.history_address` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/history.rs:780:13 [INFO] [stdout] | [INFO] [stdout] 780 | &"autonomi_get_file_public()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"autonomi_get_file_public()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/history.rs:838:21 [INFO] [stdout] | [INFO] [stdout] 838 | / if let Some(head) = self.get_head_entry().await? { [INFO] [stdout] 839 | | if let Ok(archive_address) = [INFO] [stdout] 840 | | ArchiveAddress::from_hex(&hex::encode(head.content)) [INFO] [stdout] ... | [INFO] [stdout] 844 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 838 ~ if let Some(head) = self.get_head_entry().await? [INFO] [stdout] 839 ~ && let Ok(archive_address) = [INFO] [stdout] 840 | ArchiveAddress::from_hex(&hex::encode(head.content)) [INFO] [stdout] 841 | { [INFO] [stdout] 842 | return Ok(archive_address); [INFO] [stdout] 843 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `head` after checking its variant with `is_some` [INFO] [stdout] --> src/history.rs:906:25 [INFO] [stdout] | [INFO] [stdout] 905 | if head.is_some() { [INFO] [stdout] | ----------------- help: try: `if let Some() = head` [INFO] [stdout] 906 | head.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `root` after checking its variant with `is_some` [INFO] [stdout] --> src/history.rs:932:25 [INFO] [stdout] | [INFO] [stdout] 931 | if root.is_some() { [INFO] [stdout] | ----------------- help: try: `if let Some() = root` [INFO] [stdout] 932 | root.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/history.rs:906:25 [INFO] [stdout] | [INFO] [stdout] 906 | head.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/history.rs:917:17 [INFO] [stdout] | [INFO] [stdout] 917 | iter_index = iter_index - 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `iter_index -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/history.rs:932:25 [INFO] [stdout] | [INFO] [stdout] 932 | root.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/history.rs:945:17 [INFO] [stdout] | [INFO] [stdout] 945 | iter_index = iter_index + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `iter_index += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/history.rs:970:9 [INFO] [stdout] | [INFO] [stdout] 970 | Ok(graph_entry_get(&self.client.client, graph_entry_address, check_exists).await?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 970 - Ok(graph_entry_get(&self.client.client, graph_entry_address, check_exists).await?) [INFO] [stdout] 970 + graph_entry_get(&self.client.client, graph_entry_address, check_exists).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/history.rs:1022:9 [INFO] [stdout] | [INFO] [stdout] 1022 | / match self [INFO] [stdout] 1023 | | .get_graph_entry_from_network(&child, check_exists) [INFO] [stdout] 1024 | | .await [INFO] [stdout] ... | [INFO] [stdout] 1027 | | Err(_) => None, [INFO] [stdout] 1028 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] help: replace with [INFO] [stdout] | [INFO] [stdout] 1022 ~ self [INFO] [stdout] 1023 + .get_graph_entry_from_network(&child, check_exists) [INFO] [stdout] 1024 + .await.ok() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/history.rs:1033:9 [INFO] [stdout] | [INFO] [stdout] 1033 | / if let Some(trove_version) = &self.cached_version { [INFO] [stdout] 1034 | | if trove_version.trove.is_some() { [INFO] [stdout] 1035 | | return Some(trove_version.version); [INFO] [stdout] 1036 | | } [INFO] [stdout] 1037 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1033 ~ if let Some(trove_version) = &self.cached_version [INFO] [stdout] 1034 ~ && trove_version.trove.is_some() { [INFO] [stdout] 1035 | return Some(trove_version.version); [INFO] [stdout] 1036 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1123:17 [INFO] [stdout] | [INFO] [stdout] 1123 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1123 - return Ok(()); [INFO] [stdout] 1123 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1125:23 [INFO] [stdout] | [INFO] [stdout] 1125 | Err(e) => return Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1125 - Err(e) => return Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] 1125 + Err(e) => Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/history.rs:1103:13 [INFO] [stdout] | [INFO] [stdout] 1103 | &"pointer_put()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `"pointer_put()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1114:21 [INFO] [stdout] | [INFO] [stdout] 1114 | return Err(eyre!("Failed to put pointer: {e:?}")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1114 - return Err(eyre!("Failed to put pointer: {e:?}")); [INFO] [stdout] 1114 + Err(eyre!("Failed to put pointer: {e:?}")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1174:25 [INFO] [stdout] | [INFO] [stdout] 1174 | return Ok(self.pointer_counter); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1174 - return Ok(self.pointer_counter); [INFO] [stdout] 1174 + Ok(self.pointer_counter) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1176:31 [INFO] [stdout] | [INFO] [stdout] 1176 | Err(e) => return Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1176 - Err(e) => return Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] 1176 + Err(e) => Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1179:23 [INFO] [stdout] | [INFO] [stdout] 1179 | Err(e) => return Err(eyre!("DEBUG failed to get history for update!\n{e}")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1179 - Err(e) => return Err(eyre!("DEBUG failed to get history for update!\n{e}")), [INFO] [stdout] 1179 + Err(e) => Err(eyre!("DEBUG failed to get history for update!\n{e}")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HistoryAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:1144:68 [INFO] [stdout] | [INFO] [stdout] 1144 | let pointer_address = pointer_address_from_history_address(history_address.clone())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `history_address` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/history.rs:1154:21 [INFO] [stdout] | [INFO] [stdout] 1154 | &"pointer_update()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `"pointer_update()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1165:29 [INFO] [stdout] | [INFO] [stdout] 1165 | ... return Err(eyre!("Failed to update pointer: {e:?}")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1165 - return Err(eyre!("Failed to update pointer: {e:?}")); [INFO] [stdout] 1165 + Err(eyre!("Failed to update pointer: {e:?}")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `DataAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:1251:68 [INFO] [stdout] | [INFO] [stdout] 1251 | self.cached_version = Some(TroveVersion::::new(version, trove_address.clone(), None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*trove_address` [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: called `unwrap` on `version` after checking its variant with `is_some` [INFO] [stdout] --> src/history.rs:1269:13 [INFO] [stdout] | [INFO] [stdout] 1268 | let mut version = if version.is_some() { [INFO] [stdout] | -------------------- help: try: `if let Some() = version` [INFO] [stdout] 1269 | version.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.default_version` after checking its variant with `is_some` [INFO] [stdout] --> src/history.rs:1276:27 [INFO] [stdout] | [INFO] [stdout] 1275 | if self.default_version.is_some() { [INFO] [stdout] | --------------------------------- help: try: `if let Some() = self.default_version` [INFO] [stdout] 1276 | version = self.default_version.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/history.rs:1269:13 [INFO] [stdout] | [INFO] [stdout] 1269 | version.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/history.rs:1276:27 [INFO] [stdout] | [INFO] [stdout] 1276 | version = self.default_version.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/history.rs:1291:9 [INFO] [stdout] | [INFO] [stdout] 1291 | / if let Some(trove_version) = &self.cached_version { [INFO] [stdout] 1292 | | if trove_version.version == version && trove_version.trove.is_some() { [INFO] [stdout] 1293 | | return trove_version.trove.clone(); [INFO] [stdout] 1294 | | } [INFO] [stdout] 1295 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1291 ~ if let Some(trove_version) = &self.cached_version [INFO] [stdout] 1292 ~ && trove_version.version == version && trove_version.trove.is_some() { [INFO] [stdout] 1293 | return trove_version.trove.clone(); [INFO] [stdout] 1294 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/history.rs:1319:9 [INFO] [stdout] | [INFO] [stdout] 1319 | / if let Some(cached_version) = &self.cached_version { [INFO] [stdout] 1320 | | Some(cached_version.clone()) [INFO] [stdout] 1321 | | } else { [INFO] [stdout] 1322 | | None [INFO] [stdout] 1323 | | } [INFO] [stdout] | |_________^ help: try: `self.cached_version.as_ref().map(|cached_version| cached_version.clone())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/history.rs:1329:9 [INFO] [stdout] | [INFO] [stdout] 1329 | / if let Some(trove_version) = &self.cached_version { [INFO] [stdout] 1330 | | if trove_version.version == version { [INFO] [stdout] 1331 | | println!( [INFO] [stdout] 1332 | | "DEBUG get_trove_address_from_history() returning cached trove address: {}", [INFO] [stdout] ... | [INFO] [stdout] 1337 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1329 ~ if let Some(trove_version) = &self.cached_version [INFO] [stdout] 1330 ~ && trove_version.version == version { [INFO] [stdout] 1331 | println!( [INFO] [stdout] ... [INFO] [stdout] 1335 | return Ok(trove_version.trove_address.clone()); [INFO] [stdout] 1336 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `DataAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:1335:27 [INFO] [stdout] | [INFO] [stdout] 1335 | return Ok(trove_version.trove_address.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `trove_version.trove_address` [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: manual implementation of `Option::map` [INFO] [stdout] --> src/history.rs:1367:9 [INFO] [stdout] | [INFO] [stdout] 1367 | / match &self.trove { [INFO] [stdout] 1368 | | Some(trove) => Some(trove.clone()), [INFO] [stdout] 1369 | | None => None, [INFO] [stdout] 1370 | | } [INFO] [stdout] | |_________^ help: try: `self.trove.as_ref().map(|trove| trove.clone())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/history.rs:1378:38 [INFO] [stdout] | [INFO] [stdout] 1378 | let derivation_index: [u8; 32] = HISTORY_POINTER_DERIVATION_INDEX [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 1379 | | .as_bytes() [INFO] [stdout] 1380 | | .try_into() [INFO] [stdout] 1381 | | .unwrap(); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1424:17 [INFO] [stdout] | [INFO] [stdout] 1424 | return Err(eyre!(message)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1424 - return Err(eyre!(message)); [INFO] [stdout] 1424 + Err(eyre!(message)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/history.rs:1404:25 [INFO] [stdout] | [INFO] [stdout] 1404 | format!("Error - pointer retrieved from network has INVALID SIGNATURE"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Error - pointer retrieved from network has INVALID SIGNATURE".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage.rs:249:13 [INFO] [stdout] | [INFO] [stdout] 249 | return Err(eyre!(message)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 249 - return Err(eyre!(message)); [INFO] [stdout] 249 + Err(eyre!(message)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:77:27 [INFO] [stdout] | [INFO] [stdout] 77 | check_path_for_upload(&files_root)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `files_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:165:56 [INFO] [stdout] | [INFO] [stdout] 165 | let (cost, mut archive) = publish_files_public(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^ help: change this to: `client` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:165:65 [INFO] [stdout] | [INFO] [stdout] 165 | let (cost, mut archive) = publish_files_public(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `files_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/storage.rs:167:30 [INFO] [stdout] | [INFO] [stdout] 167 | .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 167 - .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] 167 + .inspect_err(|e| println!("{e}"))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/storage.rs:169:28 [INFO] [stdout] | [INFO] [stdout] 169 | let data_address = DataAddress::from_hex(DWEB_DIRECTORY_HISTORY_CONTENT).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:177:57 [INFO] [stdout] | [INFO] [stdout] 177 | let (cost, mut archive) = publish_files_private(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^ help: change this to: `client` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:177:66 [INFO] [stdout] | [INFO] [stdout] 177 | let (cost, mut archive) = publish_files_private(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `files_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/storage.rs:179:30 [INFO] [stdout] | [INFO] [stdout] 179 | .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 179 - .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] 179 + .inspect_err(|e| println!("{e}"))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/storage.rs:181:29 [INFO] [stdout] | [INFO] [stdout] 181 | let datamap_chunk = DataMapChunk::from_hex(DWEB_DIRECTORY_HISTORY_DATAMAPCHUNK).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | &"Storing archive as bytes with data_put_public()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"Storing archive as bytes with data_put_public()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/storage.rs:230:18 [INFO] [stdout] | [INFO] [stdout] 230 | total_cost = total_cost.unwrap().checked_add(archive_cost).or(total_cost); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/storage.rs:238:26 [INFO] [stdout] | [INFO] [stdout] 238 | total_cost = total_cost.unwrap().checked_add(update_cost).or(total_cost); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/storage.rs:240:17 [INFO] [stdout] | [INFO] [stdout] 240 | total_cost.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/storage.rs:254:1 [INFO] [stdout] | [INFO] [stdout] 254 | / pub fn report_content_published_or_updated( [INFO] [stdout] 255 | | history_address: &HistoryAddress, [INFO] [stdout] 256 | | name: &String, [INFO] [stdout] 257 | | version: u64, [INFO] [stdout] ... | [INFO] [stdout] 262 | | is_awe: bool, [INFO] [stdout] 263 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `files_root` after checking its variant with `is_some` [INFO] [stdout] --> src/storage.rs:273:9 [INFO] [stdout] | [INFO] [stdout] 272 | let files_root = if files_root.is_some() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = files_root` [INFO] [stdout] 273 | files_root.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/storage.rs:259:17 [INFO] [stdout] | [INFO] [stdout] 259 | files_root: &PathBuf, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 259 - files_root: &PathBuf, [INFO] [stdout] 259 + files_root: &Path, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/storage.rs:265:34 [INFO] [stdout] | [INFO] [stdout] 265 | let type_str = if is_website { "CONTENT" } else { "CONTENT" }; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/storage.rs:265:53 [INFO] [stdout] | [INFO] [stdout] 265 | let type_str = if is_website { "CONTENT" } else { "CONTENT" }; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/storage.rs:273:9 [INFO] [stdout] | [INFO] [stdout] 273 | files_root.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:318:52 [INFO] [stdout] | [INFO] [stdout] 318 | let (cost, archive) = publish_files_public(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^ help: change this to: `client` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:318:61 [INFO] [stdout] | [INFO] [stdout] 318 | let (cost, archive) = publish_files_public(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `files_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/storage.rs:320:30 [INFO] [stdout] | [INFO] [stdout] 320 | .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 320 - .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] 320 + .inspect_err(|e| println!("{e}"))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:327:53 [INFO] [stdout] | [INFO] [stdout] 327 | let (cost, archive) = publish_files_private(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^ help: change this to: `client` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:327:62 [INFO] [stdout] | [INFO] [stdout] 327 | let (cost, archive) = publish_files_private(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `files_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/storage.rs:329:30 [INFO] [stdout] | [INFO] [stdout] 329 | .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 329 - .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] 329 + .inspect_err(|e| println!("{e}"))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:340:9 [INFO] [stdout] | [INFO] [stdout] 340 | &"Storing archive as bytes with data_put_public()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"Storing archive as bytes with data_put_public()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:414:13 [INFO] [stdout] | [INFO] [stdout] 414 | &"file_content_upload_public()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"file_content_upload_public()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage.rs:424:21 [INFO] [stdout] | [INFO] [stdout] 424 | return Err(e.into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 424 - return Err(e.into()); [INFO] [stdout] 424 + Err(e.into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:510:13 [INFO] [stdout] | [INFO] [stdout] 510 | &"file_content_upload_public()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"file_content_upload_public()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage.rs:520:21 [INFO] [stdout] | [INFO] [stdout] 520 | return Err(e.into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 520 - return Err(e.into()); [INFO] [stdout] 520 + Err(e.into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage.rs:598:19 [INFO] [stdout] | [INFO] [stdout] 598 | Err(e) => return Err(eyre!("Failed to upload directory tree: {e}")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 598 - Err(e) => return Err(eyre!("Failed to upload directory tree: {e}")), [INFO] [stdout] 598 + Err(e) => Err(eyre!("Failed to upload directory tree: {e}")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage.rs:630:19 [INFO] [stdout] | [INFO] [stdout] 630 | Err(e) => return Err(eyre!("Failed to upload directory tree: {e}")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 630 - Err(e) => return Err(eyre!("Failed to upload directory tree: {e}")), [INFO] [stdout] 630 + Err(e) => Err(eyre!("Failed to upload directory tree: {e}")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: try not to call a closure in the expression where it is declared [INFO] [stdout] --> src/storage.rs:642:24 [INFO] [stdout] | [INFO] [stdout] 642 | .unwrap_or(|path: &PathBuf| -> PathBuf { [INFO] [stdout] | ________________________^ [INFO] [stdout] 643 | | let mut prefix = PathBuf::new(); [INFO] [stdout] 644 | | let mut components = path.components(); [INFO] [stdout] 645 | | if let Some(first) = components.next() { [INFO] [stdout] ... | [INFO] [stdout] 662 | | prefix [INFO] [stdout] 663 | | }(&path)); [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stdout] = note: `#[warn(clippy::redundant_closure_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/storage.rs:647:46 [INFO] [stdout] | [INFO] [stdout] 647 | prefix = prefix.join(&ARCHIVE_PATH_SEPARATOR.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `ARCHIVE_PATH_SEPARATOR.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: try not to call a closure in the expression where it is declared [INFO] [stdout] --> src/storage.rs:683:24 [INFO] [stdout] | [INFO] [stdout] 683 | .unwrap_or(|path: &PathBuf| -> PathBuf { [INFO] [stdout] | ________________________^ [INFO] [stdout] 684 | | let mut prefix = PathBuf::new(); [INFO] [stdout] 685 | | let mut components = path.components(); [INFO] [stdout] 686 | | if let Some(first) = components.next() { [INFO] [stdout] ... | [INFO] [stdout] 703 | | prefix [INFO] [stdout] 704 | | }(&path)); [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/storage.rs:688:46 [INFO] [stdout] | [INFO] [stdout] 688 | prefix = prefix.join(&ARCHIVE_PATH_SEPARATOR.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `ARCHIVE_PATH_SEPARATOR.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:720:33 [INFO] [stdout] | [INFO] [stdout] 720 | if !does_path_contain_files(&files_root) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `files_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `ShowCost` which implements the `Copy` trait [INFO] [stdout] --> src/token.rs:54:25 [INFO] [stdout] | [INFO] [stdout] 54 | let show_cost = client.api_control.show_dweb_costs.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `client.api_control.show_dweb_costs` [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: unneeded `return` statement [INFO] [stdout] --> src/token.rs:211:9 [INFO] [stdout] | [INFO] [stdout] 211 | return format!("{RATE_VAR_PREFIX}{ticker}"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 211 - return format!("{RATE_VAR_PREFIX}{ticker}"); [INFO] [stdout] 211 + format!("{RATE_VAR_PREFIX}{ticker}") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/token.rs:238:30 [INFO] [stdout] | [INFO] [stdout] 238 | self.currency.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `app_id` after checking its variant with `is_some` [INFO] [stdout] --> src/types.rs:106:60 [INFO] [stdout] | [INFO] [stdout] 105 | if app_id.is_some() { [INFO] [stdout] | ------------------- help: try: `if let Some() = app_id` [INFO] [stdout] 106 | type_owner_secret = type_owner_secret.derive_child(app_id.unwrap().as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `supplied_name` after checking its variant with `is_some` [INFO] [stdout] --> src/types.rs:110:40 [INFO] [stdout] | [INFO] [stdout] 109 | if supplied_name.is_some() { [INFO] [stdout] | -------------------------- help: try: `if let Some() = supplied_name` [INFO] [stdout] 110 | type_owner_secret.derive_child(supplied_name.unwrap().as_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/types.rs:99:45 [INFO] [stdout] | [INFO] [stdout] 99 | supplied_derivation_index.unwrap_or(type_derivation_index.as_bytes().try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/types.rs:106:60 [INFO] [stdout] | [INFO] [stdout] 106 | type_owner_secret = type_owner_secret.derive_child(app_id.unwrap().as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/types.rs:110:40 [INFO] [stdout] | [INFO] [stdout] 110 | type_owner_secret.derive_child(supplied_name.unwrap().as_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `supplied_name` after checking its variant with `is_some` [INFO] [stdout] --> src/types.rs:132:40 [INFO] [stdout] | [INFO] [stdout] 131 | if supplied_name.is_some() { [INFO] [stdout] | -------------------------- help: try: `if let Some() = supplied_name` [INFO] [stdout] 132 | type_owner_secret.derive_child(supplied_name.unwrap().as_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/types.rs:125:45 [INFO] [stdout] | [INFO] [stdout] 125 | supplied_derivation_index.unwrap_or(type_derivation_index.as_bytes().try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/types.rs:132:40 [INFO] [stdout] | [INFO] [stdout] 132 | type_owner_secret.derive_child(supplied_name.unwrap().as_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `content_type` after checking its variant with `is_some` [INFO] [stdout] --> src/web/fetch.rs:84:25 [INFO] [stdout] | [INFO] [stdout] 83 | let content_type = if content_type.is_some() { [INFO] [stdout] | ------------------------- help: try: `if let Some() = content_type` [INFO] [stdout] 84 | content_type.unwrap().clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `response` after checking its variant with `is_some` [INFO] [stdout] --> src/web/fetch.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 113 | if response.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = response` [INFO] [stdout] 114 | response.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:77:19 [INFO] [stdout] | [INFO] [stdout] 77 | match cache_version_entry [INFO] [stdout] | ___________________^ [INFO] [stdout] 78 | | .directory_tree [INFO] [stdout] 79 | | .unwrap() // Guaranteed to be Some() by directory_version_get() [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:84:25 [INFO] [stdout] | [INFO] [stdout] 84 | content_type.unwrap().clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | response.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `history_address` after checking its variant with `is_none` [INFO] [stdout] --> src/web/fetch.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 163 | let history_address = if history_address.is_none() { [INFO] [stdout] | ---------------------------- help: try: `if let Some() = history_address` [INFO] [stdout] ... [INFO] [stdout] 178 | history_address.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `archive_address` after checking its variant with `is_some` [INFO] [stdout] --> src/web/fetch.rs:183:31 [INFO] [stdout] | [INFO] [stdout] 182 | if archive_address.is_some() { [INFO] [stdout] | ---------------------------- help: try: `if let Some() = archive_address` [INFO] [stdout] 183 | let archive_address = archive_address.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `dweb_host.version` after checking its variant with `is_some` [INFO] [stdout] --> src/web/fetch.rs:204:21 [INFO] [stdout] | [INFO] [stdout] 203 | let (ignore_pointer, minimum_entry_index) = if dweb_host.version.is_some() { [INFO] [stdout] | ------------------------------ help: try: `if let Some() = dweb_host.version` [INFO] [stdout] 204 | (false, dweb_host.version.unwrap() + 1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/web/fetch.rs:189:9 [INFO] [stdout] | [INFO] [stdout] 189 | / return update_cached_directory_version_with_name( [INFO] [stdout] 190 | | &dweb_host, [INFO] [stdout] 191 | | history_address, [INFO] [stdout] 192 | | archive_address, [INFO] [stdout] 193 | | Some(directory_tree), [INFO] [stdout] 194 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 189 ~ update_cached_directory_version_with_name( [INFO] [stdout] 190 + &dweb_host, [INFO] [stdout] 191 + history_address, [INFO] [stdout] 192 + archive_address, [INFO] [stdout] 193 + Some(directory_tree), [INFO] [stdout] 194 ~ ) [INFO] [stdout] 195 | } else { [INFO] [stdout] ... [INFO] [stdout] 286 | return default_result; [INFO] [stdout] 287 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/web/fetch.rs:286:9 [INFO] [stdout] | [INFO] [stdout] 286 | return default_result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 286 ~ default_result [INFO] [stdout] 287 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | history_address.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:183:31 [INFO] [stdout] | [INFO] [stdout] 183 | let archive_address = archive_address.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/web/fetch.rs:190:13 [INFO] [stdout] | [INFO] [stdout] 190 | &dweb_host, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `dweb_host` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:204:21 [INFO] [stdout] | [INFO] [stdout] 204 | (false, dweb_host.version.unwrap() + 1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/web/fetch.rs:230:9 [INFO] [stdout] | [INFO] [stdout] 230 | / if let Some(version) = dweb_host.version { [INFO] [stdout] 231 | | if let Ok(history_versions) = history.num_versions() { [INFO] [stdout] 232 | | if history_versions == 0 { [INFO] [stdout] 233 | | return Err(eyre!("History is empty - no website to display")); [INFO] [stdout] ... | [INFO] [stdout] 242 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 230 ~ if let Some(version) = dweb_host.version [INFO] [stdout] 231 ~ && let Ok(history_versions) = history.num_versions() { [INFO] [stdout] 232 | if history_versions == 0 { [INFO] [stdout] ... [INFO] [stdout] 240 | }; [INFO] [stdout] 241 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/web/fetch.rs:259:13 [INFO] [stdout] | [INFO] [stdout] 259 | &dweb_host, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `dweb_host` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `archive_address` after checking its variant with `is_some` [INFO] [stdout] --> src/web/fetch.rs:309:13 [INFO] [stdout] | [INFO] [stdout] 306 | if archive_address.is_some() { [INFO] [stdout] | ---------------------------- help: try: `if let Some() = archive_address` [INFO] [stdout] ... [INFO] [stdout] 309 | archive_address.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `archive_address` after checking its variant with `is_some` [INFO] [stdout] --> src/web/fetch.rs:311:48 [INFO] [stdout] | [INFO] [stdout] 306 | if archive_address.is_some() { [INFO] [stdout] | ---------------------------- help: try: `if let Some() = archive_address` [INFO] [stdout] ... [INFO] [stdout] 311 | Tree::from_archive_address(client, archive_address.unwrap()).await?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:309:13 [INFO] [stdout] | [INFO] [stdout] 309 | archive_address.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:311:48 [INFO] [stdout] | [INFO] [stdout] 311 | Tree::from_archive_address(client, archive_address.unwrap()).await?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:319:9 [INFO] [stdout] | [INFO] [stdout] 319 | history_address.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/web/fetch.rs:357:39 [INFO] [stdout] | [INFO] [stdout] 357 | DirectoryVersionWithName::new(&dweb_host, history_address, archive_address, directory_tree); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `dweb_host` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cache/directory_with_port.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | format!("{}", archive_address.to_hex()).to_ascii_lowercase() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `archive_address.to_hex().to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/web/fetch.rs:439:9 [INFO] [stdout] | [INFO] [stdout] 439 | / return HttpResponseBuilder::new(status) [INFO] [stdout] 440 | | .append_header(header::ContentType(mime::TEXT_HTML)) [INFO] [stdout] 441 | | .reason(reason) [INFO] [stdout] 442 | | .body(html); [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 439 ~ HttpResponseBuilder::new(status) [INFO] [stdout] 440 + .append_header(header::ContentType(mime::TEXT_HTML)) [INFO] [stdout] 441 + .reason(reason) [INFO] [stdout] 442 ~ .body(html) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/web/fetch.rs:471:5 [INFO] [stdout] | [INFO] [stdout] 471 | redirect_url = redirect_url + port_str; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `redirect_url += port_str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/web/name.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | if memorable_part.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `memorable_part.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: useless use of `format!` [INFO] [stdout] --> src/web/name.rs:141:24 [INFO] [stdout] | [INFO] [stdout] 141 | let history_part = format!("{}", history_address.to_hex()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `history_address.to_hex().to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.history_address` after checking its variant with `is_some` [INFO] [stdout] --> src/cache/directory_with_port.rs:118:49 [INFO] [stdout] | [INFO] [stdout] 118 | if self.history_address.is_some() { self.history_address.unwrap().to_hex() } else { "None".to_string() }, [INFO] [stdout] | --------------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: try: `if let Some() = self.history_address` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.version` after checking its variant with `is_some` [INFO] [stdout] --> src/cache/directory_with_port.rs:119:41 [INFO] [stdout] | [INFO] [stdout] 119 | if self.version.is_some() { self.version.unwrap() } else { 0 }, [INFO] [stdout] | ------------------------- ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: try: `if let Some() = self.version` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> src/cache/directory_with_port.rs:120:33 [INFO] [stdout] | [INFO] [stdout] 120 | self.archive_address.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/cache/directory_with_port.rs:118:49 [INFO] [stdout] | [INFO] [stdout] 118 | if self.history_address.is_some() { self.history_address.unwrap().to_hex() } else { "None".to_string() }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] = note: requested on the command line with `-W clippy::unwrap-used` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/cache/directory_with_port.rs:119:41 [INFO] [stdout] | [INFO] [stdout] 119 | if self.version.is_some() { self.version.unwrap() } else { 0 }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/web/name.rs:247:8 [INFO] [stdout] | [INFO] [stdout] 247 | if dweb_host.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `dweb_host.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: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/web/name.rs:255:8 [INFO] [stdout] | [INFO] [stdout] 255 | if total_segments > 4 || total_segments < 3 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(3..=4).contains(&total_segments)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `cached_address` after checking its variant with `is_none` [INFO] [stdout] --> src/cache/directory_with_port.rs:167:41 [INFO] [stdout] | [INFO] [stdout] 162 | if cached_address.is_none() { [INFO] [stdout] | --------------------------- help: try: `if let Some() = cached_address` [INFO] [stdout] ... [INFO] [stdout] 167 | history_address = Some(*cached_address.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `archive_address` after checking its variant with `is_none` [INFO] [stdout] --> src/cache/directory_with_port.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 173 | let archive_address = if archive_address.is_none() { [INFO] [stdout] | ---------------------------- help: try: `if let Some() = archive_address` [INFO] [stdout] ... [INFO] [stdout] 207 | archive_address.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/cache/directory_with_port.rs:159:5 [INFO] [stdout] | [INFO] [stdout] 159 | / if history_address.is_none() && archive_address.is_none() { [INFO] [stdout] 160 | | if let Ok(lock) = &mut HISTORY_NAMES.lock() { [INFO] [stdout] 161 | | let cached_address = lock.get(address_or_name); [INFO] [stdout] 162 | | if cached_address.is_none() { [INFO] [stdout] ... | [INFO] [stdout] 169 | | }; [INFO] [stdout] 170 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 159 ~ if history_address.is_none() && archive_address.is_none() [INFO] [stdout] 160 ~ && let Ok(lock) = &mut HISTORY_NAMES.lock() { [INFO] [stdout] 161 | let cached_address = lock.get(address_or_name); [INFO] [stdout] ... [INFO] [stdout] 168 | } [INFO] [stdout] 169 ~ };; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/web/name.rs:311:30 [INFO] [stdout] | [INFO] [stdout] 311 | match validate_dweb_name(&dweb_name) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `dweb_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/web/name.rs:317:5 [INFO] [stdout] | [INFO] [stdout] 317 | / if let Some(domain_part) = segments.next() { [INFO] [stdout] 318 | | if domain_part == DOMAIN_PART { [INFO] [stdout] 319 | | if let Some(tld_part) = segments.next() { [INFO] [stdout] 320 | | if tld_part == TLD_PART && segments.next().is_none() { [INFO] [stdout] ... | [INFO] [stdout] 325 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 317 ~ if let Some(domain_part) = segments.next() [INFO] [stdout] 318 ~ && domain_part == DOMAIN_PART { [INFO] [stdout] 319 | if let Some(tld_part) = segments.next() { [INFO] [stdout] ... [INFO] [stdout] 323 | } [INFO] [stdout] 324 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/web/name.rs:318:9 [INFO] [stdout] | [INFO] [stdout] 318 | / if domain_part == DOMAIN_PART { [INFO] [stdout] 319 | | if let Some(tld_part) = segments.next() { [INFO] [stdout] 320 | | if tld_part == TLD_PART && segments.next().is_none() { [INFO] [stdout] 321 | | ends_with_dlp_tld = true; [INFO] [stdout] ... | [INFO] [stdout] 324 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 318 ~ if domain_part == DOMAIN_PART [INFO] [stdout] 319 ~ && let Some(tld_part) = segments.next() { [INFO] [stdout] 320 | if tld_part == TLD_PART && segments.next().is_none() { [INFO] [stdout] 321 | ends_with_dlp_tld = true; [INFO] [stdout] 322 | } [INFO] [stdout] 323 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/web/name.rs:319:13 [INFO] [stdout] | [INFO] [stdout] 319 | / if let Some(tld_part) = segments.next() { [INFO] [stdout] 320 | | if tld_part == TLD_PART && segments.next().is_none() { [INFO] [stdout] 321 | | ends_with_dlp_tld = true; [INFO] [stdout] 322 | | } [INFO] [stdout] 323 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 319 ~ if let Some(tld_part) = segments.next() [INFO] [stdout] 320 ~ && tld_part == TLD_PART && segments.next().is_none() { [INFO] [stdout] 321 | ends_with_dlp_tld = true; [INFO] [stdout] 322 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/cache/directory_with_port.rs:167:41 [INFO] [stdout] | [INFO] [stdout] 167 | history_address = Some(*cached_address.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/cache/directory_with_port.rs:177:13 [INFO] [stdout] | [INFO] [stdout] 177 | history_address.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/cache/directory_with_port.rs:198:17 [INFO] [stdout] | [INFO] [stdout] 186 | / let archive_address = match history [INFO] [stdout] 187 | | .get_version_entry_value(version, ignore_pointer) [INFO] [stdout] 188 | | .await [INFO] [stdout] ... | [INFO] [stdout] 197 | | }; [INFO] [stdout] | |__________________- unnecessary `let` binding [INFO] [stdout] 198 | archive_address [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] 186 ~ [INFO] [stdout] 187 ~ match history [INFO] [stdout] 188 + .get_version_entry_value(version, ignore_pointer) [INFO] [stdout] 189 + .await [INFO] [stdout] 190 + { [INFO] [stdout] 191 + Ok(archive_address) => archive_address, [INFO] [stdout] 192 + Err(e) => { [INFO] [stdout] 193 + let msg = [INFO] [stdout] 194 + format!("Unable to get archive address for version {version} - {e}"); [INFO] [stdout] 195 + println!("DEBUG {msg}"); [INFO] [stdout] 196 + return Err(eyre!(msg)); [INFO] [stdout] 197 + } [INFO] [stdout] 198 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/cache/directory_with_port.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 207 | archive_address.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/cache/directory_with_port.rs:212:5 [INFO] [stdout] | [INFO] [stdout] 212 | / if let Ok(lock) = &mut DIRECTORY_VERSIONS_WITH_PORT.lock() { [INFO] [stdout] 213 | | if let Some(directory_version) = lock.get(&key) { [INFO] [stdout] 214 | | return Ok((directory_version.clone(), true)); [INFO] [stdout] 215 | | }; [INFO] [stdout] 216 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 212 ~ if let Ok(lock) = &mut DIRECTORY_VERSIONS_WITH_PORT.lock() [INFO] [stdout] 213 ~ && let Some(directory_version) = lock.get(&key) { [INFO] [stdout] 214 | return Ok((directory_version.clone(), true)); [INFO] [stdout] 215 ~ };; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `cached_history_address` after checking its variant with `is_some` [INFO] [stdout] --> src/web/name.rs:426:46 [INFO] [stdout] | [INFO] [stdout] 425 | if cached_history_address.is_some() { [INFO] [stdout] | ----------------------------------- help: try: `if let Some() = cached_history_address` [INFO] [stdout] 426 | let cached_history_address = cached_history_address.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/cache/directory_with_port.rs:238:17 [INFO] [stdout] | [INFO] [stdout] 238 | / println!( [INFO] [stdout] 239 | | "DEBUG Deterministic port {} is not available, using random port {} instead", [INFO] [stdout] 240 | | port, free_port [INFO] [stdout] 241 | | ); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] = note: requested on the command line with `-W clippy::uninlined-format-args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cache/directory_with_port.rs:266:23 [INFO] [stdout] | [INFO] [stdout] 266 | let msg = format!("Failed to add new DirectoryVersionWithPort to the cache"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Failed to add new DirectoryVersionWithPort to the cache".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/web/name.rs:415:30 [INFO] [stdout] | [INFO] [stdout] 415 | match validate_dweb_name(&dweb_name) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `dweb_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/name.rs:426:46 [INFO] [stdout] | [INFO] [stdout] 426 | let cached_history_address = cached_history_address.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/client.rs:152:13 [INFO] [stdout] | [INFO] [stdout] 152 | client_config.clone().client.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/client.rs:184:14 [INFO] [stdout] | [INFO] [stdout] 184 | (client_config.clone().wallet.unwrap(), false) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client.rs:186:56 [INFO] [stdout] | [INFO] [stdout] 186 | match crate::autonomi::wallet::load_wallet(&client.evm_network()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `client.evm_network()` [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: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/client.rs:213:13 [INFO] [stdout] | [INFO] [stdout] 213 | wallet.balance_of_tokens().await.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/client.rs:217:13 [INFO] [stdout] | [INFO] [stdout] 217 | wallet.balance_of_gas_tokens().await.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/client.rs:219:9 [INFO] [stdout] | [INFO] [stdout] 219 | println!("Max fee per gas set to: {:?}", max_fee_per_gas); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 219 - println!("Max fee per gas set to: {:?}", max_fee_per_gas); [INFO] [stdout] 219 + println!("Max fee per gas set to: {max_fee_per_gas:?}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `DualArchive` [INFO] [stdout] --> src/files/archive.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | / pub fn new() -> Self { [INFO] [stdout] 67 | | Self { [INFO] [stdout] 68 | | dweb_type: DwebType::Unknown, [INFO] [stdout] 69 | | public_archive: PublicArchive::new(), [INFO] [stdout] ... | [INFO] [stdout] 72 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 64 + impl Default for DualArchive { [INFO] [stdout] 65 + fn default() -> Self { [INFO] [stdout] 66 + Self::new() [INFO] [stdout] 67 + } [INFO] [stdout] 68 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/files/archive.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 157 | &self.public_archive.map() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.public_archive.map()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/archive.rs:258:23 [INFO] [stdout] | [INFO] [stdout] 258 | Err(e) => return Err(e.into()), [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] 258 - Err(e) => return Err(e.into()), [INFO] [stdout] 258 + Err(e) => Err(e.into()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/files/archive.rs:242:17 [INFO] [stdout] | [INFO] [stdout] 242 | / if let Some((_path_buf, (datamap_chunk, _metadata))) = archive.map().iter().next() { [INFO] [stdout] 243 | | if datamap_chunk.to_hex().len() <= crate::helpers::DATA_ADDRESS_LEN { [INFO] [stdout] 244 | | return Err(eyre!( [INFO] [stdout] 245 | | "Found DataAddress instead of DatamapChunk: {}", [INFO] [stdout] ... | [INFO] [stdout] 249 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 242 ~ if let Some((_path_buf, (datamap_chunk, _metadata))) = archive.map().iter().next() [INFO] [stdout] 243 ~ && datamap_chunk.to_hex().len() <= crate::helpers::DATA_ADDRESS_LEN { [INFO] [stdout] 244 | return Err(eyre!( [INFO] [stdout] ... [INFO] [stdout] 247 | )); [INFO] [stdout] 248 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/archive.rs:275:23 [INFO] [stdout] | [INFO] [stdout] 275 | Err(e) => return Err(e.into()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 275 - Err(e) => return Err(e.into()), [INFO] [stdout] 275 + Err(e) => Err(e.into()), [INFO] [stdout] | [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/files/archive.rs:264:9 [INFO] [stdout] | [INFO] [stdout] 264 | / match Self::from_bytes_as_private(data.clone()) { [INFO] [stdout] 265 | | Ok(_archive) => return Err(eyre!("Found PrivateArchive not PublicArchive")), [INFO] [stdout] 266 | | Err(_) => {} [INFO] [stdout] 267 | | } [INFO] [stdout] | |_________^ help: try: `if let Ok(_archive) = Self::from_bytes_as_private(data.clone()) { return Err(eyre!("Found PrivateArchive not PublicArchive")) }` [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/archive.rs:285:17 [INFO] [stdout] | [INFO] [stdout] 285 | / return Err(rmp_serde::encode::Error::InvalidDataModel( [INFO] [stdout] 286 | | "DualArchive::to_bytes_as_public() can only serialise DwebType::PublicArchive", [INFO] [stdout] 287 | | )) [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 285 ~ Err(rmp_serde::encode::Error::InvalidDataModel( [INFO] [stdout] 286 + "DualArchive::to_bytes_as_public() can only serialise DwebType::PublicArchive", [INFO] [stdout] 287 + )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/archive.rs:297:18 [INFO] [stdout] | [INFO] [stdout] 297 | _ => return Err(rmp_serde::encode::Error::InvalidDataModel( [INFO] [stdout] | __________________^ [INFO] [stdout] 298 | | "DualArchive::to_bytes_as_private() can only serialise DwebType::PrivateArchive", [INFO] [stdout] 299 | | )), [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 297 ~ _ => Err(rmp_serde::encode::Error::InvalidDataModel( [INFO] [stdout] 298 + "DualArchive::to_bytes_as_private() can only serialise DwebType::PrivateArchive", [INFO] [stdout] 299 ~ )), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `JsonSettings` [INFO] [stdout] --> src/files/directory.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | / pub fn new() -> JsonSettings { [INFO] [stdout] 83 | | JsonSettings { [INFO] [stdout] 84 | | json_string: String::from(""), [INFO] [stdout] 85 | | } [INFO] [stdout] 86 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 81 + impl Default for JsonSettings { [INFO] [stdout] 82 + fn default() -> Self { [INFO] [stdout] 83 + Self::new() [INFO] [stdout] 84 + } [INFO] [stdout] 85 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/directory.rs:135:27 [INFO] [stdout] | [INFO] [stdout] 135 | Ok(string) => return Self::from_string(string), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 135 ~ Ok(string) => Self::from_string(string), [INFO] [stdout] 136 | Err(e) => panic!("DwebSettings::from_bytes() - failed {e}"), [INFO] [stdout] 137 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/files/directory.rs:150:5 [INFO] [stdout] | [INFO] [stdout] 150 | / pub fn default() -> DwebSettings { [INFO] [stdout] 151 | | DwebSettings { [INFO] [stdout] 152 | | index_filenames: Vec::from([String::from("index.html"), String::from("index.htm")]), [INFO] [stdout] 153 | | json_config: JsonSettings::new(), [INFO] [stdout] 154 | | } [INFO] [stdout] 155 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/files/directory.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | DataAddress::from_hex(FILE_TREE_TYPE).unwrap() // An error here is a bug that should be fixed [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/files/directory.rs:246:45 [INFO] [stdout] | [INFO] [stdout] 246 | return Self::from_datamap_chunk(&client, datamap_chunk).await; [INFO] [stdout] | ^^^^^^^ help: change this to: `client` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/files/directory.rs:248:47 [INFO] [stdout] | [INFO] [stdout] 248 | return Self::from_archive_address(&client, archive_address).await; [INFO] [stdout] | ^^^^^^^ help: change this to: `client` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/directory.rs:276:21 [INFO] [stdout] | [INFO] [stdout] 276 | return Err(eyre!(message)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 276 - return Err(eyre!(message)); [INFO] [stdout] 276 + Err(eyre!(message)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/directory.rs:311:21 [INFO] [stdout] | [INFO] [stdout] 311 | return Err(eyre!(message)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 311 - return Err(eyre!(message)); [INFO] [stdout] 311 + Err(eyre!(message)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/files/directory.rs:373:31 [INFO] [stdout] | [INFO] [stdout] 373 | let message = format!("Tree cannot initialise using unknown DualArchive.dweb_type"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Tree cannot initialise using unknown DualArchive.dweb_type".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/files/directory.rs:393:9 [INFO] [stdout] | [INFO] [stdout] 393 | / if let Some((datamap_chunk, data_address, _metadata)) = [INFO] [stdout] 394 | | self.archive.lookup_file(&dweb_settings_path) [INFO] [stdout] 395 | | { [INFO] [stdout] 396 | | if let Ok(bytes) = get_content_using_hex(client, datamap_chunk, data_address).await { [INFO] [stdout] ... | [INFO] [stdout] 402 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 394 ~ self.archive.lookup_file(&dweb_settings_path) [INFO] [stdout] 395 ~ && let Ok(bytes) = get_content_using_hex(client, datamap_chunk, data_address).await { [INFO] [stdout] 396 | if let Ok(parsed_settings) = DwebSettings::from_bytes(&bytes) { [INFO] [stdout] ... [INFO] [stdout] 399 | }; [INFO] [stdout] 400 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/files/directory.rs:396:13 [INFO] [stdout] | [INFO] [stdout] 396 | / if let Ok(bytes) = get_content_using_hex(client, datamap_chunk, data_address).await { [INFO] [stdout] 397 | | if let Ok(parsed_settings) = DwebSettings::from_bytes(&bytes) { [INFO] [stdout] 398 | | self.dweb_settings = parsed_settings; [INFO] [stdout] 399 | | return true; [INFO] [stdout] 400 | | }; [INFO] [stdout] 401 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 396 ~ if let Ok(bytes) = get_content_using_hex(client, datamap_chunk, data_address).await [INFO] [stdout] 397 ~ && let Ok(parsed_settings) = DwebSettings::from_bytes(&bytes) { [INFO] [stdout] 398 | self.dweb_settings = parsed_settings; [INFO] [stdout] 399 | return true; [INFO] [stdout] 400 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/files/directory.rs:424:12 [INFO] [stdout] | [INFO] [stdout] 424 | if !history.fetch_version_trove(version).await.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `history.fetch_version_trove(version).await.is_some()` [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: called `unwrap` on `history.cached_version` after checking its variant with `is_some` [INFO] [stdout] --> src/files/directory.rs:428:38 [INFO] [stdout] | [INFO] [stdout] 425 | if history.cached_version.is_some() [INFO] [stdout] | -------------------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 428 | let cached_version = history.cached_version.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/files/directory.rs:426:20 [INFO] [stdout] | [INFO] [stdout] 426 | && history.cached_version.as_ref().unwrap().trove.is_some() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/files/directory.rs:428:38 [INFO] [stdout] | [INFO] [stdout] 428 | let cached_version = history.cached_version.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/files/directory.rs:429:33 [INFO] [stdout] | [INFO] [stdout] 429 | let directory = cached_version.trove.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/files/directory.rs:456:24 [INFO] [stdout] | [INFO] [stdout] 456 | resource_path: &String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 456 ~ resource_path: &str, [INFO] [stdout] 457 | as_website: bool, [INFO] [stdout] ... [INFO] [stdout] 462 | } [INFO] [stdout] 463 ~ let original_resource_path = resource_path.to_owned(); [INFO] [stdout] 464 ~ let mut resource_path = resource_path.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/files/directory.rs:465:30 [INFO] [stdout] | [INFO] [stdout] 465 | let last_separator = last_separator_result.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/files/directory.rs:466:9 [INFO] [stdout] | [INFO] [stdout] 466 | println!("Splitting path '{}'", resource_path); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 466 - println!("Splitting path '{}'", resource_path); [INFO] [stdout] 466 + println!("Splitting path '{resource_path}'"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/files/directory.rs:468:9 [INFO] [stdout] | [INFO] [stdout] 468 | println!("...into '{}' and '{}'", resource_path, second_part); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 468 - println!("...into '{}' and '{}'", resource_path, second_part); [INFO] [stdout] 468 + println!("...into '{resource_path}' and '{second_part}'"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/files/directory.rs:472:9 [INFO] [stdout] | [INFO] [stdout] 472 | / if let Some(resources) = self.directory_map.paths_to_files_map.get(&resource_path) { [INFO] [stdout] 473 | | if second_part.len() > 0 { [INFO] [stdout] 474 | | println!("DEBUG Tree looking up '{}'", second_part); [INFO] [stdout] 475 | | match Self::lookup_name_in_vec(&second_part, resources) { [INFO] [stdout] ... | [INFO] [stdout] 482 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 472 ~ if let Some(resources) = self.directory_map.paths_to_files_map.get(&resource_path) [INFO] [stdout] 473 ~ && second_part.len() > 0 { [INFO] [stdout] 474 | println!("DEBUG Tree looking up '{}'", second_part); [INFO] [stdout] ... [INFO] [stdout] 480 | } [INFO] [stdout] 481 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/files/directory.rs:473:16 [INFO] [stdout] | [INFO] [stdout] 473 | if second_part.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!second_part.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: variables can be used directly in the `format!` string [INFO] [stdout] --> src/files/directory.rs:474:17 [INFO] [stdout] | [INFO] [stdout] 474 | println!("DEBUG Tree looking up '{}'", second_part); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 474 - println!("DEBUG Tree looking up '{}'", second_part); [INFO] [stdout] 474 + println!("DEBUG Tree looking up '{second_part}'"); [INFO] [stdout] | [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/files/directory.rs:475:17 [INFO] [stdout] | [INFO] [stdout] 475 | / match Self::lookup_name_in_vec(&second_part, resources) { [INFO] [stdout] 476 | | Some((datamap_chunk, data_address)) => { [INFO] [stdout] 477 | | path_and_address = Some((second_part, datamap_chunk, data_address)) [INFO] [stdout] ... | [INFO] [stdout] 480 | | } [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] help: try [INFO] [stdout] | [INFO] [stdout] 475 ~ if let Some((datamap_chunk, data_address)) = Self::lookup_name_in_vec(&second_part, resources) { [INFO] [stdout] 476 + path_and_address = Some((second_part, datamap_chunk, data_address)) [INFO] [stdout] 477 + } [INFO] [stdout] | [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/files/directory.rs:504:21 [INFO] [stdout] | [INFO] [stdout] 504 | / match Self::lookup_name_in_vec(&index_file, &new_resources) { [INFO] [stdout] 505 | | Some((datamap_chunk, data_address)) => { [INFO] [stdout] 506 | | path_and_address = [INFO] [stdout] 507 | | Some((index_file.clone(), datamap_chunk, data_address)) [INFO] [stdout] 508 | | } [INFO] [stdout] 509 | | None => {} [INFO] [stdout] 510 | | }; [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] help: try [INFO] [stdout] | [INFO] [stdout] 504 ~ if let Some((datamap_chunk, data_address)) = Self::lookup_name_in_vec(&index_file, &new_resources) { [INFO] [stdout] 505 + path_and_address = [INFO] [stdout] 506 + Some((index_file.clone(), datamap_chunk, data_address)) [INFO] [stdout] 507 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/files/directory.rs:504:52 [INFO] [stdout] | [INFO] [stdout] 504 | match Self::lookup_name_in_vec(&index_file, &new_resources) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `index_file` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/files/directory.rs:504:65 [INFO] [stdout] | [INFO] [stdout] 504 | match Self::lookup_name_in_vec(&index_file, &new_resources) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `new_resources` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/files/directory.rs:517:36 [INFO] [stdout] | [INFO] [stdout] 517 | let content_type = match mime_guess::from_path(path).first_raw() { [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 518 | | Some(str) => Some(str.to_string()), [INFO] [stdout] 519 | | None => None, [INFO] [stdout] 520 | | }; [INFO] [stdout] | |_________________^ help: try: `mime_guess::from_path(path).first_raw().map(|str| str.to_string())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `TreePathMap` [INFO] [stdout] --> src/files/directory.rs:565:5 [INFO] [stdout] | [INFO] [stdout] 565 | / pub fn new() -> TreePathMap { [INFO] [stdout] 566 | | TreePathMap { [INFO] [stdout] 567 | | paths_to_files_map: HashMap::>::new( [INFO] [stdout] 568 | | ), [INFO] [stdout] 569 | | } [INFO] [stdout] 570 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 564 + impl Default for TreePathMap { [INFO] [stdout] 565 + fn default() -> Self { [INFO] [stdout] 566 + Self::new() [INFO] [stdout] 567 + } [INFO] [stdout] 568 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/files/directory.rs:575:9 [INFO] [stdout] | [INFO] [stdout] 575 | while let Some((path_buf, (data_address, metadata))) = iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for (path_buf, (data_address, metadata)) in iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] = note: `#[warn(clippy::while_let_on_iterator)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/files/directory.rs:599:9 [INFO] [stdout] | [INFO] [stdout] 599 | while let Some((path_buf, (datamap, metadata))) = iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for (path_buf, (datamap, metadata)) in iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/files/directory.rs:631:48 [INFO] [stdout] | [INFO] [stdout] 631 | let mut web_path = Self::webify_string(&resource_website_path); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `resource_website_path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/files/directory.rs:671:9 [INFO] [stdout] | [INFO] [stdout] 671 | return path_string.replace("\\", "/"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 671 - return path_string.replace("\\", "/"); [INFO] [stdout] 671 + path_string.replace("\\", "/") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/files/directory.rs:669:39 [INFO] [stdout] | [INFO] [stdout] 669 | pub fn webify_string(path_string: &String) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 669 ~ pub fn webify_string(path_string: &str) -> String { [INFO] [stdout] 670 ~ let path_string = path_string.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/files/directory.rs:684:39 [INFO] [stdout] | [INFO] [stdout] 684 | pub fn canonicalise_path(path_string: &String) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 684 - pub fn canonicalise_path(path_string: &String) -> String { [INFO] [stdout] 684 + pub fn canonicalise_path(path_string: &str) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/files/directory.rs:686:8 [INFO] [stdout] | [INFO] [stdout] 686 | if path_string.len() > 0 && !path_string.starts_with("/") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!path_string.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: manual implementation of `ok` [INFO] [stdout] --> src/files/directory.rs:699:9 [INFO] [stdout] | [INFO] [stdout] 699 | / match DataMapChunk::from_hex(&datamap_chunk) { [INFO] [stdout] 700 | | Ok(datamap_chunk) => Some(datamap_chunk), [INFO] [stdout] 701 | | Err(_) => None, [INFO] [stdout] 702 | | } [INFO] [stdout] | |_________^ help: replace with: `DataMapChunk::from_hex(&datamap_chunk).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] = note: `#[warn(clippy::manual_ok_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/files/directory.rs:708:9 [INFO] [stdout] | [INFO] [stdout] 708 | / match DataAddress::from_hex(&data_address) { [INFO] [stdout] 709 | | Ok(data_address) => Some(data_address), [INFO] [stdout] 710 | | Err(_) => None, [INFO] [stdout] 711 | | } [INFO] [stdout] | |_________^ help: replace with: `DataAddress::from_hex(&data_address).ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/files/directory.rs:764:27 [INFO] [stdout] | [INFO] [stdout] 764 | ... let message = format!( [INFO] [stdout] | _____________________^ [INFO] [stdout] 765 | | ... "get_content_using_hex() failed to access data from network using data_address: '{:?}' or datamap_chunk: '{:?}' - {e}", [INFO] [stdout] 766 | | ... data_address, datamap_chunk, [INFO] [stdout] 767 | | ... ); [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/helpers/convert.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | / if str.len() > HISTORY_ADDRESS_LEN { [INFO] [stdout] 36 | | if let Ok(datamap_chunk) = DataMapChunk::from_hex(str) { [INFO] [stdout] 37 | | return Ok(datamap_chunk); [INFO] [stdout] 38 | | }; [INFO] [stdout] 39 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 35 ~ if str.len() > HISTORY_ADDRESS_LEN [INFO] [stdout] 36 ~ && let Ok(datamap_chunk) = DataMapChunk::from_hex(str) { [INFO] [stdout] 37 | return Ok(datamap_chunk); [INFO] [stdout] 38 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helpers/convert.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | return (None, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 131 - return (None, None); [INFO] [stdout] 131 + (None, None) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helpers/convert.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | return (None, None, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 161 - return (None, None, None); [INFO] [stdout] 161 + (None, None, None) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/helpers/convert.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | / if let Ok(lock) = &mut HISTORY_NAMES.lock() { [INFO] [stdout] 156 | | if let Some(history_address) = lock.get(datamap_address_or_name).copied() { [INFO] [stdout] 157 | | return (None, Some(history_address), None); [INFO] [stdout] 158 | | } [INFO] [stdout] 159 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 155 ~ if let Ok(lock) = &mut HISTORY_NAMES.lock() [INFO] [stdout] 156 ~ && let Some(history_address) = lock.get(datamap_address_or_name).copied() { [INFO] [stdout] 157 | return (None, Some(history_address), None); [INFO] [stdout] 158 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helpers/convert.rs:183:5 [INFO] [stdout] | [INFO] [stdout] 183 | return (None, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 183 - return (None, None); [INFO] [stdout] 183 + (None, None) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/helpers/convert.rs:177:5 [INFO] [stdout] | [INFO] [stdout] 177 | / if let Ok(lock) = &mut HISTORY_NAMES.lock() { [INFO] [stdout] 178 | | if let Some(history_address) = lock.get(address_or_name).copied() { [INFO] [stdout] 179 | | return (Some(history_address), None); [INFO] [stdout] 180 | | } [INFO] [stdout] 181 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 177 ~ if let Ok(lock) = &mut HISTORY_NAMES.lock() [INFO] [stdout] 178 ~ && let Some(history_address) = lock.get(address_or_name).copied() { [INFO] [stdout] 179 | return (Some(history_address), None); [INFO] [stdout] 180 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/helpers/convert.rs:202:8 [INFO] [stdout] | [INFO] [stdout] 202 | if port >= MIN_SERVER_PORT && port <= MAX_SERVER_PORT { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(MIN_SERVER_PORT..=MAX_SERVER_PORT).contains(&port)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/helpers/convert.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | &str[AWE_PROTOCOL_HISTORY.len()..] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/helpers/convert.rs:231:15 [INFO] [stdout] | [INFO] [stdout] 231 | let str = if str.starts_with(AWE_PROTOCOL_HISTORY) { [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] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 231 ~ let str = if let Some() = str.strip_prefix(AWE_PROTOCOL_HISTORY) { [INFO] [stdout] 232 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/convert.rs:234:9 [INFO] [stdout] | [INFO] [stdout] 234 | &str [INFO] [stdout] | ^^^^ help: change this to: `str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/helpers/convert.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | &str[AWE_PROTOCOL_HISTORY.len()..] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/helpers/convert.rs:247:15 [INFO] [stdout] | [INFO] [stdout] 247 | let str = if str.starts_with(AWE_PROTOCOL_HISTORY) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 247 ~ let str = if let Some() = str.strip_prefix(AWE_PROTOCOL_HISTORY) { [INFO] [stdout] 248 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/convert.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | &str [INFO] [stdout] | ^^^^ help: change this to: `str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/helpers/convert.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | &str[AWE_PROTOCOL_DIRECTORY.len()..] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/helpers/convert.rs:260:15 [INFO] [stdout] | [INFO] [stdout] 260 | let str = if str.starts_with(AWE_PROTOCOL_DIRECTORY) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 260 ~ let str = if let Some() = str.strip_prefix(AWE_PROTOCOL_DIRECTORY) { [INFO] [stdout] 261 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/helpers/convert.rs:263:9 [INFO] [stdout] | [INFO] [stdout] 263 | &str[AWE_PROTOCOL_FILE.len()..] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/helpers/convert.rs:262:12 [INFO] [stdout] | [INFO] [stdout] 262 | } else if str.starts_with(AWE_PROTOCOL_FILE) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 262 ~ } else if let Some() = str.strip_prefix(AWE_PROTOCOL_FILE) { [INFO] [stdout] 263 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/convert.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 265 | &str [INFO] [stdout] | ^^^^ help: change this to: `str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/helpers/convert.rs:281:9 [INFO] [stdout] | [INFO] [stdout] 281 | &str[AWE_PROTOCOL_DIRECTORY.len()..] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/helpers/convert.rs:280:15 [INFO] [stdout] | [INFO] [stdout] 280 | let str = if str.starts_with(AWE_PROTOCOL_DIRECTORY) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 280 ~ let str = if let Some() = str.strip_prefix(AWE_PROTOCOL_DIRECTORY) { [INFO] [stdout] 281 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/helpers/convert.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | &str[AWE_PROTOCOL_FILE.len()..] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/helpers/convert.rs:282:12 [INFO] [stdout] | [INFO] [stdout] 282 | } else if str.starts_with(AWE_PROTOCOL_FILE) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 282 ~ } else if let Some() = str.strip_prefix(AWE_PROTOCOL_FILE) { [INFO] [stdout] 283 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/convert.rs:285:9 [INFO] [stdout] | [INFO] [stdout] 285 | &str [INFO] [stdout] | ^^^^ help: change this to: `str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `main_owner` after checking its variant with `is_none` [INFO] [stdout] --> src/helpers/graph_entry.rs:64:41 [INFO] [stdout] | [INFO] [stdout] 60 | if main_owner.is_none() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = main_owner` [INFO] [stdout] ... [INFO] [stdout] 64 | let descendent_public_key = main_owner [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 65 | | .unwrap() [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/helpers/graph_entry.rs:47:22 [INFO] [stdout] | [INFO] [stdout] 47 | let parents = if graph_entry.parents.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!graph_entry.parents.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/helpers/graph_entry.rs:59:26 [INFO] [stdout] | [INFO] [stdout] 59 | let descendents = if graph_entry.descendants.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!graph_entry.descendants.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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/graph_entry.rs:63:68 [INFO] [stdout] | [INFO] [stdout] 63 | let derivation_index = get_derivation_from_graph_entry(&graph_entry); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `graph_entry` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/helpers/graph_entry.rs:64:41 [INFO] [stdout] | [INFO] [stdout] 64 | let descendent_public_key = main_owner [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 65 | | .unwrap() [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/helpers/graph_entry.rs:66:30 [INFO] [stdout] | [INFO] [stdout] 66 | .derive_key(&derivation_index.unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/helpers/graph_entry.rs:81:21 [INFO] [stdout] | [INFO] [stdout] 81 | hex::encode(&graph_entry.content), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `graph_entry.content` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helpers/graph_entry.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | return Err(eyre!(msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 146 - return Err(eyre!(msg)); [INFO] [stdout] 146 + Err(eyre!(msg)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/helpers/graph_entry.rs:172:25 [INFO] [stdout] | [INFO] [stdout] 172 | .derive_key(&new_derivation) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `new_derivation` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/helpers/graph_entry.rs:182:21 [INFO] [stdout] | [INFO] [stdout] 182 | hex::encode(&history_secret_key.to_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `history_secret_key.to_bytes()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/helpers/graph_entry.rs:186:21 [INFO] [stdout] | [INFO] [stdout] 186 | hex::encode(&next_public_key.to_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `next_public_key.to_bytes()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/helpers/graph_entry.rs:188:26 [INFO] [stdout] | [INFO] [stdout] 188 | let parents_str = if parents.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!parents.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: manual implementation of an assign operation [INFO] [stdout] --> src/helpers/retry.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | try_number = try_number + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `try_number += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/helpers/web.rs:67:48 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn json_date_to_metadata_date(date_string: &String) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 67 - pub fn json_date_to_metadata_date(date_string: &String) -> Result { [INFO] [stdout] 67 + pub fn json_date_to_metadata_date(date_string: &str) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/helpers/web.rs:84:17 [INFO] [stdout] | [INFO] [stdout] 84 | json_string = json_string + ",\n"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `json_string += ",\n"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/helpers/web.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | directory_size = directory_size + file_size; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `directory_size += file_size` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/helpers/web.rs:103:12 [INFO] [stdout] | [INFO] [stdout] 103 | if path.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!path.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: manual implementation of an assign operation [INFO] [stdout] --> src/helpers/web.rs:105:17 [INFO] [stdout] | [INFO] [stdout] 105 | json_string = json_string + ",\n"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `json_string += ",\n"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/helpers/mod.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | return Err(eyre!(message)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 50 - return Err(eyre!(message)); [INFO] [stdout] 50 + Err(eyre!(message)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/history.rs:141:5 [INFO] [stdout] | [INFO] [stdout] 141 | /// a standard web browser, including viewing every version published on Autonomi (similar [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 141 | /// a standard web browser, including viewing every version published on Autonomi (similar [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/history.rs:142:5 [INFO] [stdout] | [INFO] [stdout] 142 | /// to the Internet Archive). [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 142 | /// to the Internet Archive). [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/history.rs:144:5 [INFO] [stdout] | [INFO] [stdout] 144 | /// amounting to a versioned history for any struct impl Trove. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 144 | /// amounting to a versioned history for any struct impl Trove. [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/history.rs:199:48 [INFO] [stdout] | [INFO] [stdout] 199 | let spends = Spends::new(&client, Some(&"History create online cost: ")).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"History create online cost: "` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:360:31 [INFO] [stdout] | [INFO] [stdout] 360 | Err(e) => return Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 360 - Err(e) => return Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] 360 + Err(e) => Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:363:23 [INFO] [stdout] | [INFO] [stdout] 363 | Err(e) => return Err(eyre!("DEBUG failed to get history prior to update!\n{e}")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 363 - Err(e) => return Err(eyre!("DEBUG failed to get history prior to update!\n{e}")), [INFO] [stdout] 363 + Err(e) => Err(eyre!("DEBUG failed to get history prior to update!\n{e}")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/history.rs:296:53 [INFO] [stdout] | [INFO] [stdout] 296 | let spends = Spends::new(&self.client, Some(&"History update online cost: ")).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"History update online cost: "` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HistoryAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:297:68 [INFO] [stdout] | [INFO] [stdout] 297 | let pointer_address = pointer_address_from_history_address(history_address.clone())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `history_address` [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: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/history.rs:301:36 [INFO] [stdout] | [INFO] [stdout] 301 | let head_address = self.head_graphentry.clone().unwrap().address(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/history.rs:333:21 [INFO] [stdout] | [INFO] [stdout] 333 | &"pointer_update()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `"pointer_update()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:344:29 [INFO] [stdout] | [INFO] [stdout] 344 | ... return Err(eyre!("Failed to add a trove to history: {e:?}")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 344 - return Err(eyre!("Failed to add a trove to history: {e:?}")); [INFO] [stdout] 344 + Err(eyre!("Failed to add a trove to history: {e:?}")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/history.rs:442:12 [INFO] [stdout] | [INFO] [stdout] 442 | if ignore_pointer || (!ignore_pointer && minimum_entry_index > pointer.counter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 442 - if ignore_pointer || (!ignore_pointer && minimum_entry_index > pointer.counter()) { [INFO] [stdout] 442 + if !(!ignore_pointer && minimum_entry_index <= pointer.counter()) { [INFO] [stdout] | [INFO] [stdout] 442 - if ignore_pointer || (!ignore_pointer && minimum_entry_index > pointer.counter()) { [INFO] [stdout] 442 + if ignore_pointer || minimum_entry_index > pointer.counter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HistoryAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:402:68 [INFO] [stdout] | [INFO] [stdout] 402 | let pointer_address = pointer_address_from_history_address(history_address.clone())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `history_address` [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: useless conversion to the same type: `color_eyre::Report` [INFO] [stdout] --> src/history.rs:411:28 [INFO] [stdout] | [INFO] [stdout] 411 | return Err(e.into()); [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stdout] | [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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/history.rs:534:12 [INFO] [stdout] | [INFO] [stdout] 534 | if ignore_pointer || (!ignore_pointer && minimum_entry_index > pointer.counter()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 534 - if ignore_pointer || (!ignore_pointer && minimum_entry_index > pointer.counter()) { [INFO] [stdout] 534 + if !(!ignore_pointer && minimum_entry_index <= pointer.counter()) { [INFO] [stdout] | [INFO] [stdout] 534 - if ignore_pointer || (!ignore_pointer && minimum_entry_index > pointer.counter()) { [INFO] [stdout] 534 + if ignore_pointer || minimum_entry_index > pointer.counter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HistoryAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:497:68 [INFO] [stdout] | [INFO] [stdout] 497 | let pointer_address = pointer_address_from_history_address(history_address.clone())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `history_address` [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: useless conversion to the same type: `color_eyre::Report` [INFO] [stdout] --> src/history.rs:506:28 [INFO] [stdout] | [INFO] [stdout] 506 | return Err(e.into()); [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/history.rs:580:23 [INFO] [stdout] | [INFO] [stdout] 580 | return Ok(self.head_graphentry.clone().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HistoryAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:584:68 [INFO] [stdout] | [INFO] [stdout] 584 | let pointer_address = pointer_address_from_history_address(self.history_address.clone())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.history_address` [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: useless conversion to the same type: `color_eyre::Report` [INFO] [stdout] --> src/history.rs:593:28 [INFO] [stdout] | [INFO] [stdout] 593 | return Err(e.into()); [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/history.rs:618:23 [INFO] [stdout] | [INFO] [stdout] 618 | return Ok(self.head_graphentry.clone().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/history.rs:639:17 [INFO] [stdout] | [INFO] [stdout] 639 | iter_index = iter_index + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `iter_index += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/history.rs:640:17 [INFO] [stdout] | [INFO] [stdout] 640 | final_index = final_index + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `final_index += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/history.rs:667:42 [INFO] [stdout] | [INFO] [stdout] 667 | let derivation_index: [u8; 32] = Self::trove_type().xorname().to_vec().try_into().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:684:9 [INFO] [stdout] | [INFO] [stdout] 684 | return HistoryAddress::new(history_secret_key.public_key()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 684 - return HistoryAddress::new(history_secret_key.public_key()); [INFO] [stdout] 684 + HistoryAddress::new(history_secret_key.public_key()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/history.rs:691:13 [INFO] [stdout] | [INFO] [stdout] 691 | &HISTORY_POINTER_DERIVATION_INDEX, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `HISTORY_POINTER_DERIVATION_INDEX` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/history.rs:720:32 [INFO] [stdout] | [INFO] [stdout] 720 | self.default_version = match self.num_versions() { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 721 | | Ok(version) => Some(version), [INFO] [stdout] 722 | | Err(_) => None, [INFO] [stdout] 723 | | }; [INFO] [stdout] | |_________^ help: replace with: `self.num_versions().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HistoryAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:736:9 [INFO] [stdout] | [INFO] [stdout] 736 | self.history_address.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.history_address` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/history.rs:780:13 [INFO] [stdout] | [INFO] [stdout] 780 | &"autonomi_get_file_public()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"autonomi_get_file_public()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/history.rs:838:21 [INFO] [stdout] | [INFO] [stdout] 838 | / if let Some(head) = self.get_head_entry().await? { [INFO] [stdout] 839 | | if let Ok(archive_address) = [INFO] [stdout] 840 | | ArchiveAddress::from_hex(&hex::encode(head.content)) [INFO] [stdout] ... | [INFO] [stdout] 844 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 838 ~ if let Some(head) = self.get_head_entry().await? [INFO] [stdout] 839 ~ && let Ok(archive_address) = [INFO] [stdout] 840 | ArchiveAddress::from_hex(&hex::encode(head.content)) [INFO] [stdout] 841 | { [INFO] [stdout] 842 | return Ok(archive_address); [INFO] [stdout] 843 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `head` after checking its variant with `is_some` [INFO] [stdout] --> src/history.rs:906:25 [INFO] [stdout] | [INFO] [stdout] 905 | if head.is_some() { [INFO] [stdout] | ----------------- help: try: `if let Some() = head` [INFO] [stdout] 906 | head.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `root` after checking its variant with `is_some` [INFO] [stdout] --> src/history.rs:932:25 [INFO] [stdout] | [INFO] [stdout] 931 | if root.is_some() { [INFO] [stdout] | ----------------- help: try: `if let Some() = root` [INFO] [stdout] 932 | root.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/history.rs:906:25 [INFO] [stdout] | [INFO] [stdout] 906 | head.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/history.rs:917:17 [INFO] [stdout] | [INFO] [stdout] 917 | iter_index = iter_index - 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `iter_index -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/history.rs:932:25 [INFO] [stdout] | [INFO] [stdout] 932 | root.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/history.rs:945:17 [INFO] [stdout] | [INFO] [stdout] 945 | iter_index = iter_index + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `iter_index += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/history.rs:970:9 [INFO] [stdout] | [INFO] [stdout] 970 | Ok(graph_entry_get(&self.client.client, graph_entry_address, check_exists).await?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 970 - Ok(graph_entry_get(&self.client.client, graph_entry_address, check_exists).await?) [INFO] [stdout] 970 + graph_entry_get(&self.client.client, graph_entry_address, check_exists).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/history.rs:1022:9 [INFO] [stdout] | [INFO] [stdout] 1022 | / match self [INFO] [stdout] 1023 | | .get_graph_entry_from_network(&child, check_exists) [INFO] [stdout] 1024 | | .await [INFO] [stdout] ... | [INFO] [stdout] 1027 | | Err(_) => None, [INFO] [stdout] 1028 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] help: replace with [INFO] [stdout] | [INFO] [stdout] 1022 ~ self [INFO] [stdout] 1023 + .get_graph_entry_from_network(&child, check_exists) [INFO] [stdout] 1024 + .await.ok() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/history.rs:1033:9 [INFO] [stdout] | [INFO] [stdout] 1033 | / if let Some(trove_version) = &self.cached_version { [INFO] [stdout] 1034 | | if trove_version.trove.is_some() { [INFO] [stdout] 1035 | | return Some(trove_version.version); [INFO] [stdout] 1036 | | } [INFO] [stdout] 1037 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1033 ~ if let Some(trove_version) = &self.cached_version [INFO] [stdout] 1034 ~ && trove_version.trove.is_some() { [INFO] [stdout] 1035 | return Some(trove_version.version); [INFO] [stdout] 1036 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1123:17 [INFO] [stdout] | [INFO] [stdout] 1123 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1123 - return Ok(()); [INFO] [stdout] 1123 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1125:23 [INFO] [stdout] | [INFO] [stdout] 1125 | Err(e) => return Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1125 - Err(e) => return Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] 1125 + Err(e) => Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/history.rs:1103:13 [INFO] [stdout] | [INFO] [stdout] 1103 | &"pointer_put()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `"pointer_put()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1114:21 [INFO] [stdout] | [INFO] [stdout] 1114 | return Err(eyre!("Failed to put pointer: {e:?}")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1114 - return Err(eyre!("Failed to put pointer: {e:?}")); [INFO] [stdout] 1114 + Err(eyre!("Failed to put pointer: {e:?}")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1174:25 [INFO] [stdout] | [INFO] [stdout] 1174 | return Ok(self.pointer_counter); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1174 - return Ok(self.pointer_counter); [INFO] [stdout] 1174 + Ok(self.pointer_counter) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1176:31 [INFO] [stdout] | [INFO] [stdout] 1176 | Err(e) => return Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1176 - Err(e) => return Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] 1176 + Err(e) => Err(eyre!("Retries exceeded: {e:?}")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1179:23 [INFO] [stdout] | [INFO] [stdout] 1179 | Err(e) => return Err(eyre!("DEBUG failed to get history for update!\n{e}")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1179 - Err(e) => return Err(eyre!("DEBUG failed to get history for update!\n{e}")), [INFO] [stdout] 1179 + Err(e) => Err(eyre!("DEBUG failed to get history for update!\n{e}")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HistoryAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:1144:68 [INFO] [stdout] | [INFO] [stdout] 1144 | let pointer_address = pointer_address_from_history_address(history_address.clone())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `history_address` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/history.rs:1154:21 [INFO] [stdout] | [INFO] [stdout] 1154 | &"pointer_update()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `"pointer_update()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1165:29 [INFO] [stdout] | [INFO] [stdout] 1165 | ... return Err(eyre!("Failed to update pointer: {e:?}")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1165 - return Err(eyre!("Failed to update pointer: {e:?}")); [INFO] [stdout] 1165 + Err(eyre!("Failed to update pointer: {e:?}")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `DataAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:1251:68 [INFO] [stdout] | [INFO] [stdout] 1251 | self.cached_version = Some(TroveVersion::::new(version, trove_address.clone(), None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*trove_address` [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: called `unwrap` on `version` after checking its variant with `is_some` [INFO] [stdout] --> src/history.rs:1269:13 [INFO] [stdout] | [INFO] [stdout] 1268 | let mut version = if version.is_some() { [INFO] [stdout] | -------------------- help: try: `if let Some() = version` [INFO] [stdout] 1269 | version.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.default_version` after checking its variant with `is_some` [INFO] [stdout] --> src/history.rs:1276:27 [INFO] [stdout] | [INFO] [stdout] 1275 | if self.default_version.is_some() { [INFO] [stdout] | --------------------------------- help: try: `if let Some() = self.default_version` [INFO] [stdout] 1276 | version = self.default_version.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/history.rs:1269:13 [INFO] [stdout] | [INFO] [stdout] 1269 | version.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/history.rs:1276:27 [INFO] [stdout] | [INFO] [stdout] 1276 | version = self.default_version.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/history.rs:1291:9 [INFO] [stdout] | [INFO] [stdout] 1291 | / if let Some(trove_version) = &self.cached_version { [INFO] [stdout] 1292 | | if trove_version.version == version && trove_version.trove.is_some() { [INFO] [stdout] 1293 | | return trove_version.trove.clone(); [INFO] [stdout] 1294 | | } [INFO] [stdout] 1295 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1291 ~ if let Some(trove_version) = &self.cached_version [INFO] [stdout] 1292 ~ && trove_version.version == version && trove_version.trove.is_some() { [INFO] [stdout] 1293 | return trove_version.trove.clone(); [INFO] [stdout] 1294 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/history.rs:1319:9 [INFO] [stdout] | [INFO] [stdout] 1319 | / if let Some(cached_version) = &self.cached_version { [INFO] [stdout] 1320 | | Some(cached_version.clone()) [INFO] [stdout] 1321 | | } else { [INFO] [stdout] 1322 | | None [INFO] [stdout] 1323 | | } [INFO] [stdout] | |_________^ help: try: `self.cached_version.as_ref().map(|cached_version| cached_version.clone())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/history.rs:1329:9 [INFO] [stdout] | [INFO] [stdout] 1329 | / if let Some(trove_version) = &self.cached_version { [INFO] [stdout] 1330 | | if trove_version.version == version { [INFO] [stdout] 1331 | | println!( [INFO] [stdout] 1332 | | "DEBUG get_trove_address_from_history() returning cached trove address: {}", [INFO] [stdout] ... | [INFO] [stdout] 1337 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1329 ~ if let Some(trove_version) = &self.cached_version [INFO] [stdout] 1330 ~ && trove_version.version == version { [INFO] [stdout] 1331 | println!( [INFO] [stdout] ... [INFO] [stdout] 1335 | return Ok(trove_version.trove_address.clone()); [INFO] [stdout] 1336 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `DataAddress` which implements the `Copy` trait [INFO] [stdout] --> src/history.rs:1335:27 [INFO] [stdout] | [INFO] [stdout] 1335 | return Ok(trove_version.trove_address.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `trove_version.trove_address` [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: manual implementation of `Option::map` [INFO] [stdout] --> src/history.rs:1367:9 [INFO] [stdout] | [INFO] [stdout] 1367 | / match &self.trove { [INFO] [stdout] 1368 | | Some(trove) => Some(trove.clone()), [INFO] [stdout] 1369 | | None => None, [INFO] [stdout] 1370 | | } [INFO] [stdout] | |_________^ help: try: `self.trove.as_ref().map(|trove| trove.clone())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/history.rs:1378:38 [INFO] [stdout] | [INFO] [stdout] 1378 | let derivation_index: [u8; 32] = HISTORY_POINTER_DERIVATION_INDEX [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 1379 | | .as_bytes() [INFO] [stdout] 1380 | | .try_into() [INFO] [stdout] 1381 | | .unwrap(); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/history.rs:1424:17 [INFO] [stdout] | [INFO] [stdout] 1424 | return Err(eyre!(message)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1424 - return Err(eyre!(message)); [INFO] [stdout] 1424 + Err(eyre!(message)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/history.rs:1404:25 [INFO] [stdout] | [INFO] [stdout] 1404 | format!("Error - pointer retrieved from network has INVALID SIGNATURE"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Error - pointer retrieved from network has INVALID SIGNATURE".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage.rs:249:13 [INFO] [stdout] | [INFO] [stdout] 249 | return Err(eyre!(message)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 249 - return Err(eyre!(message)); [INFO] [stdout] 249 + Err(eyre!(message)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:77:27 [INFO] [stdout] | [INFO] [stdout] 77 | check_path_for_upload(&files_root)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `files_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:165:56 [INFO] [stdout] | [INFO] [stdout] 165 | let (cost, mut archive) = publish_files_public(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^ help: change this to: `client` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:165:65 [INFO] [stdout] | [INFO] [stdout] 165 | let (cost, mut archive) = publish_files_public(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `files_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/storage.rs:167:30 [INFO] [stdout] | [INFO] [stdout] 167 | .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 167 - .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] 167 + .inspect_err(|e| println!("{e}"))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/storage.rs:169:28 [INFO] [stdout] | [INFO] [stdout] 169 | let data_address = DataAddress::from_hex(DWEB_DIRECTORY_HISTORY_CONTENT).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:177:57 [INFO] [stdout] | [INFO] [stdout] 177 | let (cost, mut archive) = publish_files_private(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^ help: change this to: `client` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:177:66 [INFO] [stdout] | [INFO] [stdout] 177 | let (cost, mut archive) = publish_files_private(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `files_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/storage.rs:179:30 [INFO] [stdout] | [INFO] [stdout] 179 | .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 179 - .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] 179 + .inspect_err(|e| println!("{e}"))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/storage.rs:181:29 [INFO] [stdout] | [INFO] [stdout] 181 | let datamap_chunk = DataMapChunk::from_hex(DWEB_DIRECTORY_HISTORY_DATAMAPCHUNK).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | &"Storing archive as bytes with data_put_public()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"Storing archive as bytes with data_put_public()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/storage.rs:230:18 [INFO] [stdout] | [INFO] [stdout] 230 | total_cost = total_cost.unwrap().checked_add(archive_cost).or(total_cost); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/storage.rs:238:26 [INFO] [stdout] | [INFO] [stdout] 238 | total_cost = total_cost.unwrap().checked_add(update_cost).or(total_cost); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/storage.rs:240:17 [INFO] [stdout] | [INFO] [stdout] 240 | total_cost.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/storage.rs:254:1 [INFO] [stdout] | [INFO] [stdout] 254 | / pub fn report_content_published_or_updated( [INFO] [stdout] 255 | | history_address: &HistoryAddress, [INFO] [stdout] 256 | | name: &String, [INFO] [stdout] 257 | | version: u64, [INFO] [stdout] ... | [INFO] [stdout] 262 | | is_awe: bool, [INFO] [stdout] 263 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `files_root` after checking its variant with `is_some` [INFO] [stdout] --> src/storage.rs:273:9 [INFO] [stdout] | [INFO] [stdout] 272 | let files_root = if files_root.is_some() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = files_root` [INFO] [stdout] 273 | files_root.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/storage.rs:259:17 [INFO] [stdout] | [INFO] [stdout] 259 | files_root: &PathBuf, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 259 - files_root: &PathBuf, [INFO] [stdout] 259 + files_root: &Path, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/storage.rs:265:34 [INFO] [stdout] | [INFO] [stdout] 265 | let type_str = if is_website { "CONTENT" } else { "CONTENT" }; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/storage.rs:265:53 [INFO] [stdout] | [INFO] [stdout] 265 | let type_str = if is_website { "CONTENT" } else { "CONTENT" }; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/storage.rs:273:9 [INFO] [stdout] | [INFO] [stdout] 273 | files_root.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:318:52 [INFO] [stdout] | [INFO] [stdout] 318 | let (cost, archive) = publish_files_public(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^ help: change this to: `client` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:318:61 [INFO] [stdout] | [INFO] [stdout] 318 | let (cost, archive) = publish_files_public(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `files_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/storage.rs:320:30 [INFO] [stdout] | [INFO] [stdout] 320 | .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 320 - .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] 320 + .inspect_err(|e| println!("{e}"))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:327:53 [INFO] [stdout] | [INFO] [stdout] 327 | let (cost, archive) = publish_files_private(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^ help: change this to: `client` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:327:62 [INFO] [stdout] | [INFO] [stdout] 327 | let (cost, archive) = publish_files_private(&client, &files_root, dweb_settings) [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `files_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/storage.rs:329:30 [INFO] [stdout] | [INFO] [stdout] 329 | .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 329 - .inspect_err(|e| println!("{}", e))?; [INFO] [stdout] 329 + .inspect_err(|e| println!("{e}"))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:340:9 [INFO] [stdout] | [INFO] [stdout] 340 | &"Storing archive as bytes with data_put_public()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"Storing archive as bytes with data_put_public()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:414:13 [INFO] [stdout] | [INFO] [stdout] 414 | &"file_content_upload_public()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"file_content_upload_public()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage.rs:424:21 [INFO] [stdout] | [INFO] [stdout] 424 | return Err(e.into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 424 - return Err(e.into()); [INFO] [stdout] 424 + Err(e.into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:510:13 [INFO] [stdout] | [INFO] [stdout] 510 | &"file_content_upload_public()", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `"file_content_upload_public()"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage.rs:520:21 [INFO] [stdout] | [INFO] [stdout] 520 | return Err(e.into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 520 - return Err(e.into()); [INFO] [stdout] 520 + Err(e.into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage.rs:598:19 [INFO] [stdout] | [INFO] [stdout] 598 | Err(e) => return Err(eyre!("Failed to upload directory tree: {e}")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 598 - Err(e) => return Err(eyre!("Failed to upload directory tree: {e}")), [INFO] [stdout] 598 + Err(e) => Err(eyre!("Failed to upload directory tree: {e}")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage.rs:630:19 [INFO] [stdout] | [INFO] [stdout] 630 | Err(e) => return Err(eyre!("Failed to upload directory tree: {e}")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 630 - Err(e) => return Err(eyre!("Failed to upload directory tree: {e}")), [INFO] [stdout] 630 + Err(e) => Err(eyre!("Failed to upload directory tree: {e}")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: try not to call a closure in the expression where it is declared [INFO] [stdout] --> src/storage.rs:642:24 [INFO] [stdout] | [INFO] [stdout] 642 | .unwrap_or(|path: &PathBuf| -> PathBuf { [INFO] [stdout] | ________________________^ [INFO] [stdout] 643 | | let mut prefix = PathBuf::new(); [INFO] [stdout] 644 | | let mut components = path.components(); [INFO] [stdout] 645 | | if let Some(first) = components.next() { [INFO] [stdout] ... | [INFO] [stdout] 662 | | prefix [INFO] [stdout] 663 | | }(&path)); [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stdout] = note: `#[warn(clippy::redundant_closure_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/storage.rs:647:46 [INFO] [stdout] | [INFO] [stdout] 647 | prefix = prefix.join(&ARCHIVE_PATH_SEPARATOR.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `ARCHIVE_PATH_SEPARATOR.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: try not to call a closure in the expression where it is declared [INFO] [stdout] --> src/storage.rs:683:24 [INFO] [stdout] | [INFO] [stdout] 683 | .unwrap_or(|path: &PathBuf| -> PathBuf { [INFO] [stdout] | ________________________^ [INFO] [stdout] 684 | | let mut prefix = PathBuf::new(); [INFO] [stdout] 685 | | let mut components = path.components(); [INFO] [stdout] 686 | | if let Some(first) = components.next() { [INFO] [stdout] ... | [INFO] [stdout] 703 | | prefix [INFO] [stdout] 704 | | }(&path)); [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/storage.rs:688:46 [INFO] [stdout] | [INFO] [stdout] 688 | prefix = prefix.join(&ARCHIVE_PATH_SEPARATOR.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `ARCHIVE_PATH_SEPARATOR.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage.rs:720:33 [INFO] [stdout] | [INFO] [stdout] 720 | if !does_path_contain_files(&files_root) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `files_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `ShowCost` which implements the `Copy` trait [INFO] [stdout] --> src/token.rs:54:25 [INFO] [stdout] | [INFO] [stdout] 54 | let show_cost = client.api_control.show_dweb_costs.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `client.api_control.show_dweb_costs` [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: unneeded `return` statement [INFO] [stdout] --> src/token.rs:211:9 [INFO] [stdout] | [INFO] [stdout] 211 | return format!("{RATE_VAR_PREFIX}{ticker}"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 211 - return format!("{RATE_VAR_PREFIX}{ticker}"); [INFO] [stdout] 211 + format!("{RATE_VAR_PREFIX}{ticker}") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/token.rs:238:30 [INFO] [stdout] | [INFO] [stdout] 238 | self.currency.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `app_id` after checking its variant with `is_some` [INFO] [stdout] --> src/types.rs:106:60 [INFO] [stdout] | [INFO] [stdout] 105 | if app_id.is_some() { [INFO] [stdout] | ------------------- help: try: `if let Some() = app_id` [INFO] [stdout] 106 | type_owner_secret = type_owner_secret.derive_child(app_id.unwrap().as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `supplied_name` after checking its variant with `is_some` [INFO] [stdout] --> src/types.rs:110:40 [INFO] [stdout] | [INFO] [stdout] 109 | if supplied_name.is_some() { [INFO] [stdout] | -------------------------- help: try: `if let Some() = supplied_name` [INFO] [stdout] 110 | type_owner_secret.derive_child(supplied_name.unwrap().as_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/types.rs:99:45 [INFO] [stdout] | [INFO] [stdout] 99 | supplied_derivation_index.unwrap_or(type_derivation_index.as_bytes().try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/types.rs:106:60 [INFO] [stdout] | [INFO] [stdout] 106 | type_owner_secret = type_owner_secret.derive_child(app_id.unwrap().as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/types.rs:110:40 [INFO] [stdout] | [INFO] [stdout] 110 | type_owner_secret.derive_child(supplied_name.unwrap().as_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `supplied_name` after checking its variant with `is_some` [INFO] [stdout] --> src/types.rs:132:40 [INFO] [stdout] | [INFO] [stdout] 131 | if supplied_name.is_some() { [INFO] [stdout] | -------------------------- help: try: `if let Some() = supplied_name` [INFO] [stdout] 132 | type_owner_secret.derive_child(supplied_name.unwrap().as_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on a `Result` value [INFO] [stdout] --> src/types.rs:125:45 [INFO] [stdout] | [INFO] [stdout] 125 | supplied_derivation_index.unwrap_or(type_derivation_index.as_bytes().try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is an `Err`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/types.rs:132:40 [INFO] [stdout] | [INFO] [stdout] 132 | type_owner_secret.derive_child(supplied_name.unwrap().as_bytes()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `content_type` after checking its variant with `is_some` [INFO] [stdout] --> src/web/fetch.rs:84:25 [INFO] [stdout] | [INFO] [stdout] 83 | let content_type = if content_type.is_some() { [INFO] [stdout] | ------------------------- help: try: `if let Some() = content_type` [INFO] [stdout] 84 | content_type.unwrap().clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `response` after checking its variant with `is_some` [INFO] [stdout] --> src/web/fetch.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 113 | if response.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = response` [INFO] [stdout] 114 | response.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:77:19 [INFO] [stdout] | [INFO] [stdout] 77 | match cache_version_entry [INFO] [stdout] | ___________________^ [INFO] [stdout] 78 | | .directory_tree [INFO] [stdout] 79 | | .unwrap() // Guaranteed to be Some() by directory_version_get() [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:84:25 [INFO] [stdout] | [INFO] [stdout] 84 | content_type.unwrap().clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | response.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `history_address` after checking its variant with `is_none` [INFO] [stdout] --> src/web/fetch.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 163 | let history_address = if history_address.is_none() { [INFO] [stdout] | ---------------------------- help: try: `if let Some() = history_address` [INFO] [stdout] ... [INFO] [stdout] 178 | history_address.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `archive_address` after checking its variant with `is_some` [INFO] [stdout] --> src/web/fetch.rs:183:31 [INFO] [stdout] | [INFO] [stdout] 182 | if archive_address.is_some() { [INFO] [stdout] | ---------------------------- help: try: `if let Some() = archive_address` [INFO] [stdout] 183 | let archive_address = archive_address.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `dweb_host.version` after checking its variant with `is_some` [INFO] [stdout] --> src/web/fetch.rs:204:21 [INFO] [stdout] | [INFO] [stdout] 203 | let (ignore_pointer, minimum_entry_index) = if dweb_host.version.is_some() { [INFO] [stdout] | ------------------------------ help: try: `if let Some() = dweb_host.version` [INFO] [stdout] 204 | (false, dweb_host.version.unwrap() + 1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/web/fetch.rs:189:9 [INFO] [stdout] | [INFO] [stdout] 189 | / return update_cached_directory_version_with_name( [INFO] [stdout] 190 | | &dweb_host, [INFO] [stdout] 191 | | history_address, [INFO] [stdout] 192 | | archive_address, [INFO] [stdout] 193 | | Some(directory_tree), [INFO] [stdout] 194 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 189 ~ update_cached_directory_version_with_name( [INFO] [stdout] 190 + &dweb_host, [INFO] [stdout] 191 + history_address, [INFO] [stdout] 192 + archive_address, [INFO] [stdout] 193 + Some(directory_tree), [INFO] [stdout] 194 ~ ) [INFO] [stdout] 195 | } else { [INFO] [stdout] ... [INFO] [stdout] 286 | return default_result; [INFO] [stdout] 287 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/web/fetch.rs:286:9 [INFO] [stdout] | [INFO] [stdout] 286 | return default_result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 286 ~ default_result [INFO] [stdout] 287 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | history_address.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:183:31 [INFO] [stdout] | [INFO] [stdout] 183 | let archive_address = archive_address.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/web/fetch.rs:190:13 [INFO] [stdout] | [INFO] [stdout] 190 | &dweb_host, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `dweb_host` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:204:21 [INFO] [stdout] | [INFO] [stdout] 204 | (false, dweb_host.version.unwrap() + 1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/web/fetch.rs:230:9 [INFO] [stdout] | [INFO] [stdout] 230 | / if let Some(version) = dweb_host.version { [INFO] [stdout] 231 | | if let Ok(history_versions) = history.num_versions() { [INFO] [stdout] 232 | | if history_versions == 0 { [INFO] [stdout] 233 | | return Err(eyre!("History is empty - no website to display")); [INFO] [stdout] ... | [INFO] [stdout] 242 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 230 ~ if let Some(version) = dweb_host.version [INFO] [stdout] 231 ~ && let Ok(history_versions) = history.num_versions() { [INFO] [stdout] 232 | if history_versions == 0 { [INFO] [stdout] ... [INFO] [stdout] 240 | }; [INFO] [stdout] 241 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/web/fetch.rs:259:13 [INFO] [stdout] | [INFO] [stdout] 259 | &dweb_host, [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `dweb_host` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `archive_address` after checking its variant with `is_some` [INFO] [stdout] --> src/web/fetch.rs:309:13 [INFO] [stdout] | [INFO] [stdout] 306 | if archive_address.is_some() { [INFO] [stdout] | ---------------------------- help: try: `if let Some() = archive_address` [INFO] [stdout] ... [INFO] [stdout] 309 | archive_address.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `archive_address` after checking its variant with `is_some` [INFO] [stdout] --> src/web/fetch.rs:311:48 [INFO] [stdout] | [INFO] [stdout] 306 | if archive_address.is_some() { [INFO] [stdout] | ---------------------------- help: try: `if let Some() = archive_address` [INFO] [stdout] ... [INFO] [stdout] 311 | Tree::from_archive_address(client, archive_address.unwrap()).await?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:309:13 [INFO] [stdout] | [INFO] [stdout] 309 | archive_address.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:311:48 [INFO] [stdout] | [INFO] [stdout] 311 | Tree::from_archive_address(client, archive_address.unwrap()).await?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/fetch.rs:319:9 [INFO] [stdout] | [INFO] [stdout] 319 | history_address.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/web/fetch.rs:357:39 [INFO] [stdout] | [INFO] [stdout] 357 | DirectoryVersionWithName::new(&dweb_host, history_address, archive_address, directory_tree); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `dweb_host` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/web/fetch.rs:439:9 [INFO] [stdout] | [INFO] [stdout] 439 | / return HttpResponseBuilder::new(status) [INFO] [stdout] 440 | | .append_header(header::ContentType(mime::TEXT_HTML)) [INFO] [stdout] 441 | | .reason(reason) [INFO] [stdout] 442 | | .body(html); [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 439 ~ HttpResponseBuilder::new(status) [INFO] [stdout] 440 + .append_header(header::ContentType(mime::TEXT_HTML)) [INFO] [stdout] 441 + .reason(reason) [INFO] [stdout] 442 ~ .body(html) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/web/fetch.rs:471:5 [INFO] [stdout] | [INFO] [stdout] 471 | redirect_url = redirect_url + port_str; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `redirect_url += port_str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/web/name.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | if memorable_part.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `memorable_part.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: useless use of `format!` [INFO] [stdout] --> src/web/name.rs:141:24 [INFO] [stdout] | [INFO] [stdout] 141 | let history_part = format!("{}", history_address.to_hex()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `history_address.to_hex().to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/web/name.rs:247:8 [INFO] [stdout] | [INFO] [stdout] 247 | if dweb_host.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `dweb_host.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: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/web/name.rs:255:8 [INFO] [stdout] | [INFO] [stdout] 255 | if total_segments > 4 || total_segments < 3 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(3..=4).contains(&total_segments)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/web/name.rs:311:30 [INFO] [stdout] | [INFO] [stdout] 311 | match validate_dweb_name(&dweb_name) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `dweb_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/web/name.rs:317:5 [INFO] [stdout] | [INFO] [stdout] 317 | / if let Some(domain_part) = segments.next() { [INFO] [stdout] 318 | | if domain_part == DOMAIN_PART { [INFO] [stdout] 319 | | if let Some(tld_part) = segments.next() { [INFO] [stdout] 320 | | if tld_part == TLD_PART && segments.next().is_none() { [INFO] [stdout] ... | [INFO] [stdout] 325 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 317 ~ if let Some(domain_part) = segments.next() [INFO] [stdout] 318 ~ && domain_part == DOMAIN_PART { [INFO] [stdout] 319 | if let Some(tld_part) = segments.next() { [INFO] [stdout] ... [INFO] [stdout] 323 | } [INFO] [stdout] 324 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/web/name.rs:318:9 [INFO] [stdout] | [INFO] [stdout] 318 | / if domain_part == DOMAIN_PART { [INFO] [stdout] 319 | | if let Some(tld_part) = segments.next() { [INFO] [stdout] 320 | | if tld_part == TLD_PART && segments.next().is_none() { [INFO] [stdout] 321 | | ends_with_dlp_tld = true; [INFO] [stdout] ... | [INFO] [stdout] 324 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 318 ~ if domain_part == DOMAIN_PART [INFO] [stdout] 319 ~ && let Some(tld_part) = segments.next() { [INFO] [stdout] 320 | if tld_part == TLD_PART && segments.next().is_none() { [INFO] [stdout] 321 | ends_with_dlp_tld = true; [INFO] [stdout] 322 | } [INFO] [stdout] 323 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/web/name.rs:319:13 [INFO] [stdout] | [INFO] [stdout] 319 | / if let Some(tld_part) = segments.next() { [INFO] [stdout] 320 | | if tld_part == TLD_PART && segments.next().is_none() { [INFO] [stdout] 321 | | ends_with_dlp_tld = true; [INFO] [stdout] 322 | | } [INFO] [stdout] 323 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 319 ~ if let Some(tld_part) = segments.next() [INFO] [stdout] 320 ~ && tld_part == TLD_PART && segments.next().is_none() { [INFO] [stdout] 321 | ends_with_dlp_tld = true; [INFO] [stdout] 322 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `cached_history_address` after checking its variant with `is_some` [INFO] [stdout] --> src/web/name.rs:426:46 [INFO] [stdout] | [INFO] [stdout] 425 | if cached_history_address.is_some() { [INFO] [stdout] | ----------------------------------- help: try: `if let Some() = cached_history_address` [INFO] [stdout] 426 | let cached_history_address = cached_history_address.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/web/name.rs:415:30 [INFO] [stdout] | [INFO] [stdout] 415 | match validate_dweb_name(&dweb_name) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `dweb_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on an `Option` value [INFO] [stdout] --> src/web/name.rs:426:46 [INFO] [stdout] | [INFO] [stdout] 426 | let cached_history_address = cached_history_address.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if this value is `None`, it will panic [INFO] [stdout] = help: consider using `expect()` to provide a better panic message [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 25s [INFO] running `Command { std: "docker" "inspect" "64771814f51654d16cc1212e2a08eebdccd6cc04c37f9ff9cd4f7b63daf15be6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "64771814f51654d16cc1212e2a08eebdccd6cc04c37f9ff9cd4f7b63daf15be6", kill_on_drop: false }` [INFO] [stdout] 64771814f51654d16cc1212e2a08eebdccd6cc04c37f9ff9cd4f7b63daf15be6