[INFO] cloning repository https://github.com/cosmol-studio/COSMolKit
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/cosmol-studio/COSMolKit" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcosmol-studio%2FCOSMolKit", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcosmol-studio%2FCOSMolKit'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a9d5d6cd9b85d70009ad32203e17ccc1e28bdb96
[INFO] checking cosmol-studio/COSMolKit against master#9e293ae9f8abecb0be5105787d181518c9012a19 for pr-146440-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcosmol-studio%2FCOSMolKit" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/cosmol-studio/COSMolKit
[INFO] finished tweaking git repo https://github.com/cosmol-studio/COSMolKit
[INFO] tweaked toml for git repo https://github.com/cosmol-studio/COSMolKit written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/cosmol-studio/COSMolKit on toolchain 9e293ae9f8abecb0be5105787d181518c9012a19
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9e293ae9f8abecb0be5105787d181518c9012a19" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/cosmol-studio/COSMolKit 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" "+9e293ae9f8abecb0be5105787d181518c9012a19" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded siphasher v1.0.3
[INFO] [stderr]   Downloaded pyo3-stub-gen-derive v0.22.3
[INFO] [stderr]   Downloaded unicode_names2_generator v1.3.0
[INFO] [stderr]   Downloaded xmlwriter v0.1.0
[INFO] [stderr]   Downloaded float-cmp v0.9.0
[INFO] [stderr]   Downloaded is-macro v0.3.7
[INFO] [stderr]   Downloaded pico-args v0.5.0
[INFO] [stderr]   Downloaded lalrpop-util v0.20.2
[INFO] [stderr]   Downloaded unit-prefix v0.5.2
[INFO] [stderr]   Downloaded maplit v1.0.2
[INFO] [stderr]   Downloaded core_maths v0.1.1
[INFO] [stderr]   Downloaded unicode-vo v0.1.0
[INFO] [stderr]   Downloaded rustpython-parser-core v0.4.0
[INFO] [stderr]   Downloaded unicode-bidi-mirroring v0.4.0
[INFO] [stderr]   Downloaded unicode-ccc v0.4.0
[INFO] [stderr]   Downloaded unic-emoji-char v0.9.0
[INFO] [stderr]   Downloaded pyo3-macros v0.28.3
[INFO] [stderr]   Downloaded rgb v0.8.53
[INFO] [stderr]   Downloaded rustpython-parser-vendored v0.4.0
[INFO] [stderr]   Downloaded imagesize v0.14.0
[INFO] [stderr]   Downloaded polycool v0.4.0
[INFO] [stderr]   Downloaded data-url v0.3.2
[INFO] [stderr]   Downloaded simplecss v0.2.2
[INFO] [stderr]   Downloaded getopts v0.2.24
[INFO] [stderr]   Downloaded target-lexicon v0.13.5
[INFO] [stderr]   Downloaded zune-core v0.5.1
[INFO] [stderr]   Downloaded gif v0.14.2
[INFO] [stderr]   Downloaded console v0.16.3
[INFO] [stderr]   Downloaded rustpython-ast v0.4.0
[INFO] [stderr]   Downloaded tiny-skia-path v0.12.0
[INFO] [stderr]   Downloaded svgtypes v0.16.1
[INFO] [stderr]   Downloaded pyo3-build-config v0.28.3
[INFO] [stderr]   Downloaded roxmltree v0.21.1
[INFO] [stderr]   Downloaded resvg v0.47.0
[INFO] [stderr]   Downloaded image-webp v0.2.4
[INFO] [stderr]   Downloaded pyo3-macros-backend v0.28.3
[INFO] [stderr]   Downloaded pyo3-ffi v0.28.3
[INFO] [stderr]   Downloaded numpy v0.28.0
[INFO] [stderr]   Downloaded pyo3-stub-gen v0.22.3
[INFO] [stderr]   Downloaded zune-jpeg v0.5.15
[INFO] [stderr]   Downloaded rustpython-parser v0.4.0
[INFO] [stderr]   Downloaded usvg v0.47.0
[INFO] [stderr]   Downloaded fontdb v0.23.0
[INFO] [stderr]   Downloaded kurbo v0.13.1
[INFO] [stderr]   Downloaded unicode_names2 v1.3.0
[INFO] [stderr]   Downloaded tiny-skia v0.12.0
[INFO] [stderr]   Downloaded ndarray v0.17.2
[INFO] [stderr]   Downloaded rustybuzz v0.20.1
[INFO] [stderr]   Downloaded glam v0.33.0
[INFO] [stderr]   Downloaded pyo3 v0.28.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+9e293ae9f8abecb0be5105787d181518c9012a19" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 22be8692d2a7905d38ad979d1ddf4264419d29d6464290afd21f7c741e2ee1b5
[INFO] running `Command { std: "docker" "start" "-a" "22be8692d2a7905d38ad979d1ddf4264419d29d6464290afd21f7c741e2ee1b5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "22be8692d2a7905d38ad979d1ddf4264419d29d6464290afd21f7c741e2ee1b5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "22be8692d2a7905d38ad979d1ddf4264419d29d6464290afd21f7c741e2ee1b5", kill_on_drop: false }`
[INFO] [stdout] 22be8692d2a7905d38ad979d1ddf4264419d29d6464290afd21f7c741e2ee1b5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+9e293ae9f8abecb0be5105787d181518c9012a19" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b028023538d5dfb1c3b57abea3deac0fb95727ddbb96d5c12ef3aa6475cfc628
[INFO] running `Command { std: "docker" "start" "-a" "b028023538d5dfb1c3b57abea3deac0fb95727ddbb96d5c12ef3aa6475cfc628", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]     Checking bitflags v2.11.1
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]     Checking log v0.4.30
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling slotmap v1.1.1
[INFO] [stderr]     Checking float-cmp v0.9.0
[INFO] [stderr]     Checking strict-num v0.1.1
[INFO] [stderr]     Checking polycool v0.4.0
[INFO] [stderr]     Checking memchr v2.8.1
[INFO] [stderr]     Checking roxmltree v0.20.0
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]     Checking tinyvec v1.11.0
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking fontconfig-parser v0.5.8
[INFO] [stderr]     Checking kurbo v0.13.1
[INFO] [stderr]     Checking tiny-skia-path v0.12.0
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking unicode-ccc v0.4.0
[INFO] [stderr]     Checking unicode-bidi-mirroring v0.4.0
[INFO] [stderr]     Checking siphasher v1.0.3
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]     Checking unicode-properties v0.1.4
[INFO] [stderr]     Checking core_maths v0.1.1
[INFO] [stderr]     Checking unicode-script v0.5.8
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking roxmltree v0.21.1
[INFO] [stderr]     Checking simplecss v0.2.2
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]     Checking unicode-bidi v0.3.18
[INFO] [stderr]     Checking svgtypes v0.16.1
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]     Checking imagesize v0.14.0
[INFO] [stderr]     Checking xmlwriter v0.1.0
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]     Checking unicode-width v0.2.2
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking zune-core v0.5.1
[INFO] [stderr]     Checking data-url v0.3.2
[INFO] [stderr]     Checking unicode-vo v0.1.0
[INFO] [stderr]     Checking pico-args v0.5.0
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]     Checking tiny-skia v0.12.0
[INFO] [stderr]     Checking gif v0.14.2
[INFO] [stderr]     Checking console v0.16.3
[INFO] [stderr]     Checking zune-jpeg v0.5.15
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]    Compiling cosmolkit-core v0.2.6 (/opt/rustwide/workdir/crates/cosmolkit-core)
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking unit-prefix v0.5.2
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking glam v0.33.0
[INFO] [stderr]     Checking indicatif v0.18.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]     Checking rustybuzz v0.20.1
[INFO] [stderr]     Checking fontdb v0.23.0
[INFO] [stderr]     Checking fastrand v2.4.1
[INFO] [stderr]    Compiling target-lexicon v0.13.5
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling zerocopy v0.8.50
[INFO] [stderr]    Compiling pyo3-build-config v0.28.3
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking usvg v0.47.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling cosmolkit-macros v0.2.6 (/opt/rustwide/workdir/crates/cosmolkit-macros)
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling pyo3-ffi v0.28.3
[INFO] [stderr]    Compiling pyo3-macros-backend v0.28.3
[INFO] [stderr]    Compiling unic-common v0.9.0
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]     Checking resvg v0.47.0
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]    Compiling unic-char-range v0.9.0
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]     Checking cosmolkit-ringdecomposer v0.2.6 (/opt/rustwide/workdir/crates/cosmolkit-ringdecomposer)
[INFO] [stderr]    Compiling unic-char-property v0.9.0
[INFO] [stderr]    Compiling unic-ucd-version v0.9.0
[INFO] [stderr]    Compiling is-macro v0.3.7
[INFO] [stderr]    Compiling rustpython-parser-vendored v0.4.0
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling pyo3 v0.28.3
[INFO] [stderr]    Compiling rustpython-parser-core v0.4.0
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]     Checking unicode-ident v1.0.24
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking proc-macro2 v1.0.106
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling unic-emoji-char v0.9.0
[INFO] [stderr]    Compiling unic-ucd-ident v0.9.0
[INFO] [stderr]    Compiling rustpython-ast v0.4.0
[INFO] [stderr]    Compiling numpy v0.28.0
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]    Compiling lalrpop-util v0.20.2
[INFO] [stderr]     Checking quote v1.0.45
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]     Checking ndarray v0.17.2
[INFO] [stderr]     Checking rustc-hash v2.1.2
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling phf_codegen v0.11.3
[INFO] [stderr]    Compiling unicode_names2_generator v1.3.0
[INFO] [stderr]    Compiling rustpython-parser v0.4.0
[INFO] [stderr]    Compiling unicode_names2 v1.3.0
[INFO] [stderr]    Compiling pyo3-macros v0.28.3
[INFO] [stdout] warning: unused imports: `assign_valence` and `symmetrize_sssr`
[INFO] [stdout]  --> crates/cosmolkit-core/src/chemistry/aromaticity.rs:7:52
[INFO] [stdout]   |
[INFO] [stdout] 7 |     ValenceAssignment, ValenceError, ValenceModel, assign_valence, read_parts::MoleculeReadParts,
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     symmetrize_sssr,
[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: `Bond`
[INFO] [stdout]   --> crates/cosmolkit-core/src/notation/fragment.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 |     AdjacencyList, Atom, AtomSpec, Bond, BondSpec, Molecule, MoleculeBuilder,
[INFO] [stdout]    |                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomId`, `BondOrder`, and `MoleculeBuilder`
[INFO] [stdout]   --> crates/cosmolkit-core/src/notation/sequence.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::{AtomId, BondOrder, Molecule, MoleculeBuilder};
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^^^            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `set_double_bond_neighbor_directions_from_stereo`
[INFO] [stdout]   --> crates/cosmolkit-core/src/notation/smiles.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     set_double_bond_neighbor_directions_from_stereo,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomId`, `Bond`, and `NeighborRef`
[INFO] [stdout]   --> crates/cosmolkit-core/src/properties/avalon_fingerprint.rs:32:20
[INFO] [stdout]    |
[INFO] [stdout] 32 |     AdjacencyList, AtomId, Bond, BondOrder, Fingerprint, FingerprintError, Molecule, NeighborRef,
[INFO] [stdout]    |                    ^^^^^^  ^^^^                                                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `chemistry::stereo::assign_stereochemistry`: assign_stereochemistry() is read-only; use perceive_stereochemistry() for the explicit public API name
[INFO] [stdout]    --> crates/cosmolkit-core/src/lib.rs:206:5
[INFO] [stdout]     |
[INFO] [stdout] 206 |     assign_stereochemistry, perceive_stereochemistry,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `assign_valence` and `symmetrize_sssr`
[INFO] [stdout]  --> crates/cosmolkit-core/src/chemistry/aromaticity.rs:7:52
[INFO] [stdout]   |
[INFO] [stdout] 7 |     ValenceAssignment, ValenceError, ValenceModel, assign_valence, read_parts::MoleculeReadParts,
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     symmetrize_sssr,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `chemistry::stereo::assign_stereochemistry`: assign_stereochemistry() is read-only; use perceive_stereochemistry() for the explicit public API name
[INFO] [stdout]    --> crates/cosmolkit-core/src/notation/smiles_write/stereo.rs:400:20
[INFO] [stdout]     |
[INFO] [stdout] 400 |     crate::stereo::assign_stereochemistry(molecule)?;
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SGroupBondRole`
[INFO] [stdout]  --> crates/cosmolkit-core/src/io/molblock/tests.rs:8:67
[INFO] [stdout]   |
[INFO] [stdout] 8 |     BondStereo, ChiralTag, Element, QueryNode, SGroupAttachPoint, SGroupBondRole, SGroupBracket,
[INFO] [stdout]   |                                                                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MOLBLOCK_IO_FEATURE` and `UnsupportedFeatureError`
[INFO] [stdout]   --> crates/cosmolkit-core/src/io/molblock/tests.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::{MOLBLOCK_IO_FEATURE, Molecule, UnsupportedFeatureError};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Bond`
[INFO] [stdout]   --> crates/cosmolkit-core/src/notation/fragment.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 |     AdjacencyList, Atom, AtomSpec, Bond, BondSpec, Molecule, MoleculeBuilder,
[INFO] [stdout]    |                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomId`, `BondOrder`, and `MoleculeBuilder`
[INFO] [stdout]   --> crates/cosmolkit-core/src/notation/sequence.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::{AtomId, BondOrder, Molecule, MoleculeBuilder};
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^^^            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomId`, `Bond`, and `NeighborRef`
[INFO] [stdout]   --> crates/cosmolkit-core/src/properties/avalon_fingerprint.rs:32:20
[INFO] [stdout]    |
[INFO] [stdout] 32 |     AdjacencyList, AtomId, Bond, BondOrder, Fingerprint, FingerprintError, Molecule, NeighborRef,
[INFO] [stdout]    |                    ^^^^^^  ^^^^                                                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `chemistry::stereo::assign_stereochemistry`: assign_stereochemistry() is read-only; use perceive_stereochemistry() for the explicit public API name
[INFO] [stdout]    --> crates/cosmolkit-core/src/lib.rs:206:5
[INFO] [stdout]     |
[INFO] [stdout] 206 |     assign_stereochemistry, perceive_stereochemistry,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `chemistry::stereo::assign_stereochemistry`: assign_stereochemistry() is read-only; use perceive_stereochemistry() for the explicit public API name
[INFO] [stdout]     --> crates/cosmolkit-core/src/model/molecule.rs:1078:9
[INFO] [stdout]      |
[INFO] [stdout] 1078 |         assign_stereochemistry, fragment, mol_hash, pdb_writer, perceive_stereochemistry,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `chemistry::stereo::assign_stereochemistry`: assign_stereochemistry() is read-only; use perceive_stereochemistry() for the explicit public API name
[INFO] [stdout]    --> crates/cosmolkit-core/src/notation/smiles_write/stereo.rs:400:20
[INFO] [stdout]     |
[INFO] [stdout] 400 |     crate::stereo::assign_stereochemistry(molecule)?;
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling pyo3-stub-gen-derive v0.22.3
[INFO] [stdout] warning: value assigned to `colls` is never read
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:3066:21
[INFO] [stdout]      |
[INFO] [stdout] 3066 |                     colls = self.find_collisions(atoms, bonds, adjacency, &dmat, true);
[INFO] [stdout]      |                     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query_atom`
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5471:13
[INFO] [stdout]      |
[INFO] [stdout] 5471 |         let query_atom = &query.atoms()[query_idx];
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_query_atom`
[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]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6349:13
[INFO] [stdout]      |
[INFO] [stdout] 6349 |         let mut query_adj_value = query.clone();
[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 `reference_hs` is assigned to, but never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6333:9
[INFO] [stdout]      |
[INFO] [stdout] 6333 |     let mut reference_hs = None;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_reference_hs` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ref_atom`
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6433:29
[INFO] [stdout]      |
[INFO] [stdout] 6433 |                         let ref_atom = &query_adj_ref.atoms()[pattern_idx];
[INFO] [stdout]      |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ref_atom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `reference_hs` is never read
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6380:13
[INFO] [stdout]      |
[INFO] [stdout] 6380 |             reference_hs = Some(reference_hs_value);
[INFO] [stdout]      |             ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pattern_to_ref_matches` is never read
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6337:38
[INFO] [stdout]      |
[INFO] [stdout] 6337 |     let mut pattern_to_ref_matches = Vec::<Vec<(usize, usize)>>::new();
[INFO] [stdout]      |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 6363 |             pattern_to_ref_matches =
[INFO] [stdout]      |             ---------------------- `pattern_to_ref_matches` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:1759:17
[INFO] [stdout]      |
[INFO] [stdout] 1759 |             let mut vol_upper_bound = 100.0;
[INFO] [stdout]      |                 ----^^^^^^^^^^^^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bond_idx`
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:8082:21
[INFO] [stdout]      |
[INFO] [stdout] 8082 | fn bond_between_idx(bond_idx: usize) -> Option<usize> {
[INFO] [stdout]      |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bond_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:8800:10
[INFO] [stdout]      |
[INFO] [stdout] 8800 |     let (mut dl, mut du) = if prefer_cis {
[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]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:8800:18
[INFO] [stdout]      |
[INFO] [stdout] 8800 |     let (mut dl, mut du) = if prefer_cis {
[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]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:8919:10
[INFO] [stdout]      |
[INFO] [stdout] 8919 |     let (mut dl, mut du, kind) = if ahyb2 == Hybridization::Sp2 && ahyb3 == Hybridization::Sp2 {
[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]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:8919:18
[INFO] [stdout]      |
[INFO] [stdout] 8919 |     let (mut dl, mut du, kind) = if ahyb2 == Hybridization::Sp2 && ahyb3 == Hybridization::Sp2 {
[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]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:9139:10
[INFO] [stdout]      |
[INFO] [stdout] 9139 |     let (mut dl, mut du, kind) = if check_macrocycle_two_in_same_ring_amide_ester_14(
[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]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:9139:18
[INFO] [stdout]      |
[INFO] [stdout] 9139 |     let (mut dl, mut du, kind) = if check_macrocycle_two_in_same_ring_amide_ester_14(
[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]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:9501:9
[INFO] [stdout]      |
[INFO] [stdout] 9501 |     let mut set_the_bound = true;
[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]      --> crates/cosmolkit-core/src/chemistry/distgeom.rs:10330:14
[INFO] [stdout]       |
[INFO] [stdout] 10330 |         let (mut dl, mut du) = match kind {
[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]    --> crates/cosmolkit-core/src/chemistry/forcefield/crystalff/torsion_preferences.rs:551:13
[INFO] [stdout]     |
[INFO] [stdout] 551 |         let mut done_atoms = vec![false; na];
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `order` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/uff/builder.rs:385:37
[INFO] [stdout]     |
[INFO] [stdout] 385 |                     let mut order = 0_u32;
[INFO] [stdout]     |                                     ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 391 |                         Hybridization::Sp => order = 1,
[INFO] [stdout]     |                                              --------- `order` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/uff/utils.rs:146:19
[INFO] [stdout]     |
[INFO] [stdout] 146 |     let mut res = 0.0;
[INFO] [stdout]     |                   ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 203 |         res = 22.0 / (c0 + c1 + c2);
[INFO] [stdout]     |         --------------------------- `res` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `adj`
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/mol_transforms.rs:314:9
[INFO] [stdout]     |
[INFO] [stdout] 314 |     let adj = AdjacencyList::from_topology(num_atoms, mol.bonds());
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_adj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `adj`
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/mol_transforms.rs:941:9
[INFO] [stdout]     |
[INFO] [stdout] 941 |     let adj = AdjacencyList::from_topology(num_atoms, mol.bonds());
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_adj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `invariant` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/stereo.rs:347:34
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let mut invariant: i64 = 0;
[INFO] [stdout]     |                                  ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 365 |         invariant = num; // 7 bits
[INFO] [stdout]     |         --------------- `invariant` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/stereo.rs:1349:17
[INFO] [stdout]      |
[INFO] [stdout] 1349 |             let mut vol2 = vec_dot(crossp2, bond_vects[order[0]]);
[INFO] [stdout]      |                 ----^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wedge_bond`
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/stereo.rs:3686:17
[INFO] [stdout]      |
[INFO] [stdout] 3686 |             let wedge_bond = &mol.bonds()[wedge_idx];
[INFO] [stdout]      |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wedge_bond`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dash_bond`
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/stereo.rs:3687:17
[INFO] [stdout]      |
[INFO] [stdout] 3687 |             let dash_bond = &mol.bonds()[dash_idx];
[INFO] [stdout]      |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dash_bond`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mol`
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/stereo.rs:3701:22
[INFO] [stdout]      |
[INFO] [stdout] 3701 | fn is_opposite_bonds(mol: &Molecule, _atom_idx: usize, _bond_a: usize, _bond_b: usize) -> bool {
[INFO] [stdout]      |                      ^^^ help: if this is intentional, prefix it with an underscore: `_mol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/bio.rs:3632:9
[INFO] [stdout]      |
[INFO] [stdout] 3632 |     let mut name = name.trim_start().to_string();
[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]     --> crates/cosmolkit-core/src/io/molblock.rs:1244:9
[INFO] [stdout]      |
[INFO] [stdout] 1244 |     let mut line = format!("  {:>8}{:>10}", "COSMolKit", "");
[INFO] [stdout]      |         ----^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `include_stereo`
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/molblock.rs:1619:5
[INFO] [stdout]      |
[INFO] [stdout] 1619 |     include_stereo: bool,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_include_stereo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `include_stereo`
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/molblock.rs:1839:5
[INFO] [stdout]      |
[INFO] [stdout] 1839 |     include_stereo: bool,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_include_stereo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/cosmolkit-core/src/io/pdb_molecule.rs:923:5
[INFO] [stdout]     |
[INFO] [stdout] 923 |     mut rescode: u32,
[INFO] [stdout]     |     ----^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valence`
[INFO] [stdout]    --> crates/cosmolkit-core/src/operations/ops/sanitize_pipeline.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |     let valence = sanitize_properties_stage(
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tl`
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:615:18
[INFO] [stdout]     |
[INFO] [stdout] 615 |             let (tl, tr, br, bl) = shifted.calc_corners(0.0);
[INFO] [stdout]     |                  ^^ help: if this is intentional, prefix it with an underscore: `_tl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `br`
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:615:26
[INFO] [stdout]     |
[INFO] [stdout] 615 |             let (tl, tr, br, bl) = shifted.calc_corners(0.0);
[INFO] [stdout]     |                          ^^ help: if this is intentional, prefix it with an underscore: `_br`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `orient` is never read
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:2481:26
[INFO] [stdout]      |
[INFO] [stdout] 2481 |           let mut orient = OrientType::C;
[INFO] [stdout]      |                            ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 2494 | /                 orient = if nbr_sum.y > 0.0 {
[INFO] [stdout] 2495 | |                     OrientType::S
[INFO] [stdout] 2496 | |                 } else {
[INFO] [stdout] 2497 | |                     OrientType::N
[INFO] [stdout] 2498 | |                 };
[INFO] [stdout]      | |_________________- `orient` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:2931:23
[INFO] [stdout]      |
[INFO] [stdout] 2931 |         let (mut l2s, mut l2f) = if mol
[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]     --> crates/cosmolkit-core/src/properties/draw.rs:3245:21
[INFO] [stdout]      |
[INFO] [stdout] 3245 |                 let mut l2s = self.double_bond_end(
[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]     --> crates/cosmolkit-core/src/properties/draw.rs:3538:17
[INFO] [stdout]      |
[INFO] [stdout] 3538 |             let mut points = points;
[INFO] [stdout]      |                 ----^^^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:4445:17
[INFO] [stdout]      |
[INFO] [stdout] 4445 |             let idx = bond.id().index();
[INFO] [stdout]      |                 ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:4765:17
[INFO] [stdout]      |
[INFO] [stdout] 4765 |             let idx = bond.id().index();
[INFO] [stdout]      |                 ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:5676:13
[INFO] [stdout]      |
[INFO] [stdout] 5676 |         let mut at1_cds = self.at_cds[b];
[INFO] [stdout]      |             ----^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mol`
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:5670:9
[INFO] [stdout]      |
[INFO] [stdout] 5670 |         mol: &Molecule,
[INFO] [stdout]      |         ^^^ help: if this is intentional, prefix it with an underscore: `_mol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/fingerprint.rs:619:27
[INFO] [stdout]     |
[INFO] [stdout] 619 | fn validate_morgan_params(params: &MorganFingerprintParams) -> Result<(), FingerprintError> {
[INFO] [stdout]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_bonds`
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/fingerprint.rs:1037:9
[INFO] [stdout]      |
[INFO] [stdout] 1037 |     let num_bonds = molecule.num_bonds();
[INFO] [stdout]      |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_bonds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count_element`
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/fingerprint.rs:1053:9
[INFO] [stdout]      |
[INFO] [stdout] 1053 |     let count_element =
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_count_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_neighbor_z`
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/fingerprint.rs:1082:9
[INFO] [stdout]      |
[INFO] [stdout] 1082 |     let has_neighbor_z = |atom_idx: usize, target_z: u8| -> bool {
[INFO] [stdout]      |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_neighbor_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `find_atom`
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/fingerprint.rs:1090:9
[INFO] [stdout]      |
[INFO] [stdout] 1090 |     let find_atom = |pred: fn(&[u8], &[i8], usize) -> bool| -> Option<usize> {
[INFO] [stdout]      |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_atom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/mol_hash.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |     let n = mol.num_atoms();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mol`
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/mol_hash.rs:411:5
[INFO] [stdout]     |
[INFO] [stdout] 411 |     mol: &Molecule,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_mol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `atom_queries`
[INFO] [stdout]     --> crates/cosmolkit-core/src/search/query.rs:1124:9
[INFO] [stdout]      |
[INFO] [stdout] 1124 |         atom_queries: &mut Vec<QueryNode<AtomQueryPredicate>>,
[INFO] [stdout]      |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_atom_queries`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mol`
[INFO] [stdout]     --> crates/cosmolkit-core/src/search/query.rs:1302:42
[INFO] [stdout]      |
[INFO] [stdout] 1302 | fn count_ring_bonds(adj: &AdjacencyList, mol: &Molecule, ri: &RingInfo, aidx: usize) -> u8 {
[INFO] [stdout]      |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_mol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SmilesControllingBondResult` is more private than the item `controlling_bond_from_atom_for_smiles`
[INFO] [stdout]    --> crates/cosmolkit-core/src/notation/smiles/stereo.rs:704:1
[INFO] [stdout]     |
[INFO] [stdout] 704 | / pub(super) fn controlling_bond_from_atom_for_smiles(
[INFO] [stdout] 705 | |     mol: &Molecule,
[INFO] [stdout] 706 | |     adjacency: &AdjacencyList,
[INFO] [stdout] 707 | |     needs_dir: &[bool],
[INFO] [stdout] ...   |
[INFO] [stdout] 710 | |     atom: AtomId,
[INFO] [stdout] 711 | | ) -> SmilesControllingBondResult {
[INFO] [stdout]     | |________________________________^ function `controlling_bond_from_atom_for_smiles` is reachable at visibility `pub(in crate::notation::smiles)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SmilesControllingBondResult` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> crates/cosmolkit-core/src/notation/smiles/stereo.rs:609:1
[INFO] [stdout]     |
[INFO] [stdout] 609 | struct SmilesControllingBondResult {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RDKIT_FORMER_NBR_INDICES_PROP` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/coordinates.rs:112:7
[INFO] [stdout]     |
[INFO] [stdout] 112 | const RDKIT_FORMER_NBR_INDICES_PROP: &str = "__formerNbrIndices";
[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 `RDKIT_FORMER_IDX_PROP` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/coordinates.rs:113:7
[INFO] [stdout]     |
[INFO] [stdout] 113 | const RDKIT_FORMER_IDX_PROP: &str = "__formerIdx";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_valid_rdkit_template` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/coordinates.rs:286:4
[INFO] [stdout]     |
[INFO] [stdout] 286 | fn assert_valid_rdkit_template(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `for_each_rdkit_template_file_line` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/coordinates.rs:350:4
[INFO] [stdout]     |
[INFO] [stdout] 350 | fn for_each_rdkit_template_file_line<F>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_rdkit_template_line_for_loading` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/coordinates.rs:388:4
[INFO] [stdout]     |
[INFO] [stdout] 388 | fn parse_rdkit_template_line_for_loading(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_rdkit_templates_from_path` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/coordinates.rs:399:4
[INFO] [stdout]     |
[INFO] [stdout] 399 | fn load_rdkit_templates_from_path(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_default_rdkit_ring_system_templates` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/coordinates.rs:491:4
[INFO] [stdout]     |
[INFO] [stdout] 491 | fn load_default_rdkit_ring_system_templates() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_rdkit_ring_system_templates` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/coordinates.rs:536:4
[INFO] [stdout]     |
[INFO] [stdout] 536 | fn set_rdkit_ring_system_templates(template_path: &str) -> Result<(), Coordinate2DError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_rdkit_ring_system_templates` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/coordinates.rs:556:4
[INFO] [stdout]     |
[INFO] [stdout] 556 | fn add_rdkit_ring_system_templates(template_path: &str) -> Result<(), Coordinate2DError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_load_default_ring_system_templates` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/coordinates.rs:582:4
[INFO] [stdout]     |
[INFO] [stdout] 582 | fn rdkit_load_default_ring_system_templates() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_prefer_coord_gen` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/coordinates.rs:964:15
[INFO] [stdout]     |
[INFO] [stdout] 964 | pub(crate) fn set_prefer_coord_gen(value: bool) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_coordgen_support_available` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/coordinates.rs:972:21
[INFO] [stdout]     |
[INFO] [stdout] 972 | pub(crate) const fn is_coordgen_support_available() -> bool {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Compute2DCoordsMimicDistMatParameters` is never constructed
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:1050:19
[INFO] [stdout]      |
[INFO] [stdout] 1050 | pub(crate) struct Compute2DCoordsMimicDistMatParameters {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConstrainedDepictionParams` is never constructed
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:1077:19
[INFO] [stdout]      |
[INFO] [stdout] 1077 | pub(crate) struct ConstrainedDepictionParams {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_transform_points` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:1377:4
[INFO] [stdout]      |
[INFO] [stdout] 1377 | fn rdkit_transform_points(nring_cor: &mut RdkitIntPoint2DMap, trans: [f64; 6]) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_reflect_points` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:1459:4
[INFO] [stdout]      |
[INFO] [stdout] 1459 | fn rdkit_reflect_points(coord_map: &mut RdkitIntPoint2DMap, loc1: (f64, f64), loc2: (f64, f64)) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_fused_ring_atom_order` and `find_neighbor` are never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:1598:8
[INFO] [stdout]      |
[INFO] [stdout] 1512 | impl RdkitEmbeddedFrag {
[INFO] [stdout]      | ---------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1598 |     fn from_fused_ring_atom_order(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1790 |     fn find_neighbor(&self, aid: usize, adjacency: &[Vec<usize>]) -> Option<usize> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_ring_radius` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:3886:4
[INFO] [stdout]      |
[INFO] [stdout] 3886 | fn rdkit_ring_radius(ring_size: usize, bond_len: f64) -> f64 {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `canonicalize_component` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:3942:4
[INFO] [stdout]      |
[INFO] [stdout] 3942 | fn canonicalize_component(component: &mut Vec<(usize, (f64, f64))>) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `component_box_rdkit` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:3998:4
[INFO] [stdout]      |
[INFO] [stdout] 3998 | fn component_box_rdkit(component: &[(usize, (f64, f64))]) -> (f64, f64, f64, f64) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_query_contains_atomic_number` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5154:4
[INFO] [stdout]      |
[INFO] [stdout] 5154 | fn rdkit_query_contains_atomic_number(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_parse_former_nbr_indices_prop` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5168:4
[INFO] [stdout]      |
[INFO] [stdout] 5168 | fn rdkit_parse_former_nbr_indices_prop(value: &str) -> Vec<usize> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_is_atom_terminal_rgroup_or_query_hydrogen` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5182:4
[INFO] [stdout]      |
[INFO] [stdout] 5182 | fn rdkit_is_atom_terminal_rgroup_or_query_hydrogen(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_has_terminal_rgroup_or_query_hydrogen` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5201:4
[INFO] [stdout]      |
[INFO] [stdout] 5201 | fn rdkit_has_terminal_rgroup_or_query_hydrogen(mol: &Molecule) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_adjust_query_properties_for_depiction_template` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5211:4
[INFO] [stdout]      |
[INFO] [stdout] 5211 | fn rdkit_adjust_query_properties_for_depiction_template(mol: &mut Molecule) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_prepare_template_for_rgroups` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5285:4
[INFO] [stdout]      |
[INFO] [stdout] 5285 | fn rdkit_prepare_template_for_rgroups(template_mol: &Molecule) -> Option<Molecule> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_reduced_to_full_matches` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5374:4
[INFO] [stdout]      |
[INFO] [stdout] 5374 | fn rdkit_reduced_to_full_matches(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_select_3d_conformer_index` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5416:4
[INFO] [stdout]      |
[INFO] [stdout] 5416 | fn rdkit_select_3d_conformer_index(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_score_match_by_degree_of_core_substitution` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5460:4
[INFO] [stdout]      |
[INFO] [stdout] 5460 | fn rdkit_score_match_by_degree_of_core_substitution(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_get_most_substituted_core_match` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5486:4
[INFO] [stdout]      |
[INFO] [stdout] 5486 | fn rdkit_get_most_substituted_core_match(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_sort_matches_by_degree_of_core_substitution` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5501:4
[INFO] [stdout]      |
[INFO] [stdout] 5501 | fn rdkit_sort_matches_by_degree_of_core_substitution(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_invert_molblock_wedging_info` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5542:4
[INFO] [stdout]      |
[INFO] [stdout] 5542 | fn rdkit_invert_molblock_wedging_info(mol: &mut Molecule) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_clear_molblock_wedging_info` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5567:4
[INFO] [stdout]      |
[INFO] [stdout] 5567 | fn rdkit_clear_molblock_wedging_info(mol: &mut Molecule) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_select_2d_conformer_index` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5574:4
[INFO] [stdout]      |
[INFO] [stdout] 5574 | fn rdkit_select_2d_conformer_index(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_remove_all_2d_conformers_but_one` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5615:4
[INFO] [stdout]      |
[INFO] [stdout] 5615 | fn rdkit_remove_all_2d_conformers_but_one(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RDKIT_ALIGN_POINTS_TOLERANCE` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5635:7
[INFO] [stdout]      |
[INFO] [stdout] 5635 | const RDKIT_ALIGN_POINTS_TOLERANCE: f64 = 1.0e-6;
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RDKIT_ALIGN_POINTS_MAX_ITERATIONS` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5636:7
[INFO] [stdout]      |
[INFO] [stdout] 5636 | const RDKIT_ALIGN_POINTS_MAX_ITERATIONS: usize = 50;
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_transform3d_identity` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5638:4
[INFO] [stdout]      |
[INFO] [stdout] 5638 | fn rdkit_transform3d_identity() -> [[f64; 4]; 4] {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_transform3d_mul` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5647:4
[INFO] [stdout]      |
[INFO] [stdout] 5647 | fn rdkit_transform3d_mul(lhs: &[[f64; 4]; 4], rhs: &[[f64; 4]; 4]) -> [[f64; 4]; 4] {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_transform3d_transform_point` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5657:4
[INFO] [stdout]      |
[INFO] [stdout] 5657 | fn rdkit_transform3d_transform_point(trans: &[[f64; 4]; 4], point: [f64; 3]) -> [f64; 3] {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_transform3d_set_translation` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5665:4
[INFO] [stdout]      |
[INFO] [stdout] 5665 | fn rdkit_transform3d_set_translation(trans: &mut [[f64; 4]; 4], move_vec: [f64; 3]) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_transform3d_set_rotation_from_quaternion` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5671:4
[INFO] [stdout]      |
[INFO] [stdout] 5671 | fn rdkit_transform3d_set_rotation_from_quaternion(trans: &mut [[f64; 4]; 4], quaternion: [f64; 4]) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_transform3d_reflect` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5703:4
[INFO] [stdout]      |
[INFO] [stdout] 5703 | fn rdkit_transform3d_reflect(trans: &mut [[f64; 4]; 4]) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_weighted_sum_of_points` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5711:4
[INFO] [stdout]      |
[INFO] [stdout] 5711 | fn rdkit_weighted_sum_of_points(points: &[[f64; 3]]) -> [f64; 3] {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_weighted_sum_of_len_sq` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5720:4
[INFO] [stdout]      |
[INFO] [stdout] 5720 | fn rdkit_weighted_sum_of_len_sq(points: &[[f64; 3]]) -> f64 {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_compute_covariance_mat` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5726:4
[INFO] [stdout]      |
[INFO] [stdout] 5726 | fn rdkit_compute_covariance_mat(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_reflect_covariance_mat` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5745:4
[INFO] [stdout]      |
[INFO] [stdout] 5745 | fn rdkit_reflect_covariance_mat(cov_mat: &mut [[f64; 3]; 3]) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_convert_cov_mat_to_quad` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5753:4
[INFO] [stdout]      |
[INFO] [stdout] 5753 | fn rdkit_convert_cov_mat_to_quad(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_align_points_jacobi` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5789:4
[INFO] [stdout]      |
[INFO] [stdout] 5789 | fn rdkit_align_points_jacobi(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_align_points` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5881:4
[INFO] [stdout]      |
[INFO] [stdout] 5881 | fn rdkit_align_points(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_apply_transform_to_2d_conformer` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5945:4
[INFO] [stdout]      |
[INFO] [stdout] 5945 | fn rdkit_apply_transform_to_2d_conformer(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_get_alignment_transform` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5960:4
[INFO] [stdout]      |
[INFO] [stdout] 5960 | fn rdkit_get_alignment_transform(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_get_best_alignment_transform` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5998:4
[INFO] [stdout]      |
[INFO] [stdout] 5998 | fn rdkit_get_best_alignment_transform(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_substruct_matches_unordered` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6030:4
[INFO] [stdout]      |
[INFO] [stdout] 6030 | fn rdkit_substruct_matches_unordered(mol: &Molecule, query: &Molecule) -> Vec<Vec<(usize, usize)>> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_add_hs_copy` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6047:4
[INFO] [stdout]      |
[INFO] [stdout] 6047 | fn rdkit_add_hs_copy(mol: &Molecule) -> Result<Molecule, Coordinate2DError> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_append_2d_conformer` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6065:4
[INFO] [stdout]      |
[INFO] [stdout] 6065 | fn rdkit_append_2d_conformer(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_set_single_2d_conformer` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6087:4
[INFO] [stdout]      |
[INFO] [stdout] 6087 | fn rdkit_set_single_2d_conformer(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_compute_2d_coords_for_mol` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6104:4
[INFO] [stdout]      |
[INFO] [stdout] 6104 | fn rdkit_compute_2d_coords_for_mol(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_depiction_matching_2d_structure_with_ref_match` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6161:15
[INFO] [stdout]      |
[INFO] [stdout] 6161 | pub(crate) fn generate_depiction_matching_2d_structure_with_ref_match(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_depiction_matching_2d_structure_with_ref_match_force_rdkit` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6302:15
[INFO] [stdout]      |
[INFO] [stdout] 6302 | pub(crate) fn generate_depiction_matching_2d_structure_with_ref_match_force_rdkit(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_depiction_matching_2d_structure` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6326:15
[INFO] [stdout]      |
[INFO] [stdout] 6326 | pub(crate) fn generate_depiction_matching_2d_structure(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_depiction_matching_2d_structure_simple` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6572:15
[INFO] [stdout]      |
[INFO] [stdout] 6572 | pub(crate) fn generate_depiction_matching_2d_structure_simple(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_depiction_matching_3d_structure` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6595:15
[INFO] [stdout]      |
[INFO] [stdout] 6595 | pub(crate) fn generate_depiction_matching_3d_structure(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_invert_wedging_if_mol_has_flipped` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6685:4
[INFO] [stdout]      |
[INFO] [stdout] 6685 | fn rdkit_invert_wedging_if_mol_has_flipped(mol: &mut Molecule, trans: &[[f64; 4]; 4]) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_2d_coords_default_path` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6992:4
[INFO] [stdout]      |
[INFO] [stdout] 6992 | fn compute_2d_coords_default_path(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_2d_coords` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:7013:15
[INFO] [stdout]      |
[INFO] [stdout] 7013 | pub(crate) fn compute_2d_coords(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_2d_coords_with_options` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:7040:15
[INFO] [stdout]      |
[INFO] [stdout] 7040 | pub(crate) fn compute_2d_coords_with_options(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_2d_coords_mimic_distmat_with_params` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:7201:15
[INFO] [stdout]      |
[INFO] [stdout] 7201 | pub(crate) fn compute_2d_coords_mimic_distmat_with_params(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_2d_coords_to_molecule` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:7269:15
[INFO] [stdout]      |
[INFO] [stdout] 7269 | pub(crate) fn add_2d_coords_to_molecule(_molecule: &mut Molecule, _use_dll: bool) -> bool {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_sign` is never used
[INFO] [stdout]      --> crates/cosmolkit-core/src/chemistry/coordinates.rs:11700:4
[INFO] [stdout]       |
[INFO] [stdout] 11700 | fn copy_sign(to: f64, from: f64, tol: f64) -> f64 {
[INFO] [stdout]       |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThetaBin` is never constructed
[INFO] [stdout]      --> crates/cosmolkit-core/src/chemistry/coordinates.rs:11705:8
[INFO] [stdout]       |
[INFO] [stdout] 11705 | struct ThetaBin {
[INFO] [stdout]       |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdkit_compute_canonical_transform_for_2d_coords` is never used
[INFO] [stdout]      --> crates/cosmolkit-core/src/chemistry/coordinates.rs:11717:4
[INFO] [stdout]       |
[INFO] [stdout] 11717 | fn rdkit_compute_canonical_transform_for_2d_coords(
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `straighten_depiction` is never used
[INFO] [stdout]      --> crates/cosmolkit-core/src/chemistry/coordinates.rs:11777:15
[INFO] [stdout]       |
[INFO] [stdout] 11777 | pub(crate) fn straighten_depiction(
[INFO] [stdout]       |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_depiction` is never used
[INFO] [stdout]      --> crates/cosmolkit-core/src/chemistry/coordinates.rs:11874:15
[INFO] [stdout]       |
[INFO] [stdout] 11874 | pub(crate) fn normalize_depiction(
[INFO] [stdout]       |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `row103_distgeom_trace_enabled` is never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/chemistry/distgeom.rs:88:4
[INFO] [stdout]    |
[INFO] [stdout] 88 | fn row103_distgeom_trace_enabled(num_points: usize) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_hbond_donor` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:4990:4
[INFO] [stdout]      |
[INFO] [stdout] 4990 | fn is_hbond_donor(atom: &Atom, total_num_hydrogens: u32) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ideal_bond_angle` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:5359:4
[INFO] [stdout]      |
[INFO] [stdout] 5359 | fn ideal_bond_angle(hybridization: &crate::Hybridization, ring_size: Option<usize>) -> f64 {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `common_middle_atom` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:5535:4
[INFO] [stdout]      |
[INFO] [stdout] 5535 | fn common_middle_atom(mol: &Molecule, a1: usize, a3: usize) -> Option<usize> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_upper_if_better`, `set_lower_if_better`, and `check_valid` are never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:5618:8
[INFO] [stdout]      |
[INFO] [stdout] 5556 | impl BoundsMatrix {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 5618 |     fn set_upper_if_better(&mut self, i: usize, j: usize, val: f64) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5651 |     fn set_lower_if_better(&mut self, i: usize, j: usize, val: f64) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 5687 |     fn check_valid(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pick_random_dist_mat` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:5990:4
[INFO] [stdout]      |
[INFO] [stdout] 5990 | fn pick_random_dist_mat(mmat: &BoundsMatrix, dist_mat: &mut SymmMatrix, seed: i32) -> f64 {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_initial_coords` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:6330:4
[INFO] [stdout]      |
[INFO] [stdout] 6330 | fn compute_initial_coords(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_random_coords` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:6637:4
[INFO] [stdout]      |
[INFO] [stdout] 6637 | fn compute_random_coords(positions: &mut [Vec<f64>], box_size: f64, seed: i32) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_atom_in_ring_of_size` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:7775:4
[INFO] [stdout]      |
[INFO] [stdout] 7775 | fn is_atom_in_ring_of_size(ring_info: &crate::RingInfo, atom_idx: usize, size: usize) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bond_between_idx` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:8082:4
[INFO] [stdout]      |
[INFO] [stdout] 8082 | fn bond_between_idx(bond_idx: usize) -> Option<usize> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_h2_nx3_h1_ox2` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:9686:4
[INFO] [stdout]      |
[INFO] [stdout] 9686 | fn check_h2_nx3_h1_ox2(mol: &Molecule, atom_idx: usize) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_nh_ch_ch_nh` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:9713:4
[INFO] [stdout]      |
[INFO] [stdout] 9713 | fn check_nh_ch_ch_nh(mol: &Molecule, atm1: usize, atm2: usize, atm3: usize, atm4: usize) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bond_lengths_from_accum` is never used
[INFO] [stdout]      --> crates/cosmolkit-core/src/chemistry/distgeom.rs:10571:4
[INFO] [stdout]       |
[INFO] [stdout] 10571 | fn bond_lengths_from_accum(accum_data: &ComputedData, bid: usize) -> f64 {
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InvalidParameterSourceFormat`, `UnsupportedEscapeSequence`, `UnterminatedQuotedLiteral`, and `TrailingEscape` are never constructed
[INFO] [stdout]   --> crates/cosmolkit-core/src/chemistry/forcefield/crystalff/torsion_preferences.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum CrystalffTorsionPreferencesError {
[INFO] [stdout]    |          -------------------------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     InvalidParameterSourceFormat { constant_name: &'static str },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     UnsupportedEscapeSequence {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     UnterminatedQuotedLiteral { constant_name: &'static str },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     TrailingEscape { constant_name: &'static str },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CrystalffTorsionPreferencesError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pattern` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/crystalff/torsion_preferences.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub(crate) struct ExpTorsionAngle {
[INFO] [stdout]     |                   --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pattern: Result<SmartsMolecule, SmartsParseError>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExpTorsionAngle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pattern` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/crystalff/torsion_preferences.rs:134:19
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl ExpTorsionAngle {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub(crate) fn pattern(&self) -> Result<&SmartsMolecule, &SmartsParseError> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `param_data` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/crystalff/torsion_preferences.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub(crate) struct ExpTorsionAngleCollection {
[INFO] [stdout]     |                   ------------------------- field in this struct
[INFO] [stdout] 151 |     param_data: String,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExpTorsionAngleCollection` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `param_data` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/crystalff/torsion_preferences.rs:157:19
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl ExpTorsionAngleCollection {
[INFO] [stdout]     | ------------------------------ method in this implementation
[INFO] [stdout] 156 |     #[must_use]
[INFO] [stdout] 157 |     pub(crate) fn param_data(&self) -> &str {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/mmff/angle_bend.rs:266:12
[INFO] [stdout]     |
[INFO] [stdout]  26 | impl AngleBendContrib {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub fn owner(&self) -> *const ForceField {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn is_linear_terms(&self) -> &[bool] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn atom1_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub fn atom2_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn atom3_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     pub fn force_constants(&self) -> &[f64] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub fn rest_angles(&self) -> &[f64] {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_angle_rest_value` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/mmff/angle_bend.rs:348:4
[INFO] [stdout]     |
[INFO] [stdout] 348 | fn calc_angle_rest_value(mmff_angle_params: &MmffAngle) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_angle_force_constant` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/mmff/angle_bend.rs:359:4
[INFO] [stdout]     |
[INFO] [stdout] 359 | fn calc_angle_force_constant(mmff_angle_params: &MmffAngle) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/mmff/bond_stretch.rs:46:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl BondStretchContrib {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub fn owner(&self) -> *const ForceField {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn atom1_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn atom2_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn rest_lengths(&self) -> &[f64] {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn force_constants(&self) -> &[f64] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `construct_force_field` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/mmff/builder.rs:140:15
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub(crate) fn construct_force_field(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MMFF_DIELECTRIC_DISTANCE` is never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/chemistry/forcefield/mmff/mol_properties.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const MMFF_DIELECTRIC_DISTANCE: u8 = 2;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MMFF_VERBOSITY_LOW` is never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/chemistry/forcefield/mmff/mol_properties.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const MMFF_VERBOSITY_LOW: u8 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MMFF_VERBOSITY_HIGH` is never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/chemistry/forcefield/mmff/mol_properties.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const MMFF_VERBOSITY_HIGH: u8 = 2;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/mmff/nonbonded.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl NonbondedContrib {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn owner(&self) -> *const ForceField {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn atom1_indices(&self) -> &[i16] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn atom2_indices(&self) -> &[i16] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn contrib_types(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn r_ij_stars(&self) -> &[f64] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn well_depths(&self) -> &[f64] {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn charge_terms(&self) -> &[f64] {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn is_1_4s(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn diel_models(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/mmff/oop_bend.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl OopBendContrib {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn owner(&self) -> *const ForceField {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn atom1_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn atom2_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn atom3_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn atom4_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn koop(&self) -> &[f64] {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/mmff/stretch_bend.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl StretchBendContrib {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn owner(&self) -> *const ForceField {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn atom1_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     pub fn atom2_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn atom3_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub fn rest_lengths1(&self) -> &[f64] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn rest_lengths2(&self) -> &[f64] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 343 |     pub fn theta0(&self) -> &[f64] {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     pub fn force_constants1(&self) -> &[f64] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn force_constants2(&self) -> &[f64] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/mmff/torsion_angle.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 200 | impl TorsionAngleContrib {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn owner(&self) -> *const ForceField {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub fn atom1_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     pub fn atom2_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     pub fn atom3_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub fn atom4_indices(&self) -> &[usize] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 315 |     pub fn v1(&self) -> &[f64] {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn v2(&self) -> &[f64] {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn v3(&self) -> &[f64] {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/uff/angle_bend.rs:143:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl AngleBendContrib {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn owner(&self) -> *const ForceField {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn at1_idx(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn at2_idx(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn at3_idx(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn order(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn force_constant(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn c0(&self) -> f64 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn c1(&self) -> f64 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn c2(&self) -> f64 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn theta0(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `owner`, `end1_idx`, `end2_idx`, `rest_len`, and `force_constant` are never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/chemistry/forcefield/uff/bond_stretch.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl BondStretchContrib {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn owner(&self) -> *const ForceField {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn end1_idx(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn end2_idx(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn rest_len(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn force_constant(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bond_between_idx_simple` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/uff/builder.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn bond_between_idx_simple(mol: &Molecule, a: usize, b: usize) -> Option<usize> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `at2_atomic_num` and `is_c_bound_to_o` are never read
[INFO] [stdout]   --> crates/cosmolkit-core/src/chemistry/forcefield/uff/inversion.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct InversionContribsParams {
[INFO] [stdout]    |            ----------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     at2_atomic_num: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 28 |     is_c_bound_to_o: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InversionContribsParams` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/chemistry/forcefield/uff/inversion.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl InversionContribsParams {
[INFO] [stdout]    | ---------------------------- methods in this implementation
[INFO] [stdout] 42 |     #[must_use]
[INFO] [stdout] 43 |     pub fn idx1(&self) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn idx2(&self) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn idx3(&self) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn idx4(&self) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn at2_atomic_num(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn is_c_bound_to_o(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn c0(&self) -> f64 {
[INFO] [stdout]    |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn c1(&self) -> f64 {
[INFO] [stdout]    |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn c2(&self) -> f64 {
[INFO] [stdout]    |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn force_constant(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/uff/inversion.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout]  93 | impl InversionContrib {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn owner(&self) -> *const ForceField {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn at1_idx(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn at2_idx(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn at3_idx(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn at4_idx(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn force_constant(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn c0(&self) -> f64 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn c1(&self) -> f64 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn c2(&self) -> f64 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `owner`, `contribs`, and `size` are never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/uff/inversion.rs:457:12
[INFO] [stdout]     |
[INFO] [stdout] 442 | impl InversionContribs {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 457 |     pub fn owner(&self) -> *const ForceField {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 462 |     pub fn contribs(&self) -> &[InversionContribsParams] {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 473 |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `owner`, `at1_idx`, `at2_idx`, `x_ij`, `well_depth`, and `thresh` are never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/chemistry/forcefield/uff/nonbonded.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl VdwContrib {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn owner(&self) -> *const ForceField {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn at1_idx(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn at2_idx(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn x_ij(&self) -> f64 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn well_depth(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub fn thresh(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAMS_AMIDE_BOND_ORDER` is never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/chemistry/forcefield/uff/params.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const PARAMS_AMIDE_BOND_ORDER: f64 = 1.41;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `source_param_data` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/uff/params.rs:114:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct ParamCollection {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 114 |     source_param_data: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParamCollection` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `source_param_data`, `len`, and `is_empty` are never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/uff/params.rs:238:12
[INFO] [stdout]     |
[INFO] [stdout] 172 | impl ParamCollection {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn source_param_data(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/uff/torsion_angle.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl TorsionAngleContrib {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn owner(&self) -> *const ForceField {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn at1_idx(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn at2_idx(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn at3_idx(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn at4_idx(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn order(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn force_constant(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn cos_term(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/chemistry/kekulize.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl KekulizeAssignment {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 69 |     fn empty(num_atoms: usize, num_bonds: usize) -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fused_ring_systems_stack_order_for_tests` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/kekulize.rs:1882:4
[INFO] [stdout]      |
[INFO] [stdout] 1882 | fn fused_ring_systems_stack_order_for_tests(rings: &[KekulizeRing]) -> Vec<Vec<usize>> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add3` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/mol_transforms.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn add3(a: &[f64; 3], b: &[f64; 3]) -> [f64; 3] {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scale3` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/mol_transforms.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn scale3(v: &[f64; 3], s: f64) -> [f64; 3] {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_bond_length` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/mol_transforms.rs:305:4
[INFO] [stdout]     |
[INFO] [stdout] 305 | fn set_bond_length(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/rings.rs:786:8
[INFO] [stdout]     |
[INFO] [stdout] 785 | impl<'a> RingSearchContext<'a> {
[INFO] [stdout]     | ------------------------------ associated function in this implementation
[INFO] [stdout] 786 |     fn new(molecule: &'a Molecule) -> Result<Self, RingFindingError> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec_neg` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/stereo.rs:989:4
[INFO] [stdout]     |
[INFO] [stdout] 989 | fn vec_neg(v: (f64, f64, f64)) -> (f64, f64, f64) {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec_len` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/stereo.rs:999:4
[INFO] [stdout]     |
[INFO] [stdout] 999 | fn vec_len(v: (f64, f64, f64)) -> f64 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `begin` and `end` are never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/stereo_enumerate.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 143 | struct StereoBond {
[INFO] [stdout]     |        ---------- fields in this struct
[INFO] [stdout] 144 |     bond: BondId,
[INFO] [stdout] 145 |     begin: AtomId,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 146 |     end: AtomId,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StereoBond` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assign_explicit_valence_for_atom_from_parts` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/valence.rs:410:15
[INFO] [stdout]     |
[INFO] [stdout] 410 | pub(crate) fn assign_explicit_valence_for_atom_from_parts(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_last_atom_source_traits` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/io/bio.rs:442:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl PdbBioBuilder {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 442 |     fn set_last_atom_source_traits(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_structure_from_chemcomp_doc` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/bio.rs:1697:4
[INFO] [stdout]      |
[INFO] [stdout] 1697 | fn make_structure_from_chemcomp_doc(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `coor_format_from_ext` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/bio.rs:1765:4
[INFO] [stdout]      |
[INFO] [stdout] 1765 | fn coor_format_from_ext(path: &str) -> Result<BioCoorFormat, BioReadError> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_remark_290` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/bio.rs:3095:4
[INFO] [stdout]      |
[INFO] [stdout] 3095 | fn read_remark_290(raw_remarks: &[String]) -> Result<Vec<String>, BioReadError> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CifSmat33` is never constructed
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/bio.rs:4221:8
[INFO] [stdout]      |
[INFO] [stdout] 4221 | struct CifSmat33<T> {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_by_id` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/bio.rs:4836:4
[INFO] [stdout]      |
[INFO] [stdout] 4836 | fn get_by_id<'a, T, F>(vec: &'a mut [T], id: &str, mut get_id: F) -> Option<&'a mut T>
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_int` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/bio.rs:4847:4
[INFO] [stdout]      |
[INFO] [stdout] 4847 | fn copy_int(row: &[CifToken], index: usize, dest: &mut i32) -> Result<(), BioReadError> {
[INFO] [stdout]      |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_double` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/bio.rs:4864:4
[INFO] [stdout]      |
[INFO] [stdout] 4864 | fn copy_double(row: &[CifToken], index: usize, dest: &mut f32) -> Result<(), BioReadError> {
[INFO] [stdout]      |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_smat33` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/bio.rs:4894:4
[INFO] [stdout]      |
[INFO] [stdout] 4894 | fn get_smat33(row: &[CifToken], index: usize) -> Result<CifSmat33<f32>, BioReadError> {
[INFO] [stdout]      |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_cif_loops` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/bio.rs:7592:4
[INFO] [stdout]      |
[INFO] [stdout] 7592 | fn parse_cif_loops(text: &str) -> Result<Vec<CifLoop>, BioReadError> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `has_h_atoms` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/io/mol2.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout]  97 | struct Mol2AtomBlock {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 100 |     has_h_atoms: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mol2AtomBlock` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `n_bad_bonds` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/io/mol2.rs:114:5
[INFO] [stdout]     |
[INFO] [stdout] 112 | struct Mol2BondBlock {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] 113 |     builder: MoleculeBuilder,
[INFO] [stdout] 114 |     n_bad_bonds: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mol2BondBlock` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `next_offset` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/io/mol2.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 118 | struct Mol2UnityAtomAttrBlock {
[INFO] [stdout]     |        ---------------------- field in this struct
[INFO] [stdout] 119 |     builder: MoleculeBuilder,
[INFO] [stdout] 120 |     next_offset: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mol2UnityAtomAttrBlock` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOLFILE_ATOMIC_WEIGHT` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/molblock.rs:1251:7
[INFO] [stdout]      |
[INFO] [stdout] 1251 | const MOLFILE_ATOMIC_WEIGHT: [i32; 119] = [
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `can_be_stereo_bond_for_writer` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/molblock.rs:1536:4
[INFO] [stdout]      |
[INFO] [stdout] 1536 | fn can_be_stereo_bond_for_writer(molecule: &Molecule, bond: &Bond) -> Result<bool, MolWriteError> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `query_mut` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/model/atom.rs:673:19
[INFO] [stdout]     |
[INFO] [stdout] 415 | impl AtomSpec {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 673 |     pub(crate) fn query_mut(&mut self) -> Option<&mut QueryNode<AtomQueryPredicate>> {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_id` is never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/model/molecule.rs:69:19
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl Conformer2D {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub(crate) fn with_id(mut self, id: usize) -> Self {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_id` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/model/molecule.rs:159:19
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl Conformer3D {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub(crate) fn with_id(mut self, id: usize) -> Self {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `prepared_for_drawing_parity` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/model/molecule.rs:980:19
[INFO] [stdout]     |
[INFO] [stdout] 691 | impl Molecule {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 980 |     pub(crate) fn prepared_for_drawing_parity(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_molecule_read` is never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/model/read_parts.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl<'a> MoleculeReadParts<'a> {
[INFO] [stdout]    | ------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 96 |     fn with_molecule_read<R>(self, f: impl FnOnce(&Molecule) -> R) -> R {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rank_fragment_atoms` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/notation/canon_rank.rs:323:15
[INFO] [stdout]     |
[INFO] [stdout] 323 | pub(crate) fn rank_fragment_atoms(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_rna_fragment_map` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/notation/sequence.rs:175:4
[INFO] [stdout]     |
[INFO] [stdout] 175 | fn build_rna_fragment_map() -> HashMap<char, &'static str> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_atom_chemical_props` is never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/notation/smiles.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn clear_atom_chemical_props(atom: &mut Atom) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `double_bond_seen` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/notation/smiles/stereo.rs:613:5
[INFO] [stdout]     |
[INFO] [stdout] 609 | struct SmilesControllingBondResult {
[INFO] [stdout]     |        --------------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 613 |     double_bond_seen: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SmilesControllingBondResult` 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 `set_double_bond_neighbor_directions_from_stereo` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/notation/smiles/stereo.rs:1215:15
[INFO] [stdout]      |
[INFO] [stdout] 1215 | pub(crate) fn set_double_bond_neighbor_directions_from_stereo(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `full_molecule` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/notation/smiles_write.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | impl CxWriteScope {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 259 |     fn full_molecule(molecule: &Molecule) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_cx_extensions` is never used
[INFO] [stdout]  --> crates/cosmolkit-core/src/notation/smiles_write/cx.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn get_cx_extensions(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_cx_coords` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/notation/smiles_write/cx.rs:235:15
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub(super) fn write_cx_coords(molecule: &Molecule, atom_order: &[AtomId]) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_cx_molfile_values` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/notation/smiles_write/cx.rs:291:15
[INFO] [stdout]     |
[INFO] [stdout] 291 | pub(super) fn write_cx_molfile_values(molecule: &Molecule, atom_order: &[AtomId]) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sanitize_invalid_input_error` is never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/operations/ops/sanitize_pipeline.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn sanitize_invalid_input_error(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PreparedDrawAtom` is never constructed
[INFO] [stdout]   --> crates/cosmolkit-core/src/properties/draw.rs:71:19
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub(crate) struct PreparedDrawAtom {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PreparedDrawBond` is never constructed
[INFO] [stdout]   --> crates/cosmolkit-core/src/properties/draw.rs:80:19
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub(crate) struct PreparedDrawBond {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PreparedDrawMolecule` is never constructed
[INFO] [stdout]   --> crates/cosmolkit-core/src/properties/draw.rs:92:19
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub(crate) struct PreparedDrawMolecule {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_alpha` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:114:14
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl DrawColour {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     const fn with_alpha(self, a: f64) -> Self {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `query_colour` and `include_radicals` are never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | struct DrawOptions {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 129 |     query_colour: DrawColour,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     include_radicals: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DrawOptions` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `atomic_num` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:321:5
[INFO] [stdout]     |
[INFO] [stdout] 318 | struct AtomLabel {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 321 |     atomic_num: u8,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AtomLabel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `kind_is_simple` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:500:8
[INFO] [stdout]     |
[INFO] [stdout] 499 | impl DrawLine {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 500 |     fn kind_is_simple(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `split_bonds` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:521:5
[INFO] [stdout]     |
[INFO] [stdout] 514 | struct DrawWedge {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 521 |     split_bonds: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DrawWedge` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `atom2_idx` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:543:5
[INFO] [stdout]     |
[INFO] [stdout] 536 | struct DrawPolyline {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 543 |     atom2_idx: Option<usize>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DrawPolyline` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cross` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:828:4
[INFO] [stdout]     |
[INFO] [stdout] 828 | fn cross(a: DVec2, b: DVec2) -> f64 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_wavy_line_segments` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:1011:4
[INFO] [stdout]      |
[INFO] [stdout] 1011 | fn get_wavy_line_segments(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pick_bonds_to_wedge`, `determine_bond_wedge_state`, and `line_endpoint_idx` are never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:2681:8
[INFO] [stdout]      |
[INFO] [stdout] 2123 | impl DrawMol {
[INFO] [stdout]      | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2681 |     fn pick_bonds_to_wedge(&self, mol: &Molecule) -> HashSet<usize> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2714 |     fn determine_bond_wedge_state(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6364 |     fn line_endpoint_idx(&self, line: &DrawLine, atom_idx: usize) -> Option<usize> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_text_drawer` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:6767:4
[INFO] [stdout]      |
[INFO] [stdout] 6767 | fn init_text_drawer(out: &mut String) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_molecule_metadata` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:6775:4
[INFO] [stdout]      |
[INFO] [stdout] 6775 | fn add_molecule_metadata(out: &mut String, mol: &Molecule, width: u32, height: u32) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tag_atoms` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:6786:4
[INFO] [stdout]      |
[INFO] [stdout] 6786 | fn tag_atoms(out: &mut String, atom_labels: &[Option<AtomLabel>]) {
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `output_classes` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:6797:4
[INFO] [stdout]      |
[INFO] [stdout] 6797 | fn output_classes(out: &mut String, class_name: &str) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_wavy_line_svg` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:6889:4
[INFO] [stdout]      |
[INFO] [stdout] 6889 | fn draw_wavy_line_svg(out: &mut String, begin: DVec2, end: DVec2, col: DrawColour, width: f64) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_ellipse_svg` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:6930:4
[INFO] [stdout]      |
[INFO] [stdout] 6930 | fn draw_ellipse_svg(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_mol_for_drawing_parity` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:7739:15
[INFO] [stdout]      |
[INFO] [stdout] 7739 | pub(crate) fn prepare_mol_for_drawing_parity(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `OpenBracket` and `CloseBracket` are never constructed
[INFO] [stdout]    --> crates/cosmolkit-core/src/search/smarts_parse.rs:314:5
[INFO] [stdout]     |
[INFO] [stdout] 300 | enum Token {
[INFO] [stdout]     |      ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 314 |     OpenBracket,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 315 |     /// Close square bracket
[INFO] [stdout] 316 |     CloseBracket,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Token` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/search/smarts_parse.rs:532:5
[INFO] [stdout]     |
[INFO] [stdout] 530 | struct SmartsParser<'a> {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] 531 |     tokens: &'a [(Token, usize)],
[INFO] [stdout] 532 |     input: &'a str,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vf2_match` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/search/substruct.rs:1267:4
[INFO] [stdout]      |
[INFO] [stdout] 1267 | fn vf2_match(
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `AtomId_usize` should have a snake case name
[INFO] [stdout]    --> crates/cosmolkit-core/src/notation/fragment.rs:297:4
[INFO] [stdout]     |
[INFO] [stdout] 297 | fn AtomId_usize(index: usize) -> crate::AtomId {
[INFO] [stdout]     |    ^^^^^^^^^^^^ help: convert the identifier to snake case: `atom_id_usize`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `colls` is never read
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:3066:21
[INFO] [stdout]      |
[INFO] [stdout] 3066 |                     colls = self.find_collisions(atoms, bonds, adjacency, &dmat, true);
[INFO] [stdout]      |                     ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query_atom`
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:5471:13
[INFO] [stdout]      |
[INFO] [stdout] 5471 |         let query_atom = &query.atoms()[query_idx];
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_query_atom`
[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]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6349:13
[INFO] [stdout]      |
[INFO] [stdout] 6349 |         let mut query_adj_value = query.clone();
[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 `reference_hs` is assigned to, but never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6333:9
[INFO] [stdout]      |
[INFO] [stdout] 6333 |     let mut reference_hs = None;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_reference_hs` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ref_atom`
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6433:29
[INFO] [stdout]      |
[INFO] [stdout] 6433 |                         let ref_atom = &query_adj_ref.atoms()[pattern_idx];
[INFO] [stdout]      |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ref_atom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `reference_hs` is never read
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6380:13
[INFO] [stdout]      |
[INFO] [stdout] 6380 |             reference_hs = Some(reference_hs_value);
[INFO] [stdout]      |             ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pattern_to_ref_matches` is never read
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6337:38
[INFO] [stdout]      |
[INFO] [stdout] 6337 |     let mut pattern_to_ref_matches = Vec::<Vec<(usize, usize)>>::new();
[INFO] [stdout]      |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 6363 |             pattern_to_ref_matches =
[INFO] [stdout]      |             ---------------------- `pattern_to_ref_matches` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r0`
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:8601:13
[INFO] [stdout]      |
[INFO] [stdout] 8601 |         let r0 = ref_builder.add_atom(AtomSpec::new(Element::C));
[INFO] [stdout]      |             ^^ help: if this is intentional, prefix it with an underscore: `_r0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking cosmolkit v0.2.6 (/opt/rustwide/workdir/crates/cosmolkit)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:1759:17
[INFO] [stdout]      |
[INFO] [stdout] 1759 |             let mut vol_upper_bound = 100.0;
[INFO] [stdout]      |                 ----^^^^^^^^^^^^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bond_idx`
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:8082:21
[INFO] [stdout]      |
[INFO] [stdout] 8082 | fn bond_between_idx(bond_idx: usize) -> Option<usize> {
[INFO] [stdout]      |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bond_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:8800:10
[INFO] [stdout]      |
[INFO] [stdout] 8800 |     let (mut dl, mut du) = if prefer_cis {
[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]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:8800:18
[INFO] [stdout]      |
[INFO] [stdout] 8800 |     let (mut dl, mut du) = if prefer_cis {
[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]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:8919:10
[INFO] [stdout]      |
[INFO] [stdout] 8919 |     let (mut dl, mut du, kind) = if ahyb2 == Hybridization::Sp2 && ahyb3 == Hybridization::Sp2 {
[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]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:8919:18
[INFO] [stdout]      |
[INFO] [stdout] 8919 |     let (mut dl, mut du, kind) = if ahyb2 == Hybridization::Sp2 && ahyb3 == Hybridization::Sp2 {
[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]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:9139:10
[INFO] [stdout]      |
[INFO] [stdout] 9139 |     let (mut dl, mut du, kind) = if check_macrocycle_two_in_same_ring_amide_ester_14(
[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]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:9139:18
[INFO] [stdout]      |
[INFO] [stdout] 9139 |     let (mut dl, mut du, kind) = if check_macrocycle_two_in_same_ring_amide_ester_14(
[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]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:9501:9
[INFO] [stdout]      |
[INFO] [stdout] 9501 |     let mut set_the_bound = true;
[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]      --> crates/cosmolkit-core/src/chemistry/distgeom.rs:10330:14
[INFO] [stdout]       |
[INFO] [stdout] 10330 |         let (mut dl, mut du) = match kind {
[INFO] [stdout]       |              ----^^
[INFO] [stdout]       |              |
[INFO] [stdout]       |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking cosmolkit-py v0.2.6 (/opt/rustwide/workdir/python)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom/tests.rs:4869:9
[INFO] [stdout]      |
[INFO] [stdout] 4869 |     let mut mmat = BoundsMatrix::new(1);
[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]    --> crates/cosmolkit-core/src/chemistry/forcefield/crystalff/torsion_preferences.rs:551:13
[INFO] [stdout]     |
[INFO] [stdout] 551 |         let mut done_atoms = vec![false; na];
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `order` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/uff/builder.rs:385:37
[INFO] [stdout]     |
[INFO] [stdout] 385 |                     let mut order = 0_u32;
[INFO] [stdout]     |                                     ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 391 |                         Hybridization::Sp => order = 1,
[INFO] [stdout]     |                                              --------- `order` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/uff/utils.rs:146:19
[INFO] [stdout]     |
[INFO] [stdout] 146 |     let mut res = 0.0;
[INFO] [stdout]     |                   ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 203 |         res = 22.0 / (c0 + c1 + c2);
[INFO] [stdout]     |         --------------------------- `res` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `adj`
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/mol_transforms.rs:314:9
[INFO] [stdout]     |
[INFO] [stdout] 314 |     let adj = AdjacencyList::from_topology(num_atoms, mol.bonds());
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_adj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `adj`
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/mol_transforms.rs:941:9
[INFO] [stdout]     |
[INFO] [stdout] 941 |     let adj = AdjacencyList::from_topology(num_atoms, mol.bonds());
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_adj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `invariant` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/stereo.rs:347:34
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let mut invariant: i64 = 0;
[INFO] [stdout]     |                                  ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 365 |         invariant = num; // 7 bits
[INFO] [stdout]     |         --------------- `invariant` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/stereo.rs:1349:17
[INFO] [stdout]      |
[INFO] [stdout] 1349 |             let mut vol2 = vec_dot(crossp2, bond_vects[order[0]]);
[INFO] [stdout]      |                 ----^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wedge_bond`
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/stereo.rs:3686:17
[INFO] [stdout]      |
[INFO] [stdout] 3686 |             let wedge_bond = &mol.bonds()[wedge_idx];
[INFO] [stdout]      |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wedge_bond`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dash_bond`
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/stereo.rs:3687:17
[INFO] [stdout]      |
[INFO] [stdout] 3687 |             let dash_bond = &mol.bonds()[dash_idx];
[INFO] [stdout]      |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dash_bond`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mol`
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/stereo.rs:3701:22
[INFO] [stdout]      |
[INFO] [stdout] 3701 | fn is_opposite_bonds(mol: &Molecule, _atom_idx: usize, _bond_a: usize, _bond_b: usize) -> bool {
[INFO] [stdout]      |                      ^^^ help: if this is intentional, prefix it with an underscore: `_mol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/bio.rs:3632:9
[INFO] [stdout]      |
[INFO] [stdout] 3632 |     let mut name = name.trim_start().to_string();
[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]     --> crates/cosmolkit-core/src/io/molblock.rs:1244:9
[INFO] [stdout]      |
[INFO] [stdout] 1244 |     let mut line = format!("  {:>8}{:>10}", "COSMolKit", "");
[INFO] [stdout]      |         ----^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `include_stereo`
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/molblock.rs:1619:5
[INFO] [stdout]      |
[INFO] [stdout] 1619 |     include_stereo: bool,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_include_stereo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `include_stereo`
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/molblock.rs:1839:5
[INFO] [stdout]      |
[INFO] [stdout] 1839 |     include_stereo: bool,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_include_stereo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/cosmolkit-core/src/io/pdb_molecule.rs:923:5
[INFO] [stdout]     |
[INFO] [stdout] 923 |     mut rescode: u32,
[INFO] [stdout]     |     ----^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valence`
[INFO] [stdout]    --> crates/cosmolkit-core/src/operations/ops/sanitize_pipeline.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |     let valence = sanitize_properties_stage(
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/avalon_fingerprint.rs:701:13
[INFO] [stdout]     |
[INFO] [stdout] 701 |         let c = builder.add_atom(AtomSpec::new(Element::C));
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tl`
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:615:18
[INFO] [stdout]     |
[INFO] [stdout] 615 |             let (tl, tr, br, bl) = shifted.calc_corners(0.0);
[INFO] [stdout]     |                  ^^ help: if this is intentional, prefix it with an underscore: `_tl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `br`
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:615:26
[INFO] [stdout]     |
[INFO] [stdout] 615 |             let (tl, tr, br, bl) = shifted.calc_corners(0.0);
[INFO] [stdout]     |                          ^^ help: if this is intentional, prefix it with an underscore: `_br`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `orient` is never read
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:2481:26
[INFO] [stdout]      |
[INFO] [stdout] 2481 |           let mut orient = OrientType::C;
[INFO] [stdout]      |                            ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 2494 | /                 orient = if nbr_sum.y > 0.0 {
[INFO] [stdout] 2495 | |                     OrientType::S
[INFO] [stdout] 2496 | |                 } else {
[INFO] [stdout] 2497 | |                     OrientType::N
[INFO] [stdout] 2498 | |                 };
[INFO] [stdout]      | |_________________- `orient` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:2931:23
[INFO] [stdout]      |
[INFO] [stdout] 2931 |         let (mut l2s, mut l2f) = if mol
[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]     --> crates/cosmolkit-core/src/properties/draw.rs:3245:21
[INFO] [stdout]      |
[INFO] [stdout] 3245 |                 let mut l2s = self.double_bond_end(
[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]     --> crates/cosmolkit-core/src/properties/draw.rs:3538:17
[INFO] [stdout]      |
[INFO] [stdout] 3538 |             let mut points = points;
[INFO] [stdout]      |                 ----^^^^^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:4445:17
[INFO] [stdout]      |
[INFO] [stdout] 4445 |             let idx = bond.id().index();
[INFO] [stdout]      |                 ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:4765:17
[INFO] [stdout]      |
[INFO] [stdout] 4765 |             let idx = bond.id().index();
[INFO] [stdout]      |                 ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:5676:13
[INFO] [stdout]      |
[INFO] [stdout] 5676 |         let mut at1_cds = self.at_cds[b];
[INFO] [stdout]      |             ----^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mol`
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:5670:9
[INFO] [stdout]      |
[INFO] [stdout] 5670 |         mol: &Molecule,
[INFO] [stdout]      |         ^^^ help: if this is intentional, prefix it with an underscore: `_mol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/fingerprint.rs:619:27
[INFO] [stdout]     |
[INFO] [stdout] 619 | fn validate_morgan_params(params: &MorganFingerprintParams) -> Result<(), FingerprintError> {
[INFO] [stdout]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_bonds`
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/fingerprint.rs:1037:9
[INFO] [stdout]      |
[INFO] [stdout] 1037 |     let num_bonds = molecule.num_bonds();
[INFO] [stdout]      |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_bonds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count_element`
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/fingerprint.rs:1053:9
[INFO] [stdout]      |
[INFO] [stdout] 1053 |     let count_element =
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_count_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_neighbor_z`
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/fingerprint.rs:1082:9
[INFO] [stdout]      |
[INFO] [stdout] 1082 |     let has_neighbor_z = |atom_idx: usize, target_z: u8| -> bool {
[INFO] [stdout]      |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_neighbor_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `find_atom`
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/fingerprint.rs:1090:9
[INFO] [stdout]      |
[INFO] [stdout] 1090 |     let find_atom = |pred: fn(&[u8], &[i8], usize) -> bool| -> Option<usize> {
[INFO] [stdout]      |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_find_atom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/mol_hash.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |     let n = mol.num_atoms();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mol`
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/mol_hash.rs:411:5
[INFO] [stdout]     |
[INFO] [stdout] 411 |     mol: &Molecule,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_mol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `atom_queries`
[INFO] [stdout]     --> crates/cosmolkit-core/src/search/query.rs:1124:9
[INFO] [stdout]      |
[INFO] [stdout] 1124 |         atom_queries: &mut Vec<QueryNode<AtomQueryPredicate>>,
[INFO] [stdout]      |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_atom_queries`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mol`
[INFO] [stdout]     --> crates/cosmolkit-core/src/search/query.rs:1302:42
[INFO] [stdout]      |
[INFO] [stdout] 1302 | fn count_ring_bonds(adj: &AdjacencyList, mol: &Molecule, ri: &RingInfo, aidx: usize) -> u8 {
[INFO] [stdout]      |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_mol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> crates/cosmolkit-core/src/search/query.rs:1458:13
[INFO] [stdout]      |
[INFO] [stdout] 1458 |         let mut mol = Molecule::new();
[INFO] [stdout]      |             ----^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mol`
[INFO] [stdout]     --> crates/cosmolkit-core/src/search/query.rs:1458:13
[INFO] [stdout]      |
[INFO] [stdout] 1458 |         let mut mol = Molecule::new();
[INFO] [stdout]      |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `builder`
[INFO] [stdout]     --> crates/cosmolkit-core/src/search/query.rs:1459:13
[INFO] [stdout]      |
[INFO] [stdout] 1459 |         let builder = Molecule::builder();
[INFO] [stdout]      |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_builder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SmilesControllingBondResult` is more private than the item `controlling_bond_from_atom_for_smiles`
[INFO] [stdout]    --> crates/cosmolkit-core/src/notation/smiles/stereo.rs:704:1
[INFO] [stdout]     |
[INFO] [stdout] 704 | / pub(super) fn controlling_bond_from_atom_for_smiles(
[INFO] [stdout] 705 | |     mol: &Molecule,
[INFO] [stdout] 706 | |     adjacency: &AdjacencyList,
[INFO] [stdout] 707 | |     needs_dir: &[bool],
[INFO] [stdout] ...   |
[INFO] [stdout] 710 | |     atom: AtomId,
[INFO] [stdout] 711 | | ) -> SmilesControllingBondResult {
[INFO] [stdout]     | |________________________________^ function `controlling_bond_from_atom_for_smiles` is reachable at visibility `pub(in crate::notation::smiles)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SmilesControllingBondResult` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> crates/cosmolkit-core/src/notation/smiles/stereo.rs:609:1
[INFO] [stdout]     |
[INFO] [stdout] 609 | struct SmilesControllingBondResult {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_fused_ring_atom_order` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:1598:8
[INFO] [stdout]      |
[INFO] [stdout] 1512 | impl RdkitEmbeddedFrag {
[INFO] [stdout]      | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1598 |     fn from_fused_ring_atom_order(
[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 `generate_depiction_matching_2d_structure_with_ref_match_force_rdkit` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6302:15
[INFO] [stdout]      |
[INFO] [stdout] 6302 | pub(crate) fn generate_depiction_matching_2d_structure_with_ref_match_force_rdkit(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_depiction_matching_2d_structure_simple` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6572:15
[INFO] [stdout]      |
[INFO] [stdout] 6572 | pub(crate) fn generate_depiction_matching_2d_structure_simple(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_2d_coords_default_path` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/coordinates.rs:6992:4
[INFO] [stdout]      |
[INFO] [stdout] 6992 | fn compute_2d_coords_default_path(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `row103_distgeom_trace_enabled` is never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/chemistry/distgeom.rs:88:4
[INFO] [stdout]    |
[INFO] [stdout] 88 | fn row103_distgeom_trace_enabled(num_points: usize) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `common_middle_atom` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:5535:4
[INFO] [stdout]      |
[INFO] [stdout] 5535 | fn common_middle_atom(mol: &Molecule, a1: usize, a3: usize) -> Option<usize> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_atom_in_ring_of_size` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:7775:4
[INFO] [stdout]      |
[INFO] [stdout] 7775 | fn is_atom_in_ring_of_size(ring_info: &crate::RingInfo, atom_idx: usize, size: usize) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bond_between_idx` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/distgeom.rs:8082:4
[INFO] [stdout]      |
[INFO] [stdout] 8082 | fn bond_between_idx(bond_idx: usize) -> Option<usize> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bond_lengths_from_accum` is never used
[INFO] [stdout]      --> crates/cosmolkit-core/src/chemistry/distgeom.rs:10571:4
[INFO] [stdout]       |
[INFO] [stdout] 10571 | fn bond_lengths_from_accum(accum_data: &ComputedData, bid: usize) -> f64 {
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InvalidParameterSourceFormat`, `UnsupportedEscapeSequence`, `UnterminatedQuotedLiteral`, and `TrailingEscape` are never constructed
[INFO] [stdout]   --> crates/cosmolkit-core/src/chemistry/forcefield/crystalff/torsion_preferences.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum CrystalffTorsionPreferencesError {
[INFO] [stdout]    |          -------------------------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     InvalidParameterSourceFormat { constant_name: &'static str },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     UnsupportedEscapeSequence {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     UnterminatedQuotedLiteral { constant_name: &'static str },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     TrailingEscape { constant_name: &'static str },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CrystalffTorsionPreferencesError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MMFF_VERBOSITY_LOW` is never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/chemistry/forcefield/mmff/mol_properties.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const MMFF_VERBOSITY_LOW: u8 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bond_between_idx_simple` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/forcefield/uff/builder.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn bond_between_idx_simple(mol: &Molecule, a: usize, b: usize) -> Option<usize> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fused_ring_systems_stack_order_for_tests` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/kekulize.rs:1882:4
[INFO] [stdout]      |
[INFO] [stdout] 1882 | fn fused_ring_systems_stack_order_for_tests(rings: &[KekulizeRing]) -> Vec<Vec<usize>> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kekulize_assignment_handles_pyrrolic_five_membered_ring_like_rdkit` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/chemistry/kekulize.rs:3391:8
[INFO] [stdout]      |
[INFO] [stdout] 3391 |     fn kekulize_assignment_handles_pyrrolic_five_membered_ring_like_rdkit() {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add3` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/mol_transforms.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn add3(a: &[f64; 3], b: &[f64; 3]) -> [f64; 3] {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scale3` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/mol_transforms.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn scale3(v: &[f64; 3], s: f64) -> [f64; 3] {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_bond_length` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/mol_transforms.rs:305:4
[INFO] [stdout]     |
[INFO] [stdout] 305 | fn set_bond_length(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec_neg` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/stereo.rs:989:4
[INFO] [stdout]     |
[INFO] [stdout] 989 | fn vec_neg(v: (f64, f64, f64)) -> (f64, f64, f64) {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec_len` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/stereo.rs:999:4
[INFO] [stdout]     |
[INFO] [stdout] 999 | fn vec_len(v: (f64, f64, f64)) -> f64 {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `begin` and `end` are never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/stereo_enumerate.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 143 | struct StereoBond {
[INFO] [stdout]     |        ---------- fields in this struct
[INFO] [stdout] 144 |     bond: BondId,
[INFO] [stdout] 145 |     begin: AtomId,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 146 |     end: AtomId,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StereoBond` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assign_explicit_valence_for_atom_from_parts` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/valence.rs:410:15
[INFO] [stdout]     |
[INFO] [stdout] 410 | pub(crate) fn assign_explicit_valence_for_atom_from_parts(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_last_atom_source_traits` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/io/bio.rs:442:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl PdbBioBuilder {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 442 |     fn set_last_atom_source_traits(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOLFILE_ATOMIC_WEIGHT` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/molblock.rs:1251:7
[INFO] [stdout]      |
[INFO] [stdout] 1251 | const MOLFILE_ATOMIC_WEIGHT: [i32; 119] = [
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `can_be_stereo_bond_for_writer` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/io/molblock.rs:1536:4
[INFO] [stdout]      |
[INFO] [stdout] 1536 | fn can_be_stereo_bond_for_writer(molecule: &Molecule, bond: &Bond) -> Result<bool, MolWriteError> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `query_mut` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/model/atom.rs:673:19
[INFO] [stdout]     |
[INFO] [stdout] 415 | impl AtomSpec {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 673 |     pub(crate) fn query_mut(&mut self) -> Option<&mut QueryNode<AtomQueryPredicate>> {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_id` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/model/molecule.rs:159:19
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl Conformer3D {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub(crate) fn with_id(mut self, id: usize) -> Self {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_molecule_read` is never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/model/read_parts.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl<'a> MoleculeReadParts<'a> {
[INFO] [stdout]    | ------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 96 |     fn with_molecule_read<R>(self, f: impl FnOnce(&Molecule) -> R) -> R {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `double_bond_seen` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/notation/smiles/stereo.rs:613:5
[INFO] [stdout]     |
[INFO] [stdout] 609 | struct SmilesControllingBondResult {
[INFO] [stdout]     |        --------------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 613 |     double_bond_seen: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SmilesControllingBondResult` 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 `writer_cleans_nonstereo_double_bond_direction_specs_like_rdkit` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/notation/smiles_write/tests.rs:1235:4
[INFO] [stdout]      |
[INFO] [stdout] 1235 | fn writer_cleans_nonstereo_double_bond_direction_specs_like_rdkit() {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sanitize_invalid_input_error` is never used
[INFO] [stdout]   --> crates/cosmolkit-core/src/operations/ops/sanitize_pipeline.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn sanitize_invalid_input_error(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEST_OVERLAPPING_ACCESS_SPEC` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/operations/ops.rs:2004:11
[INFO] [stdout]      |
[INFO] [stdout] 2004 |     const TEST_OVERLAPPING_ACCESS_SPEC: MoleculeOpSpec = MoleculeOpSpec {
[INFO] [stdout]      |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_alpha` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:114:14
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl DrawColour {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     const fn with_alpha(self, a: f64) -> Self {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `query_colour` and `include_radicals` are never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | struct DrawOptions {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 129 |     query_colour: DrawColour,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     include_radicals: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DrawOptions` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `atomic_num` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:321:5
[INFO] [stdout]     |
[INFO] [stdout] 318 | struct AtomLabel {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 321 |     atomic_num: u8,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AtomLabel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `kind_is_simple` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:500:8
[INFO] [stdout]     |
[INFO] [stdout] 499 | impl DrawLine {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 500 |     fn kind_is_simple(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `split_bonds` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:521:5
[INFO] [stdout]     |
[INFO] [stdout] 514 | struct DrawWedge {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 521 |     split_bonds: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DrawWedge` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `atom2_idx` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:543:5
[INFO] [stdout]     |
[INFO] [stdout] 536 | struct DrawPolyline {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 543 |     atom2_idx: Option<usize>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DrawPolyline` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cross` is never used
[INFO] [stdout]    --> crates/cosmolkit-core/src/properties/draw.rs:828:4
[INFO] [stdout]     |
[INFO] [stdout] 828 | fn cross(a: DVec2, b: DVec2) -> f64 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_wavy_line_segments` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:1011:4
[INFO] [stdout]      |
[INFO] [stdout] 1011 | fn get_wavy_line_segments(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pick_bonds_to_wedge`, `determine_bond_wedge_state`, and `line_endpoint_idx` are never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:2681:8
[INFO] [stdout]      |
[INFO] [stdout] 2123 | impl DrawMol {
[INFO] [stdout]      | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2681 |     fn pick_bonds_to_wedge(&self, mol: &Molecule) -> HashSet<usize> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2714 |     fn determine_bond_wedge_state(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6364 |     fn line_endpoint_idx(&self, line: &DrawLine, atom_idx: usize) -> Option<usize> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_text_drawer` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:6767:4
[INFO] [stdout]      |
[INFO] [stdout] 6767 | fn init_text_drawer(out: &mut String) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_molecule_metadata` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:6775:4
[INFO] [stdout]      |
[INFO] [stdout] 6775 | fn add_molecule_metadata(out: &mut String, mol: &Molecule, width: u32, height: u32) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tag_atoms` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:6786:4
[INFO] [stdout]      |
[INFO] [stdout] 6786 | fn tag_atoms(out: &mut String, atom_labels: &[Option<AtomLabel>]) {
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `output_classes` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:6797:4
[INFO] [stdout]      |
[INFO] [stdout] 6797 | fn output_classes(out: &mut String, class_name: &str) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_wavy_line_svg` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:6889:4
[INFO] [stdout]      |
[INFO] [stdout] 6889 | fn draw_wavy_line_svg(out: &mut String, begin: DVec2, end: DVec2, col: DrawColour, width: f64) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_ellipse_svg` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/properties/draw.rs:6930:4
[INFO] [stdout]      |
[INFO] [stdout] 6930 | fn draw_ellipse_svg(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `OpenBracket` and `CloseBracket` are never constructed
[INFO] [stdout]    --> crates/cosmolkit-core/src/search/smarts_parse.rs:314:5
[INFO] [stdout]     |
[INFO] [stdout] 300 | enum Token {
[INFO] [stdout]     |      ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 314 |     OpenBracket,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 315 |     /// Close square bracket
[INFO] [stdout] 316 |     CloseBracket,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Token` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]    --> crates/cosmolkit-core/src/search/smarts_parse.rs:532:5
[INFO] [stdout]     |
[INFO] [stdout] 530 | struct SmartsParser<'a> {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] 531 |     tokens: &'a [(Token, usize)],
[INFO] [stdout] 532 |     input: &'a str,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vf2_match` is never used
[INFO] [stdout]     --> crates/cosmolkit-core/src/search/substruct.rs:1267:4
[INFO] [stdout]      |
[INFO] [stdout] 1267 | fn vf2_match(
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/atropisomer.rs:943:9
[INFO] [stdout]     |
[INFO] [stdout] 943 |         builder.add_bond(BondSpec::new(c1, c2, BondOrder::Aromatic));
[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] 943 |         let _ = builder.add_bond(BondSpec::new(c1, c2, BondOrder::Aromatic));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/atropisomer.rs:944:9
[INFO] [stdout]     |
[INFO] [stdout] 944 |         builder.add_bond(BondSpec::new(c2, c3, BondOrder::Aromatic));
[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] 944 |         let _ = builder.add_bond(BondSpec::new(c2, c3, BondOrder::Aromatic));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/atropisomer.rs:945:9
[INFO] [stdout]     |
[INFO] [stdout] 945 |         builder.add_bond(BondSpec::new(c3, c4, BondOrder::Aromatic));
[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] 945 |         let _ = builder.add_bond(BondSpec::new(c3, c4, BondOrder::Aromatic));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/atropisomer.rs:946:9
[INFO] [stdout]     |
[INFO] [stdout] 946 |         builder.add_bond(BondSpec::new(c4, c5, BondOrder::Aromatic));
[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] 946 |         let _ = builder.add_bond(BondSpec::new(c4, c5, BondOrder::Aromatic));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/atropisomer.rs:947:9
[INFO] [stdout]     |
[INFO] [stdout] 947 |         builder.add_bond(BondSpec::new(c5, c6, BondOrder::Aromatic));
[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] 947 |         let _ = builder.add_bond(BondSpec::new(c5, c6, BondOrder::Aromatic));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/atropisomer.rs:948:9
[INFO] [stdout]     |
[INFO] [stdout] 948 |         builder.add_bond(BondSpec::new(c6, c1, BondOrder::Aromatic));
[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] 948 |         let _ = builder.add_bond(BondSpec::new(c6, c1, BondOrder::Aromatic));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/atropisomer.rs:951:9
[INFO] [stdout]     |
[INFO] [stdout] 951 |         builder.add_bond(BondSpec::new(c7, c8, BondOrder::Aromatic));
[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] 951 |         let _ = builder.add_bond(BondSpec::new(c7, c8, BondOrder::Aromatic));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/atropisomer.rs:952:9
[INFO] [stdout]     |
[INFO] [stdout] 952 |         builder.add_bond(BondSpec::new(c8, c9, BondOrder::Aromatic));
[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] 952 |         let _ = builder.add_bond(BondSpec::new(c8, c9, BondOrder::Aromatic));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/atropisomer.rs:953:9
[INFO] [stdout]     |
[INFO] [stdout] 953 |         builder.add_bond(BondSpec::new(c9, c10, BondOrder::Aromatic));
[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] 953 |         let _ = builder.add_bond(BondSpec::new(c9, c10, BondOrder::Aromatic));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/atropisomer.rs:954:9
[INFO] [stdout]     |
[INFO] [stdout] 954 |         builder.add_bond(BondSpec::new(c10, c11, BondOrder::Aromatic));
[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] 954 |         let _ = builder.add_bond(BondSpec::new(c10, c11, BondOrder::Aromatic));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/atropisomer.rs:955:9
[INFO] [stdout]     |
[INFO] [stdout] 955 |         builder.add_bond(BondSpec::new(c11, c12, BondOrder::Aromatic));
[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] 955 |         let _ = builder.add_bond(BondSpec::new(c11, c12, BondOrder::Aromatic));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/atropisomer.rs:956:9
[INFO] [stdout]     |
[INFO] [stdout] 956 |         builder.add_bond(BondSpec::new(c12, c7, BondOrder::Aromatic));
[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] 956 |         let _ = builder.add_bond(BondSpec::new(c12, c7, BondOrder::Aromatic));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> crates/cosmolkit-core/src/chemistry/atropisomer.rs:959:9
[INFO] [stdout]     |
[INFO] [stdout] 959 |         builder.add_bond(BondSpec::new(c1, c7, BondOrder::Single));
[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] 959 |         let _ = builder.add_bond(BondSpec::new(c1, c7, BondOrder::Single));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `AtomId_usize` should have a snake case name
[INFO] [stdout]    --> crates/cosmolkit-core/src/notation/fragment.rs:297:4
[INFO] [stdout]     |
[INFO] [stdout] 297 | fn AtomId_usize(index: usize) -> crate::AtomId {
[INFO] [stdout]     |    ^^^^^^^^^^^^ help: convert the identifier to snake case: `atom_id_usize`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.49s
[INFO] running `Command { std: "docker" "inspect" "b028023538d5dfb1c3b57abea3deac0fb95727ddbb96d5c12ef3aa6475cfc628", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b028023538d5dfb1c3b57abea3deac0fb95727ddbb96d5c12ef3aa6475cfc628", kill_on_drop: false }`
[INFO] [stdout] b028023538d5dfb1c3b57abea3deac0fb95727ddbb96d5c12ef3aa6475cfc628
