[INFO] cloning repository https://github.com/TommyHaszard/gabber-chat-rust-lib [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/TommyHaszard/gabber-chat-rust-lib" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTommyHaszard%2Fgabber-chat-rust-lib", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTommyHaszard%2Fgabber-chat-rust-lib'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fbf37b47a52322cdf7e4b1cae21f217b66502e79 [INFO] building TommyHaszard/gabber-chat-rust-lib against master#ad85bc524b1ad696e42061ad8338d382dffbdbe5 for pr-146237-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTommyHaszard%2Fgabber-chat-rust-lib" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/TommyHaszard/gabber-chat-rust-lib [INFO] finished tweaking git repo https://github.com/TommyHaszard/gabber-chat-rust-lib [INFO] tweaked toml for git repo https://github.com/TommyHaszard/gabber-chat-rust-lib written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/TommyHaszard/gabber-chat-rust-lib on toolchain ad85bc524b1ad696e42061ad8338d382dffbdbe5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/TommyHaszard/gabber-chat-rust-lib 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" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded uniffi_build v0.29.1 [INFO] [stderr] Downloaded rinja v0.3.5 [INFO] [stderr] Downloaded uniffi_udl v0.29.1 [INFO] [stderr] Downloaded rinja_parser v0.3.5 [INFO] [stderr] Downloaded r2d2_sqlite v0.28.0 [INFO] [stderr] Downloaded uniffi v0.29.1 [INFO] [stderr] Downloaded uniffi_core v0.29.1 [INFO] [stderr] Downloaded basic-toml v0.1.10 [INFO] [stderr] Downloaded uniffi_macros v0.29.1 [INFO] [stderr] Downloaded scroll v0.12.0 [INFO] [stderr] Downloaded uniffi_bindgen v0.29.1 [INFO] [stderr] Downloaded fs-err v2.11.0 [INFO] [stderr] Downloaded plain v0.2.3 [INFO] [stderr] Downloaded scroll_derive v0.12.0 [INFO] [stderr] Downloaded rinja_derive v0.3.5 [INFO] [stderr] Downloaded goblin v0.8.2 [INFO] [stderr] Downloaded uniffi_meta v0.29.1 [INFO] [stderr] Downloaded weedle2 v5.0.0 [INFO] [stderr] Downloaded uniffi_internal_macros v0.29.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1b57c12409dc28fa023bf49774330f36e396ddbb92f9454095f938ac78f6272b [INFO] running `Command { std: "docker" "start" "-a" "1b57c12409dc28fa023bf49774330f36e396ddbb92f9454095f938ac78f6272b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1b57c12409dc28fa023bf49774330f36e396ddbb92f9454095f938ac78f6272b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1b57c12409dc28fa023bf49774330f36e396ddbb92f9454095f938ac78f6272b", kill_on_drop: false }` [INFO] [stdout] 1b57c12409dc28fa023bf49774330f36e396ddbb92f9454095f938ac78f6272b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5592fd0c6eedbd071ee9ef8bba3dab6e205ecae07ae8d907dcbc7eda4864d2cd [INFO] running `Command { std: "docker" "start" "-a" "5592fd0c6eedbd071ee9ef8bba3dab6e205ecae07ae8d907dcbc7eda4864d2cd", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.94 [INFO] [stderr] Compiling libc v0.2.171 [INFO] [stderr] Compiling anyhow v1.0.97 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling unicase v2.8.1 [INFO] [stderr] Compiling mime v0.3.17 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling fs-err v2.11.0 [INFO] [stderr] Compiling smawk v0.3.2 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling camino v1.1.9 [INFO] [stderr] Compiling getrandom v0.3.2 [INFO] [stderr] Compiling rustc-hash v2.1.1 [INFO] [stderr] Compiling plain v0.2.3 [INFO] [stderr] Compiling zerocopy v0.8.24 [INFO] [stderr] Compiling glob v0.3.2 [INFO] [stderr] Compiling smallvec v1.14.0 [INFO] [stderr] Compiling textwrap v0.16.2 [INFO] [stderr] Compiling cc v1.2.10 [INFO] [stderr] Compiling semver v1.0.26 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling bitflags v2.9.0 [INFO] [stderr] Compiling hashbrown v0.15.2 [INFO] [stderr] Compiling curve25519-dalek v4.1.3 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling clap_lex v0.7.5 [INFO] [stderr] Compiling rustix v1.0.3 [INFO] [stderr] Compiling anstyle v1.0.11 [INFO] [stderr] Compiling virtue v0.0.18 [INFO] [stderr] Compiling linux-raw-sys v0.9.3 [INFO] [stderr] Compiling uniffi_core v0.29.1 [INFO] [stderr] Compiling iana-time-zone v0.1.62 [INFO] [stderr] Compiling unty v0.0.4 [INFO] [stderr] Compiling clap_builder v4.5.41 [INFO] [stderr] Compiling chrono v0.4.40 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling bincode_derive v2.0.1 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling hashlink v0.10.0 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling universal-hash v0.5.1 [INFO] [stderr] Compiling aead v0.5.2 [INFO] [stderr] Compiling poly1305 v0.8.0 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling sha2 v0.10.8 [INFO] [stderr] Compiling scheduled-thread-pool v0.2.7 [INFO] [stderr] Compiling hkdf v0.12.4 [INFO] [stderr] Compiling libsqlite3-sys v0.33.0 [INFO] [stderr] Compiling r2d2 v0.8.10 [INFO] [stderr] Compiling weedle2 v5.0.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling tempfile v3.19.1 [INFO] [stderr] Compiling rand v0.9.0 [INFO] [stderr] Compiling uuid v1.16.0 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling uniffi_internal_macros v0.29.1 [INFO] [stderr] Compiling scroll_derive v0.12.0 [INFO] [stderr] Compiling zeroize_derive v1.4.2 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling clap_derive v4.5.41 [INFO] [stderr] Compiling curve25519-dalek-derive v0.1.1 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling uniffi_meta v0.29.1 [INFO] [stderr] Compiling scroll v0.12.0 [INFO] [stderr] Compiling zeroize v1.8.1 [INFO] [stderr] Compiling uniffi_udl v0.29.1 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling chacha20 v0.9.1 [INFO] [stderr] Compiling goblin v0.8.2 [INFO] [stderr] Compiling chacha20poly1305 v0.10.1 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Compiling clap v4.5.41 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling cargo-platform v0.1.9 [INFO] [stderr] Compiling toml v0.5.11 [INFO] [stderr] Compiling bincode v2.0.1 [INFO] [stderr] Compiling rusqlite v0.35.0 [INFO] [stderr] Compiling basic-toml v0.1.10 [INFO] [stderr] Compiling rinja_parser v0.3.5 [INFO] [stderr] Compiling cargo_metadata v0.15.4 [INFO] [stderr] Compiling x25519-dalek v2.0.1 [INFO] [stderr] Compiling r2d2_sqlite v0.28.0 [INFO] [stderr] Compiling uniffi_macros v0.29.1 [INFO] [stderr] Compiling rinja_derive v0.3.5 [INFO] [stderr] Compiling rinja v0.3.5 [INFO] [stderr] Compiling uniffi_bindgen v0.29.1 [INFO] [stderr] Compiling uniffi_build v0.29.1 [INFO] [stderr] Compiling uniffi v0.29.1 [INFO] [stderr] Compiling gabber-chat-lib v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `StaticSecret` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:8:31 [INFO] [stdout] | [INFO] [stdout] 8 | use x25519_dalek::{PublicKey, StaticSecret}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hmac::digest::typenum::Mod` [INFO] [stdout] --> src/libs/core/models.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use hmac::digest::typenum::Mod; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::DatabaseError` [INFO] [stdout] --> src/libs/core/models.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::DatabaseError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AeadCore` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use chacha20poly1305::{AeadCore, ChaCha20Poly1305, Nonce}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Key` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | use hmac::digest::{Key, KeyInit}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `format` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:10:16 [INFO] [stdout] | [INFO] [stdout] 10 | use std::fmt::{format, Debug, Formatter}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::write` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::ptr::write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Payload` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:5:44 [INFO] [stdout] | [INFO] [stdout] 5 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AeadCore` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | use chacha20poly1305::{AeadCore, ChaCha20Poly1305, Nonce}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Key` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | use hmac::digest::{Key, KeyInit}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Debug` and `format` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | use std::fmt::{format, Debug, Formatter}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::write` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::ptr::write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StaticSecret` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:16:45 [INFO] [stdout] | [INFO] [stdout] 16 | use x25519_dalek::{PublicKey, SharedSecret, StaticSecret}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Connection` [INFO] [stdout] --> src/libs/storage/database/database.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use rusqlite::{Connection, Result}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::OnceCell` [INFO] [stdout] --> src/libs/storage/database/database.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cell::OnceCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/libs/storage/database/database.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::{Mutex, Once, OnceLock}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Storage` and `StoreError` [INFO] [stdout] --> src/libs/storage/database/database.rs:6:54 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::libs::storage::database::storage_traits::{Storage, StoreError, Transactional}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection` and `Error` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:15:24 [INFO] [stdout] | [INFO] [stdout] 15 | use rusqlite::{params, Connection, Error, OptionalExtension, Result, Transaction}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bincode::config::standard` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use bincode::config::standard; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rusqlite::params` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use rusqlite::params; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `fmt` and `format` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | use std::{fmt, format}; [INFO] [stdout] | ^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `x25519_dalek::PublicKey` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use x25519_dalek::PublicKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::libs::storage::database::storage_traits::StoreError::Database` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::libs::storage::database::storage_traits::StoreError::Database; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::format` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `x25519_dalek::PublicKey` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use x25519_dalek::PublicKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::libs::uniffi::models::Message` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::libs::uniffi::models::Message; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DHKeyGenerator` [INFO] [stdout] --> src/libs/storage/records.rs:2:47 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::libs::encryption::double_ratchet::{DHKeyGenerator, DoubleRatchet}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Storage`, `Transactional`, and `UserStore` [INFO] [stdout] --> src/lib.rs:6:47 [INFO] [stdout] | [INFO] [stdout] 6 | use libs::storage::database::storage_traits::{Storage, Transactional, UserStore}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Buffer` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Digest` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | use sha2::{Digest, Sha256}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Buffer` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:5:36 [INFO] [stdout] | [INFO] [stdout] 5 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bob_user_record` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | let bob_user_record = UserRecord::new( [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_user_record` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | mut dh_key_pair_gen: &mut DHKeyGen, [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | let mut alice_double_ratchet = [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice_user_record` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | let alice_user_record = UserRecord::new( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_alice_user_record` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | let mut bob_double_ratchet = [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cks` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | cks: Option, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cks` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | let mut chain_manager = SessionChainManager::default(); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dhr` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:229:21 [INFO] [stdout] | [INFO] [stdout] 229 | if let Some(dhr) = self.dhr { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dhr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nhk` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:98:23 [INFO] [stdout] | [INFO] [stdout] 98 | let (rk, cks, nhk) = kdf_rk_he(shared_root_key, &dh).unwrap(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_nhk` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `check` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:170:30 [INFO] [stdout] | [INFO] [stdout] 170 | let (header, check) = self.try_decrypt_he(&header_enc)?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_check` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `header` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | header: &CipherText, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cipher_text` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | cipher_text: &CipherText, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cipher_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `associated_data` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | associated_data: &[u8], [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_associated_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/libs/storage/database/database.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | if let Some(db) = DATABASE.get() { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/libs/storage/database/database.rs:173:42 [INFO] [stdout] | [INFO] [stdout] 173 | sqlite_transaction.commit().map_err(|err| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stmt` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:189:17 [INFO] [stdout] | [INFO] [stdout] 189 | let mut stmt = self.tx.prepare( [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message_from` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 187 | message_from: &IdentityKey, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_from` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | let mut stmt = self.tx.prepare( [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `public_key` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:442:32 [INFO] [stdout] | [INFO] [stdout] 442 | fn save_message(&mut self, public_key: &PublicKeyInternal, message: MessageRecord) -> Result<(), StoreError> { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_public_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/lib.rs:151:19 [INFO] [stdout] | [INFO] [stdout] 151 | .map_err(|err| DatabaseError::RetrievalError("Try from Slice Error".to_string()))?; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KEY_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const KEY_SIZE: usize = 32; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IDENTITY_KEY_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const IDENTITY_KEY_SIZE: usize = 16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `QR_KEYS_EXPECTED_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const QR_KEYS_EXPECTED_SIZE: usize = KEY_SIZE * 2 + IDENTITY_KEY_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ChatInitError` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum ChatInitError { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serialize_keys` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn serialize_keys(key1: &Uuid, key2: &PublicKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deserialize_keys` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn deserialize_keys(data: &[u8]) -> Result<(IdentityKey, PublicKey, KeySecret), ChatInitError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bob_generate_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn bob_generate_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `alice_init_from_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn alice_init_from_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `alice_generate_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:87:4 [INFO] [stdout] | [INFO] [stdout] 87 | fn alice_generate_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bob_init_from_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn bob_init_from_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HKDF_INFO_ENCRYPTION_HEADER_KEY` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const HKDF_INFO_ENCRYPTION_HEADER_KEY: &[u8] = b"ENCRYPTION_HEADER_KEY"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HmacSha256` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:29:6 [INFO] [stdout] | [INFO] [stdout] 29 | type HmacSha256 = Hmac; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HKDF_INFO_ENCRYPTION_KEY` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | const HKDF_INFO_ENCRYPTION_KEY: &[u8] = b"ENCRYPTION_KEY"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KEY_SECRET_LEN` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:53:7 [INFO] [stdout] | [INFO] [stdout] 53 | const KEY_SECRET_LEN: usize = 32; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `next_header_key_send` is never read [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct DoubleRatchetHE { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 85 | next_header_key_send: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DoubleRatchetHE` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kdf_ck_he` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:304:4 [INFO] [stdout] | [INFO] [stdout] 304 | fn kdf_ck_he(chain_key: &KeySecret) -> Result<(KeySecret, KeySecret), DoubleRatchetError> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `INIT` is never used [INFO] [stdout] --> src/libs/storage/database/database.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | static INIT: Once = Once::new(); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_pub_key_from_bytes` is never used [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:464:4 [INFO] [stdout] | [INFO] [stdout] 464 | fn get_pub_key_from_bytes(pk_bytes: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: crate `ChatLib` should have a snake case name [INFO] [stdout] | [INFO] [stdout] = help: convert the identifier to snake case: `chat_lib` [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:301:13 [INFO] [stdout] | [INFO] [stdout] 301 | self.dh_ratchet(&header, dh_key_generator); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 301 | let _ = self.dh_ratchet(&header, dh_key_generator); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:172:21 [INFO] [stdout] | [INFO] [stdout] 172 | self.skip_message_keys_he(header.prev_chain_number); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 172 | let _ = self.skip_message_keys_he(header.prev_chain_number); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:173:21 [INFO] [stdout] | [INFO] [stdout] 173 | self.dh_ratchet(&header); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 173 | let _ = self.dh_ratchet(&header); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:176:17 [INFO] [stdout] | [INFO] [stdout] 176 | self.skip_message_keys_he(header.message_number); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 176 | let _ = self.skip_message_keys_he(header.message_number); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:32:18 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn inner(&self) -> &Transaction { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | | || [INFO] [stdout] | | |the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 32 | pub fn inner(&self) -> &Transaction<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 27 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 42 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 57 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 79 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 94 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 109 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 126 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 138 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 138 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 42s [INFO] running `Command { std: "docker" "inspect" "5592fd0c6eedbd071ee9ef8bba3dab6e205ecae07ae8d907dcbc7eda4864d2cd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5592fd0c6eedbd071ee9ef8bba3dab6e205ecae07ae8d907dcbc7eda4864d2cd", kill_on_drop: false }` [INFO] [stdout] 5592fd0c6eedbd071ee9ef8bba3dab6e205ecae07ae8d907dcbc7eda4864d2cd [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ccefe6baf0524978a3e43a55aa07678bc80c0e7fd32e45fcaa9d90a456e7fbfa [INFO] running `Command { std: "docker" "start" "-a" "ccefe6baf0524978a3e43a55aa07678bc80c0e7fd32e45fcaa9d90a456e7fbfa", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `StaticSecret` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:8:31 [INFO] [stdout] | [INFO] [stdout] 8 | use x25519_dalek::{PublicKey, StaticSecret}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hmac::digest::typenum::Mod` [INFO] [stdout] --> src/libs/core/models.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use hmac::digest::typenum::Mod; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::DatabaseError` [INFO] [stdout] --> src/libs/core/models.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::DatabaseError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AeadCore` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use chacha20poly1305::{AeadCore, ChaCha20Poly1305, Nonce}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Key` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | use hmac::digest::{Key, KeyInit}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `format` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:10:16 [INFO] [stdout] | [INFO] [stdout] 10 | use std::fmt::{format, Debug, Formatter}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::write` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::ptr::write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Payload` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:5:44 [INFO] [stdout] | [INFO] [stdout] 5 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AeadCore` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | use chacha20poly1305::{AeadCore, ChaCha20Poly1305, Nonce}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Key` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | use hmac::digest::{Key, KeyInit}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Debug` and `format` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | use std::fmt::{format, Debug, Formatter}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::write` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::ptr::write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StaticSecret` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:16:45 [INFO] [stdout] | [INFO] [stdout] 16 | use x25519_dalek::{PublicKey, SharedSecret, StaticSecret}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Connection` [INFO] [stdout] --> src/libs/storage/database/database.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use rusqlite::{Connection, Result}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::OnceCell` [INFO] [stdout] --> src/libs/storage/database/database.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cell::OnceCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/libs/storage/database/database.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::{Mutex, Once, OnceLock}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Storage` and `StoreError` [INFO] [stdout] --> src/libs/storage/database/database.rs:6:54 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::libs::storage::database::storage_traits::{Storage, StoreError, Transactional}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection` and `Error` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:15:24 [INFO] [stdout] | [INFO] [stdout] 15 | use rusqlite::{params, Connection, Error, OptionalExtension, Result, Transaction}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bincode::config::standard` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use bincode::config::standard; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rusqlite::params` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use rusqlite::params; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `fmt` and `format` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | use std::{fmt, format}; [INFO] [stdout] | ^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `x25519_dalek::PublicKey` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use x25519_dalek::PublicKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::libs::storage::database::storage_traits::StoreError::Database` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::libs::storage::database::storage_traits::StoreError::Database; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::format` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `x25519_dalek::PublicKey` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use x25519_dalek::PublicKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::libs::uniffi::models::Message` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::libs::uniffi::models::Message; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DHKeyGenerator` [INFO] [stdout] --> src/libs/storage/records.rs:2:47 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::libs::encryption::double_ratchet::{DHKeyGenerator, DoubleRatchet}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Storage`, `Transactional`, and `UserStore` [INFO] [stdout] --> src/lib.rs:6:47 [INFO] [stdout] | [INFO] [stdout] 6 | use libs::storage::database::storage_traits::{Storage, Transactional, UserStore}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Buffer` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Digest` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | use sha2::{Digest, Sha256}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Buffer` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:5:36 [INFO] [stdout] | [INFO] [stdout] 5 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bob_user_record` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | let bob_user_record = UserRecord::new( [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_user_record` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | mut dh_key_pair_gen: &mut DHKeyGen, [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | let mut alice_double_ratchet = [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice_user_record` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | let alice_user_record = UserRecord::new( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_alice_user_record` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | let mut bob_double_ratchet = [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cks` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | cks: Option, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cks` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | let mut chain_manager = SessionChainManager::default(); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dhr` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:229:21 [INFO] [stdout] | [INFO] [stdout] 229 | if let Some(dhr) = self.dhr { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dhr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nhk` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:98:23 [INFO] [stdout] | [INFO] [stdout] 98 | let (rk, cks, nhk) = kdf_rk_he(shared_root_key, &dh).unwrap(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_nhk` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `check` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:170:30 [INFO] [stdout] | [INFO] [stdout] 170 | let (header, check) = self.try_decrypt_he(&header_enc)?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_check` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `header` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | header: &CipherText, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cipher_text` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | cipher_text: &CipherText, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cipher_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `associated_data` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | associated_data: &[u8], [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_associated_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/libs/storage/database/database.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | if let Some(db) = DATABASE.get() { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/libs/storage/database/database.rs:173:42 [INFO] [stdout] | [INFO] [stdout] 173 | sqlite_transaction.commit().map_err(|err| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stmt` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:189:17 [INFO] [stdout] | [INFO] [stdout] 189 | let mut stmt = self.tx.prepare( [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message_from` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 187 | message_from: &IdentityKey, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_from` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | let mut stmt = self.tx.prepare( [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `public_key` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:442:32 [INFO] [stdout] | [INFO] [stdout] 442 | fn save_message(&mut self, public_key: &PublicKeyInternal, message: MessageRecord) -> Result<(), StoreError> { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_public_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/lib.rs:151:19 [INFO] [stdout] | [INFO] [stdout] 151 | .map_err(|err| DatabaseError::RetrievalError("Try from Slice Error".to_string()))?; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KEY_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const KEY_SIZE: usize = 32; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IDENTITY_KEY_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const IDENTITY_KEY_SIZE: usize = 16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `QR_KEYS_EXPECTED_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const QR_KEYS_EXPECTED_SIZE: usize = KEY_SIZE * 2 + IDENTITY_KEY_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ChatInitError` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum ChatInitError { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serialize_keys` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn serialize_keys(key1: &Uuid, key2: &PublicKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deserialize_keys` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn deserialize_keys(data: &[u8]) -> Result<(IdentityKey, PublicKey, KeySecret), ChatInitError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bob_generate_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn bob_generate_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling gabber-chat-lib v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: function `alice_init_from_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn alice_init_from_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `alice_generate_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:87:4 [INFO] [stdout] | [INFO] [stdout] 87 | fn alice_generate_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bob_init_from_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn bob_init_from_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HKDF_INFO_ENCRYPTION_HEADER_KEY` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const HKDF_INFO_ENCRYPTION_HEADER_KEY: &[u8] = b"ENCRYPTION_HEADER_KEY"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HmacSha256` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:29:6 [INFO] [stdout] | [INFO] [stdout] 29 | type HmacSha256 = Hmac; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HKDF_INFO_ENCRYPTION_KEY` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | const HKDF_INFO_ENCRYPTION_KEY: &[u8] = b"ENCRYPTION_KEY"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KEY_SECRET_LEN` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:53:7 [INFO] [stdout] | [INFO] [stdout] 53 | const KEY_SECRET_LEN: usize = 32; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `next_header_key_send` is never read [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct DoubleRatchetHE { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 85 | next_header_key_send: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DoubleRatchetHE` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kdf_ck_he` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:304:4 [INFO] [stdout] | [INFO] [stdout] 304 | fn kdf_ck_he(chain_key: &KeySecret) -> Result<(KeySecret, KeySecret), DoubleRatchetError> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `INIT` is never used [INFO] [stdout] --> src/libs/storage/database/database.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | static INIT: Once = Once::new(); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_pub_key_from_bytes` is never used [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:464:4 [INFO] [stdout] | [INFO] [stdout] 464 | fn get_pub_key_from_bytes(pk_bytes: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: crate `ChatLib` should have a snake case name [INFO] [stdout] | [INFO] [stdout] = help: convert the identifier to snake case: `chat_lib` [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:301:13 [INFO] [stdout] | [INFO] [stdout] 301 | self.dh_ratchet(&header, dh_key_generator); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 301 | let _ = self.dh_ratchet(&header, dh_key_generator); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:172:21 [INFO] [stdout] | [INFO] [stdout] 172 | self.skip_message_keys_he(header.prev_chain_number); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 172 | let _ = self.skip_message_keys_he(header.prev_chain_number); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:173:21 [INFO] [stdout] | [INFO] [stdout] 173 | self.dh_ratchet(&header); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 173 | let _ = self.dh_ratchet(&header); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:176:17 [INFO] [stdout] | [INFO] [stdout] 176 | self.skip_message_keys_he(header.message_number); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 176 | let _ = self.skip_message_keys_he(header.message_number); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:32:18 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn inner(&self) -> &Transaction { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | | || [INFO] [stdout] | | |the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 32 | pub fn inner(&self) -> &Transaction<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 27 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 42 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 57 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 79 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 94 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 109 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 126 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 138 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 138 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rusqlite::Connection` [INFO] [stdout] --> tests/common/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use rusqlite::Connection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ChatLib::libs::storage::database::database::DATABASE` [INFO] [stdout] --> tests/common/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use ChatLib::libs::storage::database::database::DATABASE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::rngs::OsRng` [INFO] [stdout] --> tests/ratchet_encryption.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use rand::rngs::OsRng; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::TryRngCore` [INFO] [stdout] --> tests/ratchet_encryption.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use rand::TryRngCore; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> tests/ratchet_encryption.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice` [INFO] [stdout] --> tests/ratchet_encryption.rs:29:14 [INFO] [stdout] | [INFO] [stdout] 29 | let (mut alice, mut bob) = ratchet_init(real_gen); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_alice` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/ratchet_encryption.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 29 | let (mut alice, mut bob) = ratchet_init(real_gen); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `aaa_init` is never used [INFO] [stdout] --> tests/common/mod.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn aaa_init(init: &Once, dir: &str, prefix: &str) { [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 `cleanup_test_db` is never used [INFO] [stdout] --> tests/common/mod.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn cleanup_test_db(sqlite_transaction: SqliteTransaction) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | init_database(db_path.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 32 | let _ = init_database(db_path.clone()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 62 | let _ = OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chacha20poly1305::aead::rand_core::RngCore` [INFO] [stdout] --> tests/integration_test.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use chacha20poly1305::aead::rand_core::RngCore; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DHKeyGenerator` [INFO] [stdout] --> tests/integration_test.rs:5:49 [INFO] [stdout] | [INFO] [stdout] 5 | use ChatLib::libs::encryption::double_ratchet::{DHKeyGenerator, RealKeyGenerator}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rusqlite::Connection` [INFO] [stdout] --> tests/common/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use rusqlite::Connection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ChatLib::libs::storage::database::database::DATABASE` [INFO] [stdout] --> tests/common/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use ChatLib::libs::storage::database::database::DATABASE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chacha20poly1305::aead::rand_core::RngCore` [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use chacha20poly1305::aead::rand_core::RngCore; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DHKeyGenerator` [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:9:49 [INFO] [stdout] | [INFO] [stdout] 9 | use ChatLib::libs::encryption::double_ratchet::{DHKeyGenerator, DoubleRatchet, RealKeyGenerator}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rusqlite::Connection` [INFO] [stdout] --> tests/common/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use rusqlite::Connection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ChatLib::libs::storage::database::database::DATABASE` [INFO] [stdout] --> tests/common/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use ChatLib::libs::storage::database::database::DATABASE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rusqlite::Connection` [INFO] [stdout] --> tests/common/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use rusqlite::Connection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ChatLib::libs::storage::database::database::DATABASE` [INFO] [stdout] --> tests/common/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use ChatLib::libs::storage::database::database::DATABASE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> tests/database.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UserRecord` [INFO] [stdout] --> tests/database.rs:13:54 [INFO] [stdout] | [INFO] [stdout] 13 | use ChatLib::libs::storage::records::{SessionRecord, UserRecord}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ChatLib::*` [INFO] [stdout] --> tests/database.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use ChatLib::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bob_ad` [INFO] [stdout] --> tests/integration_test.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | let bob_ad = b"BOB_ASSOCIATED_DATA"; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_ad` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/integration_test.rs:49:21 [INFO] [stdout] | [INFO] [stdout] 49 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: renamed to `rng` [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:177:25 [INFO] [stdout] | [INFO] [stdout] 177 | let mut rng = rand::thread_rng(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice_ad` [INFO] [stdout] --> tests/database.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | let alice_ad = b"ALICE_ASSOCIATED_DATA"; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_alice_ad` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024. [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:209:39 [INFO] [stdout] | [INFO] [stdout] 209 | let message_type = if rng.gen() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bob_ad` [INFO] [stdout] --> tests/database.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | let bob_ad = b"BOB_ASSOCIATED_DATA"; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_ad` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 186 | let mut real_gen = RealKeyGenerator::new(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice` [INFO] [stdout] --> tests/database.rs:67:14 [INFO] [stdout] | [INFO] [stdout] 67 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_alice` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice` [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:246:10 [INFO] [stdout] | [INFO] [stdout] 246 | let (alice, bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_alice` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:245:9 [INFO] [stdout] | [INFO] [stdout] 245 | let mut real_gen = RealKeyGenerator::new(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/database.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | let mut real_gen = RealKeyGenerator::new(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:375:10 [INFO] [stdout] | [INFO] [stdout] 375 | for (i, message) in messages_to_send.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/database.rs:67:10 [INFO] [stdout] | [INFO] [stdout] 67 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/database.rs:67:21 [INFO] [stdout] | [INFO] [stdout] 67 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice_ad` [INFO] [stdout] --> tests/database.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | let alice_ad = b"ALICE_ASSOCIATED_DATA"; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_alice_ad` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bob_ad` [INFO] [stdout] --> tests/database.rs:166:9 [INFO] [stdout] | [INFO] [stdout] 166 | let bob_ad = b"BOB_ASSOCIATED_DATA"; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_ad` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:482:9 [INFO] [stdout] | [INFO] [stdout] 482 | let mut tx = SqliteTransaction::new(connection).expect("Failed to create cleanup transaction"); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `bob_ad` is never read [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 24 | struct TestData { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 29 | bob_ad: &'static [u8], [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 `test_user_creation_and_session_management` is never used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:241:4 [INFO] [stdout] | [INFO] [stdout] 241 | fn test_user_creation_and_session_management() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_message_storage_and_encryption` is never used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:276:4 [INFO] [stdout] | [INFO] [stdout] 276 | fn test_message_storage_and_encryption() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_session_state_persistence` is never used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:427:4 [INFO] [stdout] | [INFO] [stdout] 427 | fn test_session_state_persistence() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cleanup_test_db_connection` is never used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:481:4 [INFO] [stdout] | [INFO] [stdout] 481 | fn cleanup_test_db_connection(connection: &mut PooledConnection) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cleanup_test_db` is never used [INFO] [stdout] --> tests/common/mod.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn cleanup_test_db(sqlite_transaction: SqliteTransaction) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice` [INFO] [stdout] --> tests/database.rs:168:14 [INFO] [stdout] | [INFO] [stdout] 168 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_alice` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/database.rs:167:9 [INFO] [stdout] | [INFO] [stdout] 167 | let mut real_gen = RealKeyGenerator::new(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/database.rs:168:10 [INFO] [stdout] | [INFO] [stdout] 168 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/database.rs:168:21 [INFO] [stdout] | [INFO] [stdout] 168 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/database.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | tx_1.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 54 | let _ = tx_1.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/database.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | tx_2.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 78 | let _ = tx_2.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/database.rs:103:5 [INFO] [stdout] | [INFO] [stdout] 103 | tx_1.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 103 | let _ = tx_1.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/database.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 118 | tx_2.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 118 | let _ = tx_2.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/database.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | tx_1.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 155 | let _ = tx_1.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/database.rs:179:5 [INFO] [stdout] | [INFO] [stdout] 179 | tx_2.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 179 | let _ = tx_2.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | init_database(db_path.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 32 | let _ = init_database(db_path.clone()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 62 | let _ = OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | tx.commit(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 71 | let _ = tx.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | tx.commit(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 75 | let _ = tx.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | tx.commit(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 90 | let _ = tx.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | tx.store_message(public_key, message_type, content); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 106 | let _ = tx.store_message(public_key, message_type, content); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 107 | tx.commit(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 107 | let _ = tx.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | tx.commit(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 121 | let _ = tx.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:135:5 [INFO] [stdout] | [INFO] [stdout] 135 | tx.commit(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 135 | let _ = tx.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:149:5 [INFO] [stdout] | [INFO] [stdout] 149 | tx.store_session(session); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 149 | let _ = tx.store_session(session); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/load_latest_message_for_user_test.rs:150:5 [INFO] [stdout] | [INFO] [stdout] 150 | tx.commit(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 150 | let _ = tx.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | init_database(db_path.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 32 | let _ = init_database(db_path.clone()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 62 | let _ = OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bob_ad` [INFO] [stdout] --> tests/integration_test.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | let bob_ad = b"BOB_ASSOCIATED_DATA"; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_ad` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/integration_test.rs:115:21 [INFO] [stdout] | [INFO] [stdout] 115 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/integration_test.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | let mut bob_session_retrieved2 = tx_5 [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bob_ad` [INFO] [stdout] --> tests/integration_test.rs:247:9 [INFO] [stdout] | [INFO] [stdout] 247 | let bob_ad = b"BOB_ASSOCIATED_DATA"; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_ad` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/integration_test.rs:249:21 [INFO] [stdout] | [INFO] [stdout] 249 | let (mut alice, mut bob_double_ratchet) = ratchet_init(real_gen); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> tests/integration_test.rs:307:9 [INFO] [stdout] | [INFO] [stdout] 307 | let mut bob_session_retrieved2 = tx_5 [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | tx_1.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 36 | let _ = tx_1.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:102:5 [INFO] [stdout] | [INFO] [stdout] 102 | tx_1.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 102 | let _ = tx_1.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | tx_3.store_message(&public_key_internal, &MessageType::Sent, &message1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 132 | let _ = tx_3.store_message(&public_key_internal, &MessageType::Sent, &message1); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | tx_3.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 133 | let _ = tx_3.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:167:5 [INFO] [stdout] | [INFO] [stdout] 167 | tx_4.store_session(&bob_session_retrieved); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 167 | let _ = tx_4.store_session(&bob_session_retrieved); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:168:5 [INFO] [stdout] | [INFO] [stdout] 168 | tx_4.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 168 | let _ = tx_4.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:185:5 [INFO] [stdout] | [INFO] [stdout] 185 | tx_5.store_message(&public_key_internal, &MessageType::Sent, &message_2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 185 | let _ = tx_5.store_message(&public_key_internal, &MessageType::Sent, &message_2); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:186:5 [INFO] [stdout] | [INFO] [stdout] 186 | tx_5.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 186 | let _ = tx_5.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:236:5 [INFO] [stdout] | [INFO] [stdout] 236 | tx_1.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 236 | let _ = tx_1.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:266:5 [INFO] [stdout] | [INFO] [stdout] 266 | tx_3.store_message(&public_key_internal, &MessageType::Sent, &message1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 266 | let _ = tx_3.store_message(&public_key_internal, &MessageType::Sent, &message1); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:267:5 [INFO] [stdout] | [INFO] [stdout] 267 | tx_3.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 267 | let _ = tx_3.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:301:5 [INFO] [stdout] | [INFO] [stdout] 301 | tx_4.store_session(&bob_session_retrieved); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 301 | let _ = tx_4.store_session(&bob_session_retrieved); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:302:5 [INFO] [stdout] | [INFO] [stdout] 302 | tx_4.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 302 | let _ = tx_4.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:320:5 [INFO] [stdout] | [INFO] [stdout] 320 | tx_5.store_message(&public_key_internal, &MessageType::Sent, &message_2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 320 | let _ = tx_5.store_message(&public_key_internal, &MessageType::Sent, &message_2); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/integration_test.rs:321:5 [INFO] [stdout] | [INFO] [stdout] 321 | tx_5.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 321 | let _ = tx_5.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | init_database(db_path.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 32 | let _ = init_database(db_path.clone()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/common/mod.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 62 | let _ = OsRng.try_fill_bytes(&mut shared_key); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StaticSecret` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:8:31 [INFO] [stdout] | [INFO] [stdout] 8 | use x25519_dalek::{PublicKey, StaticSecret}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hmac::digest::typenum::Mod` [INFO] [stdout] --> src/libs/core/models.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use hmac::digest::typenum::Mod; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::DatabaseError` [INFO] [stdout] --> src/libs/core/models.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::DatabaseError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AeadCore` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:2:24 [INFO] [stdout] | [INFO] [stdout] 2 | use chacha20poly1305::{AeadCore, ChaCha20Poly1305, Nonce}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Key` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | use hmac::digest::{Key, KeyInit}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `format` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:10:16 [INFO] [stdout] | [INFO] [stdout] 10 | use std::fmt::{format, Debug, Formatter}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::write` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::ptr::write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Payload` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:5:44 [INFO] [stdout] | [INFO] [stdout] 5 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AeadCore` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | use chacha20poly1305::{AeadCore, ChaCha20Poly1305, Nonce}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Key` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | use hmac::digest::{Key, KeyInit}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Debug` and `format` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | use std::fmt::{format, Debug, Formatter}; [INFO] [stdout] | ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::write` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::ptr::write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StaticSecret` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:16:45 [INFO] [stdout] | [INFO] [stdout] 16 | use x25519_dalek::{PublicKey, SharedSecret, StaticSecret}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Connection` [INFO] [stdout] --> src/libs/storage/database/database.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use rusqlite::{Connection, Result}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::OnceCell` [INFO] [stdout] --> src/libs/storage/database/database.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cell::OnceCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/libs/storage/database/database.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::{Mutex, Once, OnceLock}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Storage` and `StoreError` [INFO] [stdout] --> src/libs/storage/database/database.rs:6:54 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::libs::storage::database::storage_traits::{Storage, StoreError, Transactional}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Connection` and `Error` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:15:24 [INFO] [stdout] | [INFO] [stdout] 15 | use rusqlite::{params, Connection, Error, OptionalExtension, Result, Transaction}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bincode::config::standard` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use bincode::config::standard; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rusqlite::params` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use rusqlite::params; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `fmt` and `format` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | use std::{fmt, format}; [INFO] [stdout] | ^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `x25519_dalek::PublicKey` [INFO] [stdout] --> src/libs/storage/database/storage_traits.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use x25519_dalek::PublicKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::libs::storage::database::storage_traits::StoreError::Database` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::libs::storage::database::storage_traits::StoreError::Database; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::format` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `x25519_dalek::PublicKey` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use x25519_dalek::PublicKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::libs::uniffi::models::Message` [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::libs::uniffi::models::Message; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DHKeyGenerator` [INFO] [stdout] --> src/libs/storage/records.rs:2:47 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::libs::encryption::double_ratchet::{DHKeyGenerator, DoubleRatchet}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Storage`, `Transactional`, and `UserStore` [INFO] [stdout] --> src/lib.rs:6:47 [INFO] [stdout] | [INFO] [stdout] 6 | use libs::storage::database::storage_traits::{Storage, Transactional, UserStore}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Buffer` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Digest` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | use sha2::{Digest, Sha256}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Buffer` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:5:36 [INFO] [stdout] | [INFO] [stdout] 5 | use chacha20poly1305::aead::{Aead, Buffer, Payload}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bob_user_record` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | let bob_user_record = UserRecord::new( [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bob_user_record` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | mut dh_key_pair_gen: &mut DHKeyGen, [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | let mut alice_double_ratchet = [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `alice_user_record` [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | let alice_user_record = UserRecord::new( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_alice_user_record` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | let mut bob_double_ratchet = [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cks` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | cks: Option, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cks` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | let mut chain_manager = SessionChainManager::default(); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dhr` [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:229:21 [INFO] [stdout] | [INFO] [stdout] 229 | if let Some(dhr) = self.dhr { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dhr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nhk` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:98:23 [INFO] [stdout] | [INFO] [stdout] 98 | let (rk, cks, nhk) = kdf_rk_he(shared_root_key, &dh).unwrap(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_nhk` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `check` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:170:30 [INFO] [stdout] | [INFO] [stdout] 170 | let (header, check) = self.try_decrypt_he(&header_enc)?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_check` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `header` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | header: &CipherText, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cipher_text` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | cipher_text: &CipherText, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cipher_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `associated_data` [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | associated_data: &[u8], [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_associated_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/libs/storage/database/database.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | if let Some(db) = DATABASE.get() { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/libs/storage/database/database.rs:173:42 [INFO] [stdout] | [INFO] [stdout] 173 | sqlite_transaction.commit().map_err(|err| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stmt` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:189:17 [INFO] [stdout] | [INFO] [stdout] 189 | let mut stmt = self.tx.prepare( [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message_from` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 187 | message_from: &IdentityKey, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_from` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | let mut stmt = self.tx.prepare( [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `public_key` [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:442:32 [INFO] [stdout] | [INFO] [stdout] 442 | fn save_message(&mut self, public_key: &PublicKeyInternal, message: MessageRecord) -> Result<(), StoreError> { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_public_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/lib.rs:151:19 [INFO] [stdout] | [INFO] [stdout] 151 | .map_err(|err| DatabaseError::RetrievalError("Try from Slice Error".to_string()))?; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KEY_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const KEY_SIZE: usize = 32; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IDENTITY_KEY_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const IDENTITY_KEY_SIZE: usize = 16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `QR_KEYS_EXPECTED_SIZE` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const QR_KEYS_EXPECTED_SIZE: usize = KEY_SIZE * 2 + IDENTITY_KEY_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ChatInitError` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum ChatInitError { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serialize_keys` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn serialize_keys(key1: &Uuid, key2: &PublicKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deserialize_keys` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn deserialize_keys(data: &[u8]) -> Result<(IdentityKey, PublicKey, KeySecret), ChatInitError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bob_generate_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn bob_generate_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `alice_init_from_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn alice_init_from_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `alice_generate_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:87:4 [INFO] [stdout] | [INFO] [stdout] 87 | fn alice_generate_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bob_init_from_qr_data` is never used [INFO] [stdout] --> src/libs/core/chat_initalisation.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn bob_init_from_qr_data( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HKDF_INFO_ENCRYPTION_HEADER_KEY` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const HKDF_INFO_ENCRYPTION_HEADER_KEY: &[u8] = b"ENCRYPTION_HEADER_KEY"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HmacSha256` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:29:6 [INFO] [stdout] | [INFO] [stdout] 29 | type HmacSha256 = Hmac; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HKDF_INFO_ENCRYPTION_KEY` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | const HKDF_INFO_ENCRYPTION_KEY: &[u8] = b"ENCRYPTION_KEY"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KEY_SECRET_LEN` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:53:7 [INFO] [stdout] | [INFO] [stdout] 53 | const KEY_SECRET_LEN: usize = 32; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `next_header_key_send` is never read [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct DoubleRatchetHE { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 85 | next_header_key_send: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DoubleRatchetHE` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kdf_ck_he` is never used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:304:4 [INFO] [stdout] | [INFO] [stdout] 304 | fn kdf_ck_he(chain_key: &KeySecret) -> Result<(KeySecret, KeySecret), DoubleRatchetError> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `INIT` is never used [INFO] [stdout] --> src/libs/storage/database/database.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | static INIT: Once = Once::new(); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_pub_key_from_bytes` is never used [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:464:4 [INFO] [stdout] | [INFO] [stdout] 464 | fn get_pub_key_from_bytes(pk_bytes: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet.rs:301:13 [INFO] [stdout] | [INFO] [stdout] 301 | self.dh_ratchet(&header, dh_key_generator); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 301 | let _ = self.dh_ratchet(&header, dh_key_generator); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:172:21 [INFO] [stdout] | [INFO] [stdout] 172 | self.skip_message_keys_he(header.prev_chain_number); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 172 | let _ = self.skip_message_keys_he(header.prev_chain_number); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:173:21 [INFO] [stdout] | [INFO] [stdout] 173 | self.dh_ratchet(&header); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 173 | let _ = self.dh_ratchet(&header); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/encryption/double_ratchet_header.rs:176:17 [INFO] [stdout] | [INFO] [stdout] 176 | self.skip_message_keys_he(header.message_number); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 176 | let _ = self.skip_message_keys_he(header.message_number); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/libs/storage/database/storage_sqllite.rs:32:18 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn inner(&self) -> &Transaction { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | | || [INFO] [stdout] | | |the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 32 | pub fn inner(&self) -> &Transaction<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 27 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 42 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 57 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 79 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 94 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 109 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 126 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/libs/storage/lib_sqlite_impl.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 138 | sqlite_transaction.commit(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 138 | let _ = sqlite_transaction.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 4.24s [INFO] running `Command { std: "docker" "inspect" "ccefe6baf0524978a3e43a55aa07678bc80c0e7fd32e45fcaa9d90a456e7fbfa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ccefe6baf0524978a3e43a55aa07678bc80c0e7fd32e45fcaa9d90a456e7fbfa", kill_on_drop: false }` [INFO] [stdout] ccefe6baf0524978a3e43a55aa07678bc80c0e7fd32e45fcaa9d90a456e7fbfa