[INFO] fetching crate rumtk-hl7-v2 0.9.0... [INFO] linting rumtk-hl7-v2-0.9.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate rumtk-hl7-v2 0.9.0 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate rumtk-hl7-v2 0.9.0 [INFO] finished tweaking crates.io crate rumtk-hl7-v2 0.9.0 [INFO] tweaked toml for crates.io crate rumtk-hl7-v2 0.9.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate rumtk-hl7-v2 0.9.0 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate rumtk-hl7-v2 0.9.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded pyo3-macros v0.27.1 [INFO] [stderr] Downloaded uuid-macro-internal v1.19.0 [INFO] [stderr] Downloaded bitflags v2.7.0 [INFO] [stderr] Downloaded nanoid v0.4.0 [INFO] [stderr] Downloaded pyo3-ffi v0.27.1 [INFO] [stderr] Downloaded pyo3-build-config v0.27.1 [INFO] [stderr] Downloaded rumtk-core v0.12.0 [INFO] [stderr] Downloaded cc v1.2.7 [INFO] [stderr] Downloaded pyo3-macros-backend v0.27.1 [INFO] [stderr] Downloaded pyo3 v0.27.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 11086d4268310a251086eb53c54ab3a864d948ee9ae967ad1e3bdf74aaa813da [INFO] running `Command { std: "docker" "start" "-a" "11086d4268310a251086eb53c54ab3a864d948ee9ae967ad1e3bdf74aaa813da", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "11086d4268310a251086eb53c54ab3a864d948ee9ae967ad1e3bdf74aaa813da", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "11086d4268310a251086eb53c54ab3a864d948ee9ae967ad1e3bdf74aaa813da", kill_on_drop: false }` [INFO] [stdout] 11086d4268310a251086eb53c54ab3a864d948ee9ae967ad1e3bdf74aaa813da [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] edbe0d1d9acfe571972a6c40976e0bb47f85ed03d910c35d62a6b1961aa0ccf3 [INFO] running `Command { std: "docker" "start" "-a" "edbe0d1d9acfe571972a6c40976e0bb47f85ed03d910c35d62a6b1961aa0ccf3", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.103 [INFO] [stderr] Compiling target-lexicon v0.13.2 [INFO] [stderr] Compiling rustversion v1.0.19 [INFO] [stderr] Compiling memoffset v0.9.1 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling zerocopy v0.8.25 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Compiling phf_shared v0.13.1 [INFO] [stderr] Checking clap_builder v4.5.54 [INFO] [stderr] Checking mio v1.0.3 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking unindent v0.2.4 [INFO] [stderr] Compiling indoc v2.0.6 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_core v0.9.5 [INFO] [stderr] Compiling phf_generator v0.13.1 [INFO] [stderr] Checking chardetng v0.1.17 [INFO] [stderr] Checking serde_json v1.0.145 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking iana-time-zone v0.1.61 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking phf v0.13.1 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Compiling quote v1.0.38 [INFO] [stderr] Checking castaway v0.2.3 [INFO] [stderr] Compiling syn v2.0.96 [INFO] [stderr] Compiling pyo3-build-config v0.27.1 [INFO] [stderr] Checking chrono v0.4.39 [INFO] [stderr] Compiling pyo3-ffi v0.27.1 [INFO] [stderr] Compiling pyo3-macros-backend v0.27.1 [INFO] [stderr] Compiling pyo3 v0.27.1 [INFO] [stderr] Checking regex-automata v0.4.13 [INFO] [stderr] Checking regex v1.12.2 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling clap_derive v4.5.49 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling uuid-macro-internal v1.19.0 [INFO] [stderr] Compiling phf_macros v0.13.1 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking tokio v1.49.0 [INFO] [stderr] Checking clap v4.5.54 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking uuid v1.19.0 [INFO] [stderr] Checking nanoid v0.4.0 [INFO] [stderr] Checking compact_str v0.9.0 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Compiling pyo3-macros v0.27.1 [INFO] [stderr] Checking rumtk-core v0.12.0 [INFO] [stderr] Checking rumtk-hl7-v2 v0.9.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `ToCompactString` [INFO] [stdout] --> src/hl7_v2_base_types.rs:798:56 [INFO] [stdout] | [INFO] [stdout] 798 | rumtk_format, AsStr, CompactString, RUMString, ToCompactString, UTFStringExtensions, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `V2_SEARCH_EXPR_TYPE` should have an upper camel case name [INFO] [stdout] --> src/hl7_v2_constants.rs:743:10 [INFO] [stdout] | [INFO] [stdout] 743 | pub enum V2_SEARCH_EXPR_TYPE { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `V2SearchExprType` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `V2_DEFAULT` should have an upper camel case name [INFO] [stdout] --> src/hl7_v2_constants.rs:744:5 [INFO] [stdout] | [INFO] [stdout] 744 | V2_DEFAULT, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `V2Default` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item has both inner and outer attributes [INFO] [stdout] --> src/hl7_v2_mllp.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / /// [INFO] [stdout] 23 | | /// # Release 2 of the Minimal Lower Layer Message Transport protocol (MLLP, a.k.a. MLP) [INFO] [stdout] 24 | | /// [INFO] [stdout] 25 | | /// # Ch. 1 [INFO] [stdout] ... | [INFO] [stdout] 190 | | //! [INFO] [stdout] 191 | | //! ``` [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mixed_attributes_style [INFO] [stdout] = note: `#[warn(clippy::mixed_attributes_style)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | //! src/hl7_v2_mllp.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 153 | //! xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 155 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | //! V3ED2005 [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 157 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | //! . . . [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | //! . . . [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 172 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | //! src/hl7_v2_mllp.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | //! Good Health Clinic Consultation Note [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 176 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:177:9 [INFO] [stdout] | [INFO] [stdout] 177 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | //! . . . [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:180:9 [INFO] [stdout] | [INFO] [stdout] 180 | //! . . . [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:180:15 [INFO] [stdout] | [INFO] [stdout] 180 | //! . . . [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ToCompactString` [INFO] [stdout] --> src/hl7_v2_mllp.rs:205:31 [INFO] [stdout] | [INFO] [stdout] 205 | RUMStringConversions, ToCompactString, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `rumtk_create_task` and `rumtk_resolve_task` [INFO] [stdout] --> src/hl7_v2_mllp.rs:209:41 [INFO] [stdout] | [INFO] [stdout] 209 | use rumtk_core::{rumtk_async_sleep, rumtk_create_task, rumtk_exec_task, rumtk_resolve_task}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `MLLP_FILTER_POLICY` should have an upper camel case name [INFO] [stdout] --> src/hl7_v2_mllp.rs:444:14 [INFO] [stdout] | [INFO] [stdout] 444 | pub enum MLLP_FILTER_POLICY { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `MllpFilterPolicy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `ESCAPE_INPUT` should have an upper camel case name [INFO] [stdout] --> src/hl7_v2_mllp.rs:455:9 [INFO] [stdout] | [INFO] [stdout] 455 | ESCAPE_INPUT = 1, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `EscapeInput` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `FILTER_INPUT` should have an upper camel case name [INFO] [stdout] --> src/hl7_v2_mllp.rs:459:9 [INFO] [stdout] | [INFO] [stdout] 459 | FILTER_INPUT = 2, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FilterInput` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ToCompactString` [INFO] [stdout] --> src/hl7_v2_base_types.rs:798:56 [INFO] [stdout] | [INFO] [stdout] 798 | rumtk_format, AsStr, CompactString, RUMString, ToCompactString, UTFStringExtensions, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/hl7_v2_parser.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | / /// [INFO] [stdout] 35 | | [INFO] [stdout] | |_^ [INFO] [stdout] 36 | pub mod v2_parser { [INFO] [stdout] | ----------------- the comment documents this module [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 22 ~ //! [INFO] [stdout] 23 ~ //! The V2 Parser module will contain a simple and lightweight message parser that will generate a [INFO] [stdout] 24 ~ //! structure following the message structure in the HL7 Specifications. [INFO] [stdout] 25 ~ //! The V2Message type here will provide a basic interface for navigating through the mapped [INFO] [stdout] 26 ~ //! segments and fields. [INFO] [stdout] 27 ~ //! From here, we will then write a schema driven interpreter module (see other source files in [INFO] [stdout] 28 ~ //! crate). That interpreter will try to generate a message structure using the specified HL7 [INFO] [stdout] 29 ~ //! types. That structure will be exportable to JSON and (maybe) XML. [INFO] [stdout] 30 ~ //! [INFO] [stdout] 31 ~ //! [Conformance](https://v2.hl7.org/conformance/HL7v2_Conformance_Methodology_R1_O1_Ballot_Revised_D9_-_September_2019_Introduction.html#:~:text=The%20base%20HL7%20v2%20standard,message%20definition%20is%20called%20profiling.) [INFO] [stdout] 32 ~ //! [INFO] [stdout] 33 ~ //! [Product Brief](https://www.hl7.org/implement/standards/product_brief.cfm?product_id=185) [INFO] [stdout] 34 ~ //! [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `get_or_set_from_cache` [INFO] [stdout] --> src/hl7_v2_parser.rs:47:29 [INFO] [stdout] | [INFO] [stdout] 47 | use rumtk_core::cache::{get_or_set_from_cache, new_cache, LazyRUMCache}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RUMDeserializer` and `RUMSerializer` [INFO] [stdout] --> src/hl7_v2_parser.rs:56:45 [INFO] [stdout] | [INFO] [stdout] 56 | use rumtk_core::types::{RUMDeserialize, RUMDeserializer, RUMSerialize, RUMSerializer}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `V2_SEARCH_EXPR_TYPE` should have an upper camel case name [INFO] [stdout] --> src/hl7_v2_constants.rs:743:10 [INFO] [stdout] | [INFO] [stdout] 743 | pub enum V2_SEARCH_EXPR_TYPE { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `V2SearchExprType` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `V2_DEFAULT` should have an upper camel case name [INFO] [stdout] --> src/hl7_v2_constants.rs:744:5 [INFO] [stdout] | [INFO] [stdout] 744 | V2_DEFAULT, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `V2Default` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `rumtk_create_task` and `rumtk_resolve_task` [INFO] [stdout] --> src/lib.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | rumtk_create_task, rumtk_deserialize, rumtk_exec_task, rumtk_resolve_task, rumtk_serialize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: item has both inner and outer attributes [INFO] [stdout] --> src/hl7_v2_mllp.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / /// [INFO] [stdout] 23 | | /// # Release 2 of the Minimal Lower Layer Message Transport protocol (MLLP, a.k.a. MLP) [INFO] [stdout] 24 | | /// [INFO] [stdout] 25 | | /// # Ch. 1 [INFO] [stdout] ... | [INFO] [stdout] 190 | | //! [INFO] [stdout] 191 | | //! ``` [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mixed_attributes_style [INFO] [stdout] = note: `#[warn(clippy::mixed_attributes_style)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | //! src/hl7_v2_mllp.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 153 | //! xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 155 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | //! V3ED2005 [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 157 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | //! . . . [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | //! . . . [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:430:23 [INFO] [stdout] | [INFO] [stdout] 430 | let message = rumtk_v2_parse_message!(&DEFAULT_HL7_V2_MESSAGE).unwrap(); [INFO] [stdout] | ------------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:432:33 [INFO] [stdout] | [INFO] [stdout] 432 | let generated_message = rumtk_v2_parse_message!(&generated_message_string).unwrap(); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 172 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | //! src/hl7_v2_mllp.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | //! Good Health Clinic Consultation Note [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 176 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:177:9 [INFO] [stdout] | [INFO] [stdout] 177 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | //! [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | //! . . . [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:180:9 [INFO] [stdout] | [INFO] [stdout] 180 | //! . . . [INFO] [stdout] | ^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/hl7_v2_mllp.rs:180:15 [INFO] [stdout] | [INFO] [stdout] 180 | //! . . . [INFO] [stdout] | ^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `rumtk_create_task` and `rumtk_resolve_task` [INFO] [stdout] --> src/hl7_v2_mllp.rs:209:41 [INFO] [stdout] | [INFO] [stdout] 209 | use rumtk_core::{rumtk_async_sleep, rumtk_create_task, rumtk_exec_task, rumtk_resolve_task}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `MLLP_FILTER_POLICY` should have an upper camel case name [INFO] [stdout] --> src/hl7_v2_mllp.rs:444:14 [INFO] [stdout] | [INFO] [stdout] 444 | pub enum MLLP_FILTER_POLICY { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `MllpFilterPolicy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `ESCAPE_INPUT` should have an upper camel case name [INFO] [stdout] --> src/hl7_v2_mllp.rs:455:9 [INFO] [stdout] | [INFO] [stdout] 455 | ESCAPE_INPUT = 1, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `EscapeInput` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `FILTER_INPUT` should have an upper camel case name [INFO] [stdout] --> src/hl7_v2_mllp.rs:459:9 [INFO] [stdout] | [INFO] [stdout] 459 | FILTER_INPUT = 2, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FilterInput` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:442:23 [INFO] [stdout] | [INFO] [stdout] 442 | let message = rumtk_v2_parse_message!(&HL7_V2_MESSAGE).unwrap(); [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:444:33 [INFO] [stdout] | [INFO] [stdout] 444 | let generated_message = rumtk_v2_parse_message!(&generated_message_string).unwrap(); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:454:23 [INFO] [stdout] | [INFO] [stdout] 454 | let message = rumtk_v2_parse_message!(&HL7_V2_PDF_MESSAGE).unwrap(); [INFO] [stdout] | -------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:456:33 [INFO] [stdout] | [INFO] [stdout] 456 | let generated_message = rumtk_v2_parse_message!(&generated_message_string).unwrap(); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:466:23 [INFO] [stdout] | [INFO] [stdout] 466 | let message = rumtk_v2_parse_message!(&HL7_V2_REPEATING_FIELD_MESSAGE).unwrap(); [INFO] [stdout] | -------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:468:33 [INFO] [stdout] | [INFO] [stdout] 468 | let generated_message = rumtk_v2_parse_message!(&generated_message_string).unwrap(); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:532:23 [INFO] [stdout] | [INFO] [stdout] 532 | let message = rumtk_v2_parse_message!(DEFAULT_HL7_V2_MESSAGE).unwrap(); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:562:15 [INFO] [stdout] | [INFO] [stdout] 562 | match rumtk_v2_parse_message!(input) { [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:574:23 [INFO] [stdout] | [INFO] [stdout] 574 | let message = rumtk_v2_parse_message!(DEFAULT_HL7_V2_MESSAGE).unwrap(); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `V2Component` and `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:794:52 [INFO] [stdout] | [INFO] [stdout] 794 | use $crate::hl7_v2_parser::v2_parser::{V2Component, V2Result}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:575:25 [INFO] [stdout] | [INFO] [stdout] 575 | let component = rumtk_v2_find_component!(message, pattern).unwrap(); [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_find_component` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:590:23 [INFO] [stdout] | [INFO] [stdout] 590 | let message = rumtk_v2_parse_message!(DEFAULT_HL7_V2_MESSAGE).unwrap(); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `V2Component` and `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:794:52 [INFO] [stdout] | [INFO] [stdout] 794 | use $crate::hl7_v2_parser::v2_parser::{V2Component, V2Result}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:591:25 [INFO] [stdout] | [INFO] [stdout] 591 | let component = rumtk_v2_find_component!(message, pattern).unwrap(); [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_find_component` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:606:23 [INFO] [stdout] | [INFO] [stdout] 606 | let message = rumtk_v2_parse_message!(HL7_V2_MSH_ONLY).unwrap(); [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `V2Component` and `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:794:52 [INFO] [stdout] | [INFO] [stdout] 794 | use $crate::hl7_v2_parser::v2_parser::{V2Component, V2Result}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:607:25 [INFO] [stdout] | [INFO] [stdout] 607 | let component = rumtk_v2_find_component!(message, pattern).unwrap(); [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_find_component` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:626:23 [INFO] [stdout] | [INFO] [stdout] 626 | let message = rumtk_v2_parse_message!(DEFAULT_HL7_V2_MESSAGE).unwrap(); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `V2Component` and `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:794:52 [INFO] [stdout] | [INFO] [stdout] 794 | use $crate::hl7_v2_parser::v2_parser::{V2Component, V2Result}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:627:15 [INFO] [stdout] | [INFO] [stdout] 627 | match rumtk_v2_find_component!(message, pattern) { [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_find_component` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:696:23 [INFO] [stdout] | [INFO] [stdout] 696 | let message = rumtk_v2_parse_message!(DEFAULT_HL7_V2_MESSAGE).unwrap(); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `V2Component` and `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:794:52 [INFO] [stdout] | [INFO] [stdout] 794 | use $crate::hl7_v2_parser::v2_parser::{V2Component, V2Result}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:697:25 [INFO] [stdout] | [INFO] [stdout] 697 | let component = rumtk_v2_find_component!(message, location).unwrap(); [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_find_component` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:759:23 [INFO] [stdout] | [INFO] [stdout] 759 | let message = rumtk_v2_parse_message!(VXU_HL7_V2_MESSAGE).unwrap(); [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `V2Component` and `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:794:52 [INFO] [stdout] | [INFO] [stdout] 794 | use $crate::hl7_v2_parser::v2_parser::{V2Component, V2Result}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:760:25 [INFO] [stdout] | [INFO] [stdout] 760 | let component = rumtk_v2_find_component!(message, location).unwrap(); [INFO] [stdout] | ------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_find_component` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/hl7_v2_parser.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | / /// [INFO] [stdout] 35 | | [INFO] [stdout] | |_^ [INFO] [stdout] 36 | pub mod v2_parser { [INFO] [stdout] | ----------------- the comment documents this module [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 22 ~ //! [INFO] [stdout] 23 ~ //! The V2 Parser module will contain a simple and lightweight message parser that will generate a [INFO] [stdout] 24 ~ //! structure following the message structure in the HL7 Specifications. [INFO] [stdout] 25 ~ //! The V2Message type here will provide a basic interface for navigating through the mapped [INFO] [stdout] 26 ~ //! segments and fields. [INFO] [stdout] 27 ~ //! From here, we will then write a schema driven interpreter module (see other source files in [INFO] [stdout] 28 ~ //! crate). That interpreter will try to generate a message structure using the specified HL7 [INFO] [stdout] 29 ~ //! types. That structure will be exportable to JSON and (maybe) XML. [INFO] [stdout] 30 ~ //! [INFO] [stdout] 31 ~ //! [Conformance](https://v2.hl7.org/conformance/HL7v2_Conformance_Methodology_R1_O1_Ballot_Revised_D9_-_September_2019_Introduction.html#:~:text=The%20base%20HL7%20v2%20standard,message%20definition%20is%20called%20profiling.) [INFO] [stdout] 32 ~ //! [INFO] [stdout] 33 ~ //! [Product Brief](https://www.hl7.org/implement/standards/product_brief.cfm?product_id=185) [INFO] [stdout] 34 ~ //! [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `get_or_set_from_cache` [INFO] [stdout] --> src/hl7_v2_parser.rs:47:29 [INFO] [stdout] | [INFO] [stdout] 47 | use rumtk_core::cache::{get_or_set_from_cache, new_cache, LazyRUMCache}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RUMDeserializer` and `RUMSerializer` [INFO] [stdout] --> src/hl7_v2_parser.rs:56:45 [INFO] [stdout] | [INFO] [stdout] 56 | use rumtk_core::types::{RUMDeserialize, RUMDeserializer, RUMSerialize, RUMSerializer}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:1319:23 [INFO] [stdout] | [INFO] [stdout] 1319 | let message = rumtk_v2_parse_message!(V2_JSON_MESSAGE).unwrap(); [INFO] [stdout] | ---------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:1332:23 [INFO] [stdout] | [INFO] [stdout] 1332 | let message = rumtk_v2_parse_message!(DEFAULT_HL7_V2_MESSAGE).unwrap(); [INFO] [stdout] | ----------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:1344:43 [INFO] [stdout] | [INFO] [stdout] 1344 | let expected_message: V2Message = rumtk_v2_parse_message!(V2_JSON_MESSAGE_BASIC).unwrap(); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `V2Result` [INFO] [stdout] --> src/hl7_v2_parser.rs:761:63 [INFO] [stdout] | [INFO] [stdout] 761 | use $crate::hl7_v2_parser::v2_parser::{V2Message, V2Result}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:1358:15 [INFO] [stdout] | [INFO] [stdout] 1358 | match rumtk_v2_parse_message!(&input) { [INFO] [stdout] | ------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `rumtk_v2_parse_message` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:72:49 [INFO] [stdout] | [INFO] [stdout] 72 | const CONDITION_NOOP: V2ComponentConditionFn = |c: &V2ComponentList| false; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:72:49 [INFO] [stdout] | [INFO] [stdout] 72 | const CONDITION_NOOP: V2ComponentConditionFn = |c: &V2ComponentList| false; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ToCompactString` [INFO] [stdout] --> src/hl7_v2_mllp.rs:205:31 [INFO] [stdout] | [INFO] [stdout] 205 | RUMStringConversions, ToCompactString, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> src/hl7_v2_base_types.rs:215:22 [INFO] [stdout] | [INFO] [stdout] 215 | fn expr_type(expr: &str) -> V2_SEARCH_EXPR_TYPE { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `why` [INFO] [stdout] --> src/hl7_v2_base_types.rs:884:21 [INFO] [stdout] | [INFO] [stdout] 884 | Err(why) => Err(rumtk_format!( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_why` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `why` [INFO] [stdout] --> src/hl7_v2_base_types.rs:900:21 [INFO] [stdout] | [INFO] [stdout] 900 | Err(why) => Err(rumtk_format!( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_why` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/hl7_v2_mllp.rs:541:17 [INFO] [stdout] | [INFO] [stdout] 541 | for i in 0..RETRY_SOURCE { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/hl7_v2_mllp.rs:572:17 [INFO] [stdout] | [INFO] [stdout] 572 | for i in 0..TIMEOUT_SOURCE { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/hl7_v2_mllp.rs:678:17 [INFO] [stdout] | [INFO] [stdout] 678 | for i in 0..timeout { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> src/hl7_v2_base_types.rs:215:22 [INFO] [stdout] | [INFO] [stdout] 215 | fn expr_type(expr: &str) -> V2_SEARCH_EXPR_TYPE { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hl7_v2_parser.rs:250:17 [INFO] [stdout] | [INFO] [stdout] 250 | let mut component_list: ComponentList = vec![V2Component::from_str(val)]; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `why` [INFO] [stdout] --> src/hl7_v2_base_types.rs:884:21 [INFO] [stdout] | [INFO] [stdout] 884 | Err(why) => Err(rumtk_format!( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_why` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `why` [INFO] [stdout] --> src/hl7_v2_base_types.rs:900:21 [INFO] [stdout] | [INFO] [stdout] 900 | Err(why) => Err(rumtk_format!( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_why` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hl7_v2_parser.rs:566:17 [INFO] [stdout] | [INFO] [stdout] 566 | let mut field = match segment.get_mut(index.field as isize)?.get_mut((index.field_group - 1) as usize) { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `MLLPMessageResult` is never used [INFO] [stdout] --> src/hl7_v2_mllp.rs:215:10 [INFO] [stdout] | [INFO] [stdout] 215 | type MLLPMessageResult = RUMResult; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `MLLPClientMessageQueue` is never used [INFO] [stdout] --> src/hl7_v2_mllp.rs:216:10 [INFO] [stdout] | [INFO] [stdout] 216 | type MLLPClientMessageQueue = RUMNetClientMessageQueue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `MLLPMessageQueue` is never used [INFO] [stdout] --> src/hl7_v2_mllp.rs:217:10 [INFO] [stdout] | [INFO] [stdout] 217 | type MLLPMessageQueue = RUMNetMessageQueue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/hl7_v2_mllp.rs:541:17 [INFO] [stdout] | [INFO] [stdout] 541 | for i in 0..RETRY_SOURCE { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `SafeClientIDList` is never used [INFO] [stdout] --> src/hl7_v2_mllp.rs:464:10 [INFO] [stdout] | [INFO] [stdout] 464 | type SafeClientIDList = Arc>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hl7_v2_parser.rs:104:12 [INFO] [stdout] | [INFO] [stdout] 103 | impl V2Component { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 104 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXPECTED_PROCESSOR_FUNCTION_NAME` is never used [INFO] [stdout] --> src/hl7_v2_scripting.rs:31:11 [INFO] [stdout] | [INFO] [stdout] 31 | const EXPECTED_PROCESSOR_FUNCTION_NAME: &str = "process"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_message` is never used [INFO] [stdout] --> src/hl7_v2_scripting.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn process_message(module_path: &RUMString, message: &V2Message) -> RUMResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/hl7_v2_mllp.rs:572:17 [INFO] [stdout] | [INFO] [stdout] 572 | for i in 0..TIMEOUT_SOURCE { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/hl7_v2_mllp.rs:678:17 [INFO] [stdout] | [INFO] [stdout] 678 | for i in 0..timeout { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/hl7_v2_base_types.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | / pub fn from_str(msh_segment: &str) -> V2Result { [INFO] [stdout] 83 | | let sanitized_msh_segment = Self::sanitize_parse_chars(msh_segment); [INFO] [stdout] 84 | | let msg_key_chars = Self::isolate_parse_chars(&sanitized_msh_segment); [INFO] [stdout] 85 | | let key_chars = Self::validate_msh_key_chars(&msg_key_chars)?; [INFO] [stdout] ... | [INFO] [stdout] 109 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `V2DateTime` [INFO] [stdout] --> src/hl7_v2_base_types.rs:439:9 [INFO] [stdout] | [INFO] [stdout] 439 | / pub fn new() -> V2DateTime { [INFO] [stdout] 440 | | V2DateTime { [INFO] [stdout] 441 | | year: 1970, [INFO] [stdout] 442 | | month: 1, [INFO] [stdout] ... | [INFO] [stdout] 450 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 438 ~ impl Default for V2DateTime { [INFO] [stdout] 439 + fn default() -> Self { [INFO] [stdout] 440 + Self::new() [INFO] [stdout] 441 + } [INFO] [stdout] 442 + } [INFO] [stdout] 443 + [INFO] [stdout] 444 ~ impl V2DateTime { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/hl7_v2_base_types.rs:451:9 [INFO] [stdout] | [INFO] [stdout] 451 | / pub fn default() -> V2DateTime { [INFO] [stdout] 452 | | V2DateTime::new() [INFO] [stdout] 453 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/hl7_v2_base_types.rs:492:9 [INFO] [stdout] | [INFO] [stdout] 492 | / pub fn from_str(item: &str) -> V2DateTime { [INFO] [stdout] 493 | | let offset = string_search(item, REGEX_DT_TIMEZONE, ""); [INFO] [stdout] 494 | | let time_part = item.replace(&offset.as_str(), ""); [INFO] [stdout] 495 | | let dt_vec: Vec<&str> = time_part.split('.').collect(); [INFO] [stdout] ... | [INFO] [stdout] 535 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/hl7_v2_base_types.rs:494:42 [INFO] [stdout] | [INFO] [stdout] 494 | let time_part = item.replace(&offset.as_str(), ""); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `offset.as_str()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_base_types.rs:821:12 [INFO] [stdout] | [INFO] [stdout] 821 | if r.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!r.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_base_types.rs:911:16 [INFO] [stdout] | [INFO] [stdout] 911 | if validated.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `validated.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/hl7_v2_complex_types.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / pub mod hl7_v2_complex_types { [INFO] [stdout] 23 | | use crate::hl7_v2_base_types::v2_primitives::*; [INFO] [stdout] 24 | | use crate::hl7_v2_field_descriptors::v2_field_descriptor::*; [INFO] [stdout] 25 | | use rumtk_core::strings::rumtk_format; [INFO] [stdout] ... | [INFO] [stdout] 101 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_complex_types.rs:59:56 [INFO] [stdout] | [INFO] [stdout] 59 | if component_type.optionality.is_required() && component.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `component.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be replaced by its body itself [INFO] [stdout] --> src/hl7_v2_complex_types.rs:96:50 [INFO] [stdout] | [INFO] [stdout] 96 | V2ComponentType::Complex(complex) => match complex { [INFO] [stdout] | __________________________________________________^ [INFO] [stdout] 97 | | _ => V2Type::Err(rumtk_format!("Unknown requested type!")), [INFO] [stdout] 98 | | }, [INFO] [stdout] | |_____________^ help: consider using the match body instead: `V2Type::Err(rumtk_format!("Unknown requested type!"))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty doc comment [INFO] [stdout] --> src/hl7_v2_field_descriptors.rs:880:9 [INFO] [stdout] | [INFO] [stdout] 880 | / /// [INFO] [stdout] 881 | | /// [INFO] [stdout] 882 | | /// [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing or filling it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_docs [INFO] [stdout] = note: `#[warn(clippy::empty_docs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/hl7_v2_field_descriptors.rs:910:9 [INFO] [stdout] | [INFO] [stdout] 910 | / pub const fn new( [INFO] [stdout] 911 | | name: &'static str, [INFO] [stdout] 912 | | description: &'static str, [INFO] [stdout] 913 | | data_type: V2ComponentType, [INFO] [stdout] ... | [INFO] [stdout] 918 | | truncate: bool, [INFO] [stdout] 919 | | ) -> V2ComponentTypeDescriptor { [INFO] [stdout] | |______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_field_descriptors.rs:943:9 [INFO] [stdout] | [INFO] [stdout] 943 | /// target when casting the field [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_field_descriptors.rs:947:9 [INFO] [stdout] | [INFO] [stdout] 947 | /// but may be changed to an enumerator in the future. [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_field_descriptors.rs:949:9 [INFO] [stdout] | [INFO] [stdout] 949 | /// emit error. If a field is flagged as conditional, we expect an Option passed to be passed [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_field_descriptors.rs:950:9 [INFO] [stdout] | [INFO] [stdout] 950 | /// with None or a tuple of conditions. [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hl7_v2_parser.rs:250:17 [INFO] [stdout] | [INFO] [stdout] 250 | let mut component_list: ComponentList = vec![V2Component::from_str(val)]; [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: length comparison to zero [INFO] [stdout] --> src/hl7_v2_mllp.rs:287:12 [INFO] [stdout] | [INFO] [stdout] 287 | if message.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `message.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:318:27 [INFO] [stdout] | [INFO] [stdout] 318 | Ok(try_decode(&contents)) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `contents` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_mllp.rs:327:9 [INFO] [stdout] | [INFO] [stdout] 327 | /// printable range of ASCII. [INFO] [stdout] | ^^^^^ help: try using ` ` (4 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:373:49 [INFO] [stdout] | [INFO] [stdout] 373 | let server = RUMServer::new(&ip, port).await?; [INFO] [stdout] | ^^^ help: change this to: `ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:378:53 [INFO] [stdout] | [INFO] [stdout] 378 | let client = RUMClient::connect(&ip, port).await?; [INFO] [stdout] | ^^^ help: change this to: `ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:392:47 [INFO] [stdout] | [INFO] [stdout] 392 | server.write().await.send(&client_id, message).await?; [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `client_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:395:81 [INFO] [stdout] | [INFO] [stdout] 395 | LowerLayer::CLIENT(ref mut client) => client.write().await.send(&message).await, [INFO] [stdout] | ^^^^^^^^ help: change this to: `message` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_mllp.rs:566:13 [INFO] [stdout] | [INFO] [stdout] 566 | /// there was a response but the target had issues processing it. [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_mllp.rs:568:13 [INFO] [stdout] | [INFO] [stdout] 568 | /// [TIMEOUT_SOURCE](TIMEOUT_SOURCE) times. Upon meeting this overall timeout, error out with message [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_mllp.rs:569:13 [INFO] [stdout] | [INFO] [stdout] 569 | /// explaining we reached the timeout. [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/hl7_v2_mllp.rs:574:17 [INFO] [stdout] | [INFO] [stdout] 574 | / match responses.get(0) { [INFO] [stdout] 575 | | Some(response) => { [INFO] [stdout] 576 | | let acked = is_ack(response); [INFO] [stdout] 577 | | if acked { [INFO] [stdout] ... | [INFO] [stdout] 588 | | None => {} [INFO] [stdout] 589 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 574 ~ if let Some(response) = responses.get(0) { [INFO] [stdout] 575 + let acked = is_ack(response); [INFO] [stdout] 576 + if acked { [INFO] [stdout] 577 + return Ok(true); [INFO] [stdout] 578 + } [INFO] [stdout] 579 + [INFO] [stdout] 580 + if is_nack(&response) { [INFO] [stdout] 581 + return Err(rumtk_format!( [INFO] [stdout] 582 + "Endpoint {} responded with a negative acknowledgement. That means they failed to parse or store our message!", [INFO] [stdout] 583 + &endpoint [INFO] [stdout] 584 + )); [INFO] [stdout] 585 + } [INFO] [stdout] 586 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `responses.get(0)` [INFO] [stdout] --> src/hl7_v2_mllp.rs:574:23 [INFO] [stdout] | [INFO] [stdout] 574 | match responses.get(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `responses.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:581:36 [INFO] [stdout] | [INFO] [stdout] 581 | if is_nack(&response) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `response` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_mllp.rs:666:13 [INFO] [stdout] | [INFO] [stdout] 666 | /// Remember, [AsyncMLLP::wait_for_send_ack] loop inside [AsyncMLLP::send_message] [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_mllp.rs:667:13 [INFO] [stdout] | [INFO] [stdout] 667 | /// already polls the transmission queue for the presence of acks. [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_mllp.rs:670:13 [INFO] [stdout] | [INFO] [stdout] 670 | /// with a timeout error message. [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hl7_v2_parser.rs:566:17 [INFO] [stdout] | [INFO] [stdout] 566 | let mut field = match segment.get_mut(index.field as isize)?.get_mut((index.field_group - 1) as usize) { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `owned_args.get(0)` [INFO] [stdout] --> src/hl7_v2_mllp.rs:809:52 [INFO] [stdout] | [INFO] [stdout] 809 | let (channel, message, peer) = owned_args.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `owned_args.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `owned_args.get(0)` [INFO] [stdout] --> src/hl7_v2_mllp.rs:825:37 [INFO] [stdout] | [INFO] [stdout] 825 | let owned_arg = owned_args.get(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `owned_args.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `owned_args.get(0)` [INFO] [stdout] --> src/hl7_v2_mllp.rs:838:37 [INFO] [stdout] | [INFO] [stdout] 838 | let owned_arg = owned_args.get(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `owned_args.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:840:79 [INFO] [stdout] | [INFO] [stdout] 840 | let result = channel.lock().await.receive_client_messages(&peer).await; [INFO] [stdout] | ^^^^^ help: change this to: `peer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `owned_args.get(0)` [INFO] [stdout] --> src/hl7_v2_mllp.rs:851:32 [INFO] [stdout] | [INFO] [stdout] 851 | let mllp = owned_args.get(0).unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `owned_args.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/lib.rs:563:16 [INFO] [stdout] | [INFO] [stdout] 563 | Ok(v) => panic!("{}", err_msg.as_str()), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:938:71 [INFO] [stdout] | [INFO] [stdout] 938 | SafeMLLPChannel::new(SyncMutex::new(MLLPChannel::open(&endpoint, &mllp))); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `endpoint` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/lib.rs:628:16 [INFO] [stdout] | [INFO] [stdout] 628 | Ok(v) => panic!("{}", err_msg.as_str()), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty doc comment [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | / /// [INFO] [stdout] 27 | | /// [INFO] [stdout] 28 | | /// [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing or filling it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_docs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | / match &self { [INFO] [stdout] 52 | | Optionality::R => true, [INFO] [stdout] 53 | | _ => false, [INFO] [stdout] 54 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 51 - match &self { [INFO] [stdout] 52 - Optionality::R => true, [INFO] [stdout] 53 - _ => false, [INFO] [stdout] 54 - } [INFO] [stdout] 51 + matches!(self, Optionality::R) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:64:36 [INFO] [stdout] | [INFO] [stdout] 64 | Optionality::C(f) => f(&field), [INFO] [stdout] | ^^^^^^ help: change this to: `field` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:83:27 [INFO] [stdout] | [INFO] [stdout] 83 | |c: &V2ComponentList| c[0].len() > 0 && !c[13].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[0].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:92:27 [INFO] [stdout] | [INFO] [stdout] 92 | |c: &V2ComponentList| c[3].len() > 0 && !c[16].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[3].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:116:27 [INFO] [stdout] | [INFO] [stdout] 116 | |c: &V2ComponentList| c[0].len() > 0 && !c[2].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[0].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:120:73 [INFO] [stdout] | [INFO] [stdout] 120 | pub const CONDITION_CF6: V2ComponentConditionFn = |c: &V2ComponentList| c[14].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[14].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:126:27 [INFO] [stdout] | [INFO] [stdout] 126 | |c: &V2ComponentList| c[3].len() > 0 && !c[5].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[3].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:130:73 [INFO] [stdout] | [INFO] [stdout] 130 | pub const CONDITION_CF8: V2ComponentConditionFn = |c: &V2ComponentList| c[17].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[17].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:136:27 [INFO] [stdout] | [INFO] [stdout] 136 | |c: &V2ComponentList| c[9].len() > 0 && !c[11].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[9].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:140:74 [INFO] [stdout] | [INFO] [stdout] 140 | pub const CONDITION_CF10: V2ComponentConditionFn = |c: &V2ComponentList| c[20].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[20].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:166:45 [INFO] [stdout] | [INFO] [stdout] 166 | |c: &V2ComponentList| c[0].len() > 0 && !(c[2].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(c[2].len() <= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:166:27 [INFO] [stdout] | [INFO] [stdout] 166 | |c: &V2ComponentList| c[0].len() > 0 && !(c[2].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[0].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:166:47 [INFO] [stdout] | [INFO] [stdout] 166 | |c: &V2ComponentList| c[0].len() > 0 && !(c[2].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[2].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:170:74 [INFO] [stdout] | [INFO] [stdout] 170 | pub const CONDITION_CNE4: V2ComponentConditionFn = |c: &V2ComponentList| c[14].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[14].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:176:45 [INFO] [stdout] | [INFO] [stdout] 176 | |c: &V2ComponentList| c[3].len() > 0 && !(c[5].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(c[5].len() <= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:176:27 [INFO] [stdout] | [INFO] [stdout] 176 | |c: &V2ComponentList| c[3].len() > 0 && !(c[5].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[3].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:176:47 [INFO] [stdout] | [INFO] [stdout] 176 | |c: &V2ComponentList| c[3].len() > 0 && !(c[5].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[5].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:180:74 [INFO] [stdout] | [INFO] [stdout] 180 | pub const CONDITION_CNE6: V2ComponentConditionFn = |c: &V2ComponentList| c[17].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[17].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:186:27 [INFO] [stdout] | [INFO] [stdout] 186 | |c: &V2ComponentList| c[3].len() > 0 && !(c[5].len() > 0 || c[17].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[3].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:186:47 [INFO] [stdout] | [INFO] [stdout] 186 | |c: &V2ComponentList| c[3].len() > 0 && !(c[5].len() > 0 || c[17].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[5].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:186:65 [INFO] [stdout] | [INFO] [stdout] 186 | |c: &V2ComponentList| c[3].len() > 0 && !(c[5].len() > 0 || c[17].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[17].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:190:74 [INFO] [stdout] | [INFO] [stdout] 190 | pub const CONDITION_CNE8: V2ComponentConditionFn = |c: &V2ComponentList| c[20].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[20].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:198:28 [INFO] [stdout] | [INFO] [stdout] 198 | |c: &V2ComponentList| (c[0].len() > 0 && c[8].len() > 0) || !CONDITION_CNN2(&c); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[0].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:198:46 [INFO] [stdout] | [INFO] [stdout] 198 | |c: &V2ComponentList| (c[0].len() > 0 && c[8].len() > 0) || !CONDITION_CNN2(&c); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[8].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:198:81 [INFO] [stdout] | [INFO] [stdout] 198 | |c: &V2ComponentList| (c[0].len() > 0 && c[8].len() > 0) || !CONDITION_CNN2(&c); [INFO] [stdout] | ^^ help: change this to: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:204:28 [INFO] [stdout] | [INFO] [stdout] 204 | |c: &V2ComponentList| (c[0].len() > 0 && c[7].len() > 0) || !CONDITION_CNN1(&c); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[0].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:204:46 [INFO] [stdout] | [INFO] [stdout] 204 | |c: &V2ComponentList| (c[0].len() > 0 && c[7].len() > 0) || !CONDITION_CNN1(&c); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[7].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:204:81 [INFO] [stdout] | [INFO] [stdout] 204 | |c: &V2ComponentList| (c[0].len() > 0 && c[7].len() > 0) || !CONDITION_CNN1(&c); [INFO] [stdout] | ^^ help: change this to: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:209:74 [INFO] [stdout] | [INFO] [stdout] 209 | pub const CONDITION_CNN3: V2ComponentConditionFn = |c: &V2ComponentList| c[10].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[10].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:214:74 [INFO] [stdout] | [INFO] [stdout] 214 | pub const CONDITION_CNN4: V2ComponentConditionFn = |c: &V2ComponentList| c[9].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[9].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:220:72 [INFO] [stdout] | [INFO] [stdout] 220 | pub const CONDITION_CP: V2ComponentConditionFn = |c: &V2ComponentList| c[2].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[2].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/hl7_v2_parser.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | / pub fn from_str(item: &str) -> V2Component { [INFO] [stdout] 155 | | V2Component { [INFO] [stdout] 156 | | component: V2String::from(item), [INFO] [stdout] 157 | | } [INFO] [stdout] 158 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/hl7_v2_parser.rs:165:13 [INFO] [stdout] | [INFO] [stdout] 165 | self.component == "" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.component.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip` [INFO] [stdout] --> src/lib.rs:1030:14 [INFO] [stdout] | [INFO] [stdout] 1030 | let (ip, port) = rumtk_v2_mllp_get_ip_port!(mllp_layer).unwrap_or_default(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ip` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip` [INFO] [stdout] --> src/lib.rs:1045:14 [INFO] [stdout] | [INFO] [stdout] 1045 | let (ip, port) = rumtk_v2_mllp_get_ip_port!(mllp).unwrap(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ip` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip` [INFO] [stdout] --> src/lib.rs:1069:14 [INFO] [stdout] | [INFO] [stdout] 1069 | let (ip, port) = rumtk_v2_mllp_get_ip_port!(&mllp_layer).unwrap(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ip` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `port` [INFO] [stdout] --> src/lib.rs:1069:18 [INFO] [stdout] | [INFO] [stdout] 1069 | let (ip, port) = rumtk_v2_mllp_get_ip_port!(&mllp_layer).unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_port` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `send_h` [INFO] [stdout] --> src/lib.rs:1079:13 [INFO] [stdout] | [INFO] [stdout] 1079 | let send_h = spawn(|| -> RUMResult<()> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_send_h` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip` [INFO] [stdout] --> src/lib.rs:1112:14 [INFO] [stdout] | [INFO] [stdout] 1112 | let (ip, port) = rumtk_v2_mllp_get_ip_port!(mllp_layer).unwrap(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ip` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/lib.rs:1119:13 [INFO] [stdout] | [INFO] [stdout] 1119 | for i in 0..10 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `V2Field` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/hl7_v2_parser.rs:256:9 [INFO] [stdout] | [INFO] [stdout] 256 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lib.rs:1147:13 [INFO] [stdout] | [INFO] [stdout] 1147 | let mut server_channel = server_channels.get_mut(0).unwrap().clone(); [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/lib.rs:1133:29 [INFO] [stdout] | [INFO] [stdout] 1133 | let empty_string = |s: RUMString| Ok::(RUMString::from("")); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `empty_string` [INFO] [stdout] --> src/lib.rs:1133:13 [INFO] [stdout] | [INFO] [stdout] 1133 | let empty_string = |s: RUMString| Ok::(RUMString::from("")); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_empty_string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip` [INFO] [stdout] --> src/lib.rs:1138:14 [INFO] [stdout] | [INFO] [stdout] 1138 | let (ip, port) = rumtk_v2_mllp_get_ip_port!(&safe_listener).unwrap(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ip` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lib.rs:1163:13 [INFO] [stdout] | [INFO] [stdout] 1163 | let mut safe_listener = match rumtk_v2_mllp_listen!(0, MLLP_FILTER_POLICY::NONE, 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] --> src/lib.rs:1176:13 [INFO] [stdout] | [INFO] [stdout] 1176 | let mut server_channel = server_channels.get_mut(0).unwrap().clone(); [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip` [INFO] [stdout] --> src/lib.rs:1167:14 [INFO] [stdout] | [INFO] [stdout] 1167 | let (ip, port) = rumtk_v2_mllp_get_ip_port!(safe_listener).unwrap(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ip` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `send_thread` [INFO] [stdout] --> src/lib.rs:1179:13 [INFO] [stdout] | [INFO] [stdout] 1179 | let send_thread = spawn(move || -> RUMResult<()> { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_send_thread` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `raw_fields` [INFO] [stdout] --> src/hl7_v2_parser.rs:338:30 [INFO] [stdout] | [INFO] [stdout] 338 | for i in 2..raw_field_count { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 338 - for i in 2..raw_field_count { [INFO] [stdout] 338 + for in raw_fields.iter().take(raw_field_count).skip(2) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `raw_fields` [INFO] [stdout] --> src/hl7_v2_parser.rs:343:30 [INFO] [stdout] | [INFO] [stdout] 343 | for i in 1..raw_field_count { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 343 - for i in 1..raw_field_count { [INFO] [stdout] 343 + for in raw_fields.iter().take(raw_field_count).skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `V2Segment` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/hl7_v2_parser.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 395 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lib.rs:1221:13 [INFO] [stdout] | [INFO] [stdout] 1221 | let mut safe_listener = match rumtk_v2_mllp_listen!(0, MLLP_FILTER_POLICY::NONE, 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] --> src/lib.rs:1235:13 [INFO] [stdout] | [INFO] [stdout] 1235 | let mut server_channel = server_channels.get_mut(0).unwrap().clone(); [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/lib.rs:1220:29 [INFO] [stdout] | [INFO] [stdout] 1220 | let empty_string = |s: RUMString| Ok::(RUMString::from("")); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `empty_string` [INFO] [stdout] --> src/lib.rs:1220:13 [INFO] [stdout] | [INFO] [stdout] 1220 | let empty_string = |s: RUMString| Ok::(RUMString::from("")); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_empty_string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ip` [INFO] [stdout] --> src/lib.rs:1225:14 [INFO] [stdout] | [INFO] [stdout] 1225 | let (ip, port) = rumtk_v2_mllp_get_ip_port!(safe_listener).unwrap(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ip` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `server_channel_copy` [INFO] [stdout] --> src/lib.rs:1236:13 [INFO] [stdout] | [INFO] [stdout] 1236 | let server_channel_copy = server_channel.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_channel_copy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `send_thread` [INFO] [stdout] --> src/lib.rs:1237:13 [INFO] [stdout] | [INFO] [stdout] 1237 | let send_thread = spawn(move || -> RUMResult<()> { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_send_thread` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `echo_thread` [INFO] [stdout] --> src/lib.rs:1277:13 [INFO] [stdout] | [INFO] [stdout] 1277 | let echo_thread = spawn(move || { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_echo_thread` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/hl7_v2_parser.rs:449:9 [INFO] [stdout] | [INFO] [stdout] 449 | / ... pub fn from_str(raw_msg: &str) -> Self { [INFO] [stdout] 450 | | ... Self::try_from_str(raw_msg).expect("If calls to from_str are failing for V2Message, consider using try_from_str or the ... [INFO] [stdout] 451 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `MLLPMessageResult` is never used [INFO] [stdout] --> src/hl7_v2_mllp.rs:215:10 [INFO] [stdout] | [INFO] [stdout] 215 | type MLLPMessageResult = RUMResult; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `MLLPClientMessageQueue` is never used [INFO] [stdout] --> src/hl7_v2_mllp.rs:216:10 [INFO] [stdout] | [INFO] [stdout] 216 | type MLLPClientMessageQueue = RUMNetClientMessageQueue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `MLLPMessageQueue` is never used [INFO] [stdout] --> src/hl7_v2_mllp.rs:217:10 [INFO] [stdout] | [INFO] [stdout] 217 | type MLLPMessageQueue = RUMNetMessageQueue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `SafeClientIDList` is never used [INFO] [stdout] --> src/hl7_v2_mllp.rs:464:10 [INFO] [stdout] | [INFO] [stdout] 464 | type SafeClientIDList = Arc>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hl7_v2_parser.rs:104:12 [INFO] [stdout] | [INFO] [stdout] 103 | impl V2Component { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 104 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXPECTED_PROCESSOR_FUNCTION_NAME` is never used [INFO] [stdout] --> src/hl7_v2_scripting.rs:31:11 [INFO] [stdout] | [INFO] [stdout] 31 | const EXPECTED_PROCESSOR_FUNCTION_NAME: &str = "process"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_message` is never used [INFO] [stdout] --> src/hl7_v2_scripting.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn process_message(module_path: &RUMString, message: &V2Message) -> RUMResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/hl7_v2_mllp.rs:339:70 [INFO] [stdout] | [INFO] [stdout] 339 | MLLP_FILTER_POLICY::ESCAPE_INPUT => Ok(basic_escape(msg, &vec![])), [INFO] [stdout] | ^^^^^^^ help: you can use a slice directly: `&[]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/hl7_v2_complex_types.rs:34:30 [INFO] [stdout] | [INFO] [stdout] 34 | fn to_component_list(&self) -> V2StrField; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 34 | fn to_component_list(&self) -> V2StrField<'_>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `repeate_field1` should have an upper case name [INFO] [stdout] --> src/hl7_v2_datasets.rs:86:15 [INFO] [stdout] | [INFO] [stdout] 86 | pub const repeate_field1: &str = "ISO"; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper case: `REPEATE_FIELD1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `repeate_field2` should have an upper case name [INFO] [stdout] --> src/hl7_v2_datasets.rs:87:15 [INFO] [stdout] | [INFO] [stdout] 87 | pub const repeate_field2: &str = "LOI_GU_Component"; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper case: `REPEATE_FIELD2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `repeate_field3` should have an upper case name [INFO] [stdout] --> src/hl7_v2_datasets.rs:88:15 [INFO] [stdout] | [INFO] [stdout] 88 | pub const repeate_field3: &str = "LAB_PRU_Component"; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper case: `REPEATE_FIELD3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/hl7_v2_mllp.rs:527:29 [INFO] [stdout] | [INFO] [stdout] 527 | async fn next_layer(&self) -> GuardedLowerLayer { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 527 | async fn next_layer(&self) -> GuardedLowerLayer<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/hl7_v2_mllp.rs:752:33 [INFO] [stdout] | [INFO] [stdout] 752 | pub async fn next_layer(&self) -> GuardedMLLPLayer { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 752 | pub async fn next_layer(&self) -> GuardedMLLPLayer<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `search_cache` should have an upper case name [INFO] [stdout] --> src/hl7_v2_parser.rs:60:16 [INFO] [stdout] | [INFO] [stdout] 60 | static mut search_cache: LazyRUMCache = new_cache(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 60 - static mut search_cache: LazyRUMCache = new_cache(); [INFO] [stdout] 60 + static mut SEARCH_CACHE: LazyRUMCache = new_cache(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/hl7_v2_parser.rs:551:44 [INFO] [stdout] | [INFO] [stdout] 551 | let index = rumtk_cache_fetch!(&mut search_cache, search_pattern, compile_search_index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 551 | let index = rumtk_cache_fetch!(&raw mut search_cache, search_pattern, compile_search_index); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/hl7_v2_base_types.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 82 | / pub fn from_str(msh_segment: &str) -> V2Result { [INFO] [stdout] 83 | | let sanitized_msh_segment = Self::sanitize_parse_chars(msh_segment); [INFO] [stdout] 84 | | let msg_key_chars = Self::isolate_parse_chars(&sanitized_msh_segment); [INFO] [stdout] 85 | | let key_chars = Self::validate_msh_key_chars(&msg_key_chars)?; [INFO] [stdout] ... | [INFO] [stdout] 109 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/hl7_v2_parser.rs:564:44 [INFO] [stdout] | [INFO] [stdout] 564 | let index = rumtk_cache_fetch!(&mut search_cache, search_pattern, compile_search_index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 564 | let index = rumtk_cache_fetch!(&raw mut search_cache, search_pattern, compile_search_index); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `V2DateTime` [INFO] [stdout] --> src/hl7_v2_base_types.rs:439:9 [INFO] [stdout] | [INFO] [stdout] 439 | / pub fn new() -> V2DateTime { [INFO] [stdout] 440 | | V2DateTime { [INFO] [stdout] 441 | | year: 1970, [INFO] [stdout] 442 | | month: 1, [INFO] [stdout] ... | [INFO] [stdout] 450 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 438 ~ impl Default for V2DateTime { [INFO] [stdout] 439 + fn default() -> Self { [INFO] [stdout] 440 + Self::new() [INFO] [stdout] 441 + } [INFO] [stdout] 442 + } [INFO] [stdout] 443 + [INFO] [stdout] 444 ~ impl V2DateTime { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/hl7_v2_base_types.rs:451:9 [INFO] [stdout] | [INFO] [stdout] 451 | / pub fn default() -> V2DateTime { [INFO] [stdout] 452 | | V2DateTime::new() [INFO] [stdout] 453 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/hl7_v2_base_types.rs:492:9 [INFO] [stdout] | [INFO] [stdout] 492 | / pub fn from_str(item: &str) -> V2DateTime { [INFO] [stdout] 493 | | let offset = string_search(item, REGEX_DT_TIMEZONE, ""); [INFO] [stdout] 494 | | let time_part = item.replace(&offset.as_str(), ""); [INFO] [stdout] 495 | | let dt_vec: Vec<&str> = time_part.split('.').collect(); [INFO] [stdout] ... | [INFO] [stdout] 535 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/hl7_v2_base_types.rs:494:42 [INFO] [stdout] | [INFO] [stdout] 494 | let time_part = item.replace(&offset.as_str(), ""); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `offset.as_str()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_base_types.rs:821:12 [INFO] [stdout] | [INFO] [stdout] 821 | if r.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!r.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_base_types.rs:911:16 [INFO] [stdout] | [INFO] [stdout] 911 | if validated.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `validated.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: feature `str_as_str` is declared but not used [INFO] [stdout] --> src/lib.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | #![feature(str_as_str)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/hl7_v2_complex_types.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / pub mod hl7_v2_complex_types { [INFO] [stdout] 23 | | use crate::hl7_v2_base_types::v2_primitives::*; [INFO] [stdout] 24 | | use crate::hl7_v2_field_descriptors::v2_field_descriptor::*; [INFO] [stdout] 25 | | use rumtk_core::strings::rumtk_format; [INFO] [stdout] ... | [INFO] [stdout] 101 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_complex_types.rs:59:56 [INFO] [stdout] | [INFO] [stdout] 59 | if component_type.optionality.is_required() && component.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `component.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be replaced by its body itself [INFO] [stdout] --> src/hl7_v2_complex_types.rs:96:50 [INFO] [stdout] | [INFO] [stdout] 96 | V2ComponentType::Complex(complex) => match complex { [INFO] [stdout] | __________________________________________________^ [INFO] [stdout] 97 | | _ => V2Type::Err(rumtk_format!("Unknown requested type!")), [INFO] [stdout] 98 | | }, [INFO] [stdout] | |_____________^ help: consider using the match body instead: `V2Type::Err(rumtk_format!("Unknown requested type!"))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty doc comment [INFO] [stdout] --> src/hl7_v2_field_descriptors.rs:880:9 [INFO] [stdout] | [INFO] [stdout] 880 | / /// [INFO] [stdout] 881 | | /// [INFO] [stdout] 882 | | /// [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing or filling it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_docs [INFO] [stdout] = note: `#[warn(clippy::empty_docs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/hl7_v2_field_descriptors.rs:910:9 [INFO] [stdout] | [INFO] [stdout] 910 | / pub const fn new( [INFO] [stdout] 911 | | name: &'static str, [INFO] [stdout] 912 | | description: &'static str, [INFO] [stdout] 913 | | data_type: V2ComponentType, [INFO] [stdout] ... | [INFO] [stdout] 918 | | truncate: bool, [INFO] [stdout] 919 | | ) -> V2ComponentTypeDescriptor { [INFO] [stdout] | |______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_field_descriptors.rs:943:9 [INFO] [stdout] | [INFO] [stdout] 943 | /// target when casting the field [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_field_descriptors.rs:947:9 [INFO] [stdout] | [INFO] [stdout] 947 | /// but may be changed to an enumerator in the future. [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_field_descriptors.rs:949:9 [INFO] [stdout] | [INFO] [stdout] 949 | /// emit error. If a field is flagged as conditional, we expect an Option passed to be passed [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_field_descriptors.rs:950:9 [INFO] [stdout] | [INFO] [stdout] 950 | /// with None or a tuple of conditions. [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_mllp.rs:287:12 [INFO] [stdout] | [INFO] [stdout] 287 | if message.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `message.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:318:27 [INFO] [stdout] | [INFO] [stdout] 318 | Ok(try_decode(&contents)) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `contents` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_mllp.rs:327:9 [INFO] [stdout] | [INFO] [stdout] 327 | /// printable range of ASCII. [INFO] [stdout] | ^^^^^ help: try using ` ` (4 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:373:49 [INFO] [stdout] | [INFO] [stdout] 373 | let server = RUMServer::new(&ip, port).await?; [INFO] [stdout] | ^^^ help: change this to: `ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:378:53 [INFO] [stdout] | [INFO] [stdout] 378 | let client = RUMClient::connect(&ip, port).await?; [INFO] [stdout] | ^^^ help: change this to: `ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:392:47 [INFO] [stdout] | [INFO] [stdout] 392 | server.write().await.send(&client_id, message).await?; [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `client_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:395:81 [INFO] [stdout] | [INFO] [stdout] 395 | LowerLayer::CLIENT(ref mut client) => client.write().await.send(&message).await, [INFO] [stdout] | ^^^^^^^^ help: change this to: `message` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_mllp.rs:566:13 [INFO] [stdout] | [INFO] [stdout] 566 | /// there was a response but the target had issues processing it. [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_mllp.rs:568:13 [INFO] [stdout] | [INFO] [stdout] 568 | /// [TIMEOUT_SOURCE](TIMEOUT_SOURCE) times. Upon meeting this overall timeout, error out with message [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_mllp.rs:569:13 [INFO] [stdout] | [INFO] [stdout] 569 | /// explaining we reached the timeout. [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/hl7_v2_mllp.rs:574:17 [INFO] [stdout] | [INFO] [stdout] 574 | / match responses.get(0) { [INFO] [stdout] 575 | | Some(response) => { [INFO] [stdout] 576 | | let acked = is_ack(response); [INFO] [stdout] 577 | | if acked { [INFO] [stdout] ... | [INFO] [stdout] 588 | | None => {} [INFO] [stdout] 589 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 574 ~ if let Some(response) = responses.get(0) { [INFO] [stdout] 575 + let acked = is_ack(response); [INFO] [stdout] 576 + if acked { [INFO] [stdout] 577 + return Ok(true); [INFO] [stdout] 578 + } [INFO] [stdout] 579 + [INFO] [stdout] 580 + if is_nack(&response) { [INFO] [stdout] 581 + return Err(rumtk_format!( [INFO] [stdout] 582 + "Endpoint {} responded with a negative acknowledgement. That means they failed to parse or store our message!", [INFO] [stdout] 583 + &endpoint [INFO] [stdout] 584 + )); [INFO] [stdout] 585 + } [INFO] [stdout] 586 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `responses.get(0)` [INFO] [stdout] --> src/hl7_v2_mllp.rs:574:23 [INFO] [stdout] | [INFO] [stdout] 574 | match responses.get(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `responses.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:581:36 [INFO] [stdout] | [INFO] [stdout] 581 | if is_nack(&response) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `response` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_mllp.rs:666:13 [INFO] [stdout] | [INFO] [stdout] 666 | /// Remember, [AsyncMLLP::wait_for_send_ack] loop inside [AsyncMLLP::send_message] [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_mllp.rs:667:13 [INFO] [stdout] | [INFO] [stdout] 667 | /// already polls the transmission queue for the presence of acks. [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/hl7_v2_mllp.rs:670:13 [INFO] [stdout] | [INFO] [stdout] 670 | /// with a timeout error message. [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `owned_args.get(0)` [INFO] [stdout] --> src/hl7_v2_mllp.rs:809:52 [INFO] [stdout] | [INFO] [stdout] 809 | let (channel, message, peer) = owned_args.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `owned_args.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `owned_args.get(0)` [INFO] [stdout] --> src/hl7_v2_mllp.rs:825:37 [INFO] [stdout] | [INFO] [stdout] 825 | let owned_arg = owned_args.get(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `owned_args.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `owned_args.get(0)` [INFO] [stdout] --> src/hl7_v2_mllp.rs:838:37 [INFO] [stdout] | [INFO] [stdout] 838 | let owned_arg = owned_args.get(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `owned_args.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:840:79 [INFO] [stdout] | [INFO] [stdout] 840 | let result = channel.lock().await.receive_client_messages(&peer).await; [INFO] [stdout] | ^^^^^ help: change this to: `peer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `owned_args.get(0)` [INFO] [stdout] --> src/hl7_v2_mllp.rs:851:32 [INFO] [stdout] | [INFO] [stdout] 851 | let mllp = owned_args.get(0).unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `owned_args.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_mllp.rs:938:71 [INFO] [stdout] | [INFO] [stdout] 938 | SafeMLLPChannel::new(SyncMutex::new(MLLPChannel::open(&endpoint, &mllp))); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `endpoint` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty doc comment [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | / /// [INFO] [stdout] 27 | | /// [INFO] [stdout] 28 | | /// [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing or filling it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_docs [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | / match &self { [INFO] [stdout] 52 | | Optionality::R => true, [INFO] [stdout] 53 | | _ => false, [INFO] [stdout] 54 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 51 - match &self { [INFO] [stdout] 52 - Optionality::R => true, [INFO] [stdout] 53 - _ => false, [INFO] [stdout] 54 - } [INFO] [stdout] 51 + matches!(self, Optionality::R) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:64:36 [INFO] [stdout] | [INFO] [stdout] 64 | Optionality::C(f) => f(&field), [INFO] [stdout] | ^^^^^^ help: change this to: `field` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:83:27 [INFO] [stdout] | [INFO] [stdout] 83 | |c: &V2ComponentList| c[0].len() > 0 && !c[13].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[0].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:92:27 [INFO] [stdout] | [INFO] [stdout] 92 | |c: &V2ComponentList| c[3].len() > 0 && !c[16].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[3].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:116:27 [INFO] [stdout] | [INFO] [stdout] 116 | |c: &V2ComponentList| c[0].len() > 0 && !c[2].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[0].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:120:73 [INFO] [stdout] | [INFO] [stdout] 120 | pub const CONDITION_CF6: V2ComponentConditionFn = |c: &V2ComponentList| c[14].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[14].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:126:27 [INFO] [stdout] | [INFO] [stdout] 126 | |c: &V2ComponentList| c[3].len() > 0 && !c[5].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[3].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:130:73 [INFO] [stdout] | [INFO] [stdout] 130 | pub const CONDITION_CF8: V2ComponentConditionFn = |c: &V2ComponentList| c[17].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[17].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:136:27 [INFO] [stdout] | [INFO] [stdout] 136 | |c: &V2ComponentList| c[9].len() > 0 && !c[11].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[9].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:140:74 [INFO] [stdout] | [INFO] [stdout] 140 | pub const CONDITION_CF10: V2ComponentConditionFn = |c: &V2ComponentList| c[20].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[20].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:166:45 [INFO] [stdout] | [INFO] [stdout] 166 | |c: &V2ComponentList| c[0].len() > 0 && !(c[2].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(c[2].len() <= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:166:27 [INFO] [stdout] | [INFO] [stdout] 166 | |c: &V2ComponentList| c[0].len() > 0 && !(c[2].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[0].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:166:47 [INFO] [stdout] | [INFO] [stdout] 166 | |c: &V2ComponentList| c[0].len() > 0 && !(c[2].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[2].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:170:74 [INFO] [stdout] | [INFO] [stdout] 170 | pub const CONDITION_CNE4: V2ComponentConditionFn = |c: &V2ComponentList| c[14].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[14].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:176:45 [INFO] [stdout] | [INFO] [stdout] 176 | |c: &V2ComponentList| c[3].len() > 0 && !(c[5].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(c[5].len() <= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:176:27 [INFO] [stdout] | [INFO] [stdout] 176 | |c: &V2ComponentList| c[3].len() > 0 && !(c[5].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[3].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:176:47 [INFO] [stdout] | [INFO] [stdout] 176 | |c: &V2ComponentList| c[3].len() > 0 && !(c[5].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[5].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:180:74 [INFO] [stdout] | [INFO] [stdout] 180 | pub const CONDITION_CNE6: V2ComponentConditionFn = |c: &V2ComponentList| c[17].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[17].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:186:27 [INFO] [stdout] | [INFO] [stdout] 186 | |c: &V2ComponentList| c[3].len() > 0 && !(c[5].len() > 0 || c[17].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[3].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:186:47 [INFO] [stdout] | [INFO] [stdout] 186 | |c: &V2ComponentList| c[3].len() > 0 && !(c[5].len() > 0 || c[17].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[5].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:186:65 [INFO] [stdout] | [INFO] [stdout] 186 | |c: &V2ComponentList| c[3].len() > 0 && !(c[5].len() > 0 || c[17].len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[17].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:190:74 [INFO] [stdout] | [INFO] [stdout] 190 | pub const CONDITION_CNE8: V2ComponentConditionFn = |c: &V2ComponentList| c[20].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[20].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:198:28 [INFO] [stdout] | [INFO] [stdout] 198 | |c: &V2ComponentList| (c[0].len() > 0 && c[8].len() > 0) || !CONDITION_CNN2(&c); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[0].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:198:46 [INFO] [stdout] | [INFO] [stdout] 198 | |c: &V2ComponentList| (c[0].len() > 0 && c[8].len() > 0) || !CONDITION_CNN2(&c); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[8].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:198:81 [INFO] [stdout] | [INFO] [stdout] 198 | |c: &V2ComponentList| (c[0].len() > 0 && c[8].len() > 0) || !CONDITION_CNN2(&c); [INFO] [stdout] | ^^ help: change this to: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:204:28 [INFO] [stdout] | [INFO] [stdout] 204 | |c: &V2ComponentList| (c[0].len() > 0 && c[7].len() > 0) || !CONDITION_CNN1(&c); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[0].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:204:46 [INFO] [stdout] | [INFO] [stdout] 204 | |c: &V2ComponentList| (c[0].len() > 0 && c[7].len() > 0) || !CONDITION_CNN1(&c); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[7].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:204:81 [INFO] [stdout] | [INFO] [stdout] 204 | |c: &V2ComponentList| (c[0].len() > 0 && c[7].len() > 0) || !CONDITION_CNN1(&c); [INFO] [stdout] | ^^ help: change this to: `c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:209:74 [INFO] [stdout] | [INFO] [stdout] 209 | pub const CONDITION_CNN3: V2ComponentConditionFn = |c: &V2ComponentList| c[10].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[10].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:214:74 [INFO] [stdout] | [INFO] [stdout] 214 | pub const CONDITION_CNN4: V2ComponentConditionFn = |c: &V2ComponentList| c[9].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[9].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/hl7_v2_optionality_rules.rs:220:72 [INFO] [stdout] | [INFO] [stdout] 220 | pub const CONDITION_CP: V2ComponentConditionFn = |c: &V2ComponentList| c[2].len() > 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!c[2].is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/hl7_v2_parser.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | / pub fn from_str(item: &str) -> V2Component { [INFO] [stdout] 155 | | V2Component { [INFO] [stdout] 156 | | component: V2String::from(item), [INFO] [stdout] 157 | | } [INFO] [stdout] 158 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/hl7_v2_parser.rs:165:13 [INFO] [stdout] | [INFO] [stdout] 165 | self.component == "" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.component.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `V2Field` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/hl7_v2_parser.rs:256:9 [INFO] [stdout] | [INFO] [stdout] 256 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `raw_fields` [INFO] [stdout] --> src/hl7_v2_parser.rs:338:30 [INFO] [stdout] | [INFO] [stdout] 338 | for i in 2..raw_field_count { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 338 - for i in 2..raw_field_count { [INFO] [stdout] 338 + for in raw_fields.iter().take(raw_field_count).skip(2) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `raw_fields` [INFO] [stdout] --> src/hl7_v2_parser.rs:343:30 [INFO] [stdout] | [INFO] [stdout] 343 | for i in 1..raw_field_count { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 343 - for i in 1..raw_field_count { [INFO] [stdout] 343 + for in raw_fields.iter().take(raw_field_count).skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `V2Segment` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/hl7_v2_parser.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 395 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/hl7_v2_parser.rs:449:9 [INFO] [stdout] | [INFO] [stdout] 449 | / ... pub fn from_str(raw_msg: &str) -> Self { [INFO] [stdout] 450 | | ... Self::try_from_str(raw_msg).expect("If calls to from_str are failing for V2Message, consider using try_from_str or the ... [INFO] [stdout] 451 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:80:39 [INFO] [stdout] | [INFO] [stdout] 80 | let field = V2Field::from_str(&field_str, &encode_chars); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `field_str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:136:51 [INFO] [stdout] | [INFO] [stdout] 136 | let tokens = V2Message::tokenize_segments(&sanitized_message.as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `sanitized_message.as_str()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:149:51 [INFO] [stdout] | [INFO] [stdout] 149 | let tokens = V2Message::tokenize_segments(&sanitized_message.as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `sanitized_message.as_str()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:186:51 [INFO] [stdout] | [INFO] [stdout] 186 | let tokens = V2Message::tokenize_segments(&sanitized_message.as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `sanitized_message.as_str()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:188:57 [INFO] [stdout] | [INFO] [stdout] 188 | let encode_chars = V2ParserCharacters::from_msh(&msh.as_str()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `msh.as_str()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:226:51 [INFO] [stdout] | [INFO] [stdout] 226 | let tokens = V2Message::tokenize_segments(&sanitized_message.as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `sanitized_message.as_str()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:228:57 [INFO] [stdout] | [INFO] [stdout] 228 | let encode_chars = V2ParserCharacters::from_msh(&msh.as_str()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `msh.as_str()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `pid.get(5).unwrap().get(0)` [INFO] [stdout] --> src/lib.rs:347:21 [INFO] [stdout] | [INFO] [stdout] 347 | let name1 = pid.get(5).unwrap().get(0).unwrap().get(1).unwrap().as_str(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `pid.get(5).unwrap().first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `orc [INFO] [stdout] .get(12) [INFO] [stdout] .unwrap().get(0)` [INFO] [stdout] --> src/lib.rs:348:21 [INFO] [stdout] | [INFO] [stdout] 348 | let name2 = orc [INFO] [stdout] | _____________________^ [INFO] [stdout] 349 | | .get(12) [INFO] [stdout] 350 | | .unwrap() [INFO] [stdout] 351 | | .get(0) [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 348 ~ let name2 = orc [INFO] [stdout] 349 + .get(12) [INFO] [stdout] 350 + .unwrap().first() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `obr [INFO] [stdout] .get(16) [INFO] [stdout] .unwrap().get(0)` [INFO] [stdout] --> src/lib.rs:356:21 [INFO] [stdout] | [INFO] [stdout] 356 | let name3 = obr [INFO] [stdout] | _____________________^ [INFO] [stdout] 357 | | .get(16) [INFO] [stdout] 358 | | .unwrap() [INFO] [stdout] 359 | | .get(0) [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 356 ~ let name3 = obr [INFO] [stdout] 357 + .get(16) [INFO] [stdout] 358 + .unwrap().first() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `msh [INFO] [stdout] .get(-1) [INFO] [stdout] .unwrap().get(0)` [INFO] [stdout] --> src/lib.rs:385:22 [INFO] [stdout] | [INFO] [stdout] 385 | let field1 = msh [INFO] [stdout] | ______________________^ [INFO] [stdout] 386 | | .get(-1) [INFO] [stdout] 387 | | .unwrap() [INFO] [stdout] 388 | | .get(0) [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 385 ~ let field1 = msh [INFO] [stdout] 386 + .get(-1) [INFO] [stdout] 387 + .unwrap().first() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:930:51 [INFO] [stdout] | [INFO] [stdout] 930 | let tokens = V2Message::tokenize_segments(&sanitized_message.as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `sanitized_message.as_str()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `results.get(0)` [INFO] [stdout] --> src/lib.rs:1053:25 [INFO] [stdout] | [INFO] [stdout] 1053 | let client_id = results.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `results.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `client_ids.get(0)` [INFO] [stdout] --> src/lib.rs:1092:25 [INFO] [stdout] | [INFO] [stdout] 1092 | let client_id = client_ids.get(0).unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `client_ids.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `results.get(0)` [INFO] [stdout] --> src/lib.rs:1096:22 [INFO] [stdout] | [INFO] [stdout] 1096 | let result = results.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `results.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `connected_clients.get(0)` [INFO] [stdout] --> src/lib.rs:1125:33 [INFO] [stdout] | [INFO] [stdout] 1125 | let connected_address = connected_clients.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `connected_clients.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `client_ids.get(0)` [INFO] [stdout] --> src/lib.rs:1127:25 [INFO] [stdout] | [INFO] [stdout] 1127 | let client_id = client_ids.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `client_ids.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `client_ids.get(0)` [INFO] [stdout] --> src/lib.rs:1145:25 [INFO] [stdout] | [INFO] [stdout] 1145 | let client_id = client_ids.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `client_ids.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `client_ids.get(0)` [INFO] [stdout] --> src/lib.rs:1174:25 [INFO] [stdout] | [INFO] [stdout] 1174 | let client_id = client_ids.get(0).unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `client_ids.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/lib.rs:1180:13 [INFO] [stdout] | [INFO] [stdout] 1180 | / Ok(server_channel [INFO] [stdout] 1181 | | .lock() [INFO] [stdout] 1182 | | .unwrap() [INFO] [stdout] 1183 | | .send_message(&message_copy) [INFO] [stdout] 1184 | | .unwrap()) [INFO] [stdout] | |__________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 1180 ~ let _: () = server_channel [INFO] [stdout] 1181 + .lock() [INFO] [stdout] 1182 + .unwrap() [INFO] [stdout] 1183 + .send_message(&message_copy) [INFO] [stdout] 1184 + .unwrap(); [INFO] [stdout] 1185 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:1193:19 [INFO] [stdout] | [INFO] [stdout] 1193 | while received_message.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `received_message.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `received_messages.get(0)` [INFO] [stdout] --> src/lib.rs:1204:32 [INFO] [stdout] | [INFO] [stdout] 1204 | let received_message = received_messages.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `received_messages.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `client_ids.get(0)` [INFO] [stdout] --> src/lib.rs:1232:25 [INFO] [stdout] | [INFO] [stdout] 1232 | let client_id = client_ids.get(0).unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `client_ids.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/lib.rs:1238:13 [INFO] [stdout] | [INFO] [stdout] 1238 | / Ok(server_channel [INFO] [stdout] 1239 | | .lock() [INFO] [stdout] 1240 | | .unwrap() [INFO] [stdout] 1241 | | .send_message(HL7_V2_PDF_MESSAGE) [INFO] [stdout] 1242 | | .unwrap()) [INFO] [stdout] | |__________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 1238 ~ let _: () = server_channel [INFO] [stdout] 1239 + .lock() [INFO] [stdout] 1240 + .unwrap() [INFO] [stdout] 1241 + .send_message(HL7_V2_PDF_MESSAGE) [INFO] [stdout] 1242 + .unwrap(); [INFO] [stdout] 1243 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:1251:19 [INFO] [stdout] | [INFO] [stdout] 1251 | while received_message.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `received_message.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `received_messages.get(0)` [INFO] [stdout] --> src/lib.rs:1262:32 [INFO] [stdout] | [INFO] [stdout] 1262 | let received_message = received_messages.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `received_messages.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:1290:19 [INFO] [stdout] | [INFO] [stdout] 1290 | while echoed_messages.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `echoed_messages.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `echoed_messages.get(0)` [INFO] [stdout] --> src/lib.rs:1302:30 [INFO] [stdout] | [INFO] [stdout] 1302 | let echoed_message = echoed_messages.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `echoed_messages.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/lib.rs:1321:49 [INFO] [stdout] | [INFO] [stdout] 1321 | let escaped = basic_escape(&serialized, &vec![]); [INFO] [stdout] | ^^^^^^^ help: you can use a slice directly: `&[]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/hl7_v2_mllp.rs:339:70 [INFO] [stdout] | [INFO] [stdout] 339 | MLLP_FILTER_POLICY::ESCAPE_INPUT => Ok(basic_escape(msg, &vec![])), [INFO] [stdout] | ^^^^^^^ help: you can use a slice directly: `&[]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/hl7_v2_complex_types.rs:34:30 [INFO] [stdout] | [INFO] [stdout] 34 | fn to_component_list(&self) -> V2StrField; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 34 | fn to_component_list(&self) -> V2StrField<'_>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `repeate_field1` should have an upper case name [INFO] [stdout] --> src/hl7_v2_datasets.rs:86:15 [INFO] [stdout] | [INFO] [stdout] 86 | pub const repeate_field1: &str = "ISO"; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper case: `REPEATE_FIELD1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `repeate_field2` should have an upper case name [INFO] [stdout] --> src/hl7_v2_datasets.rs:87:15 [INFO] [stdout] | [INFO] [stdout] 87 | pub const repeate_field2: &str = "LOI_GU_Component"; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper case: `REPEATE_FIELD2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `repeate_field3` should have an upper case name [INFO] [stdout] --> src/hl7_v2_datasets.rs:88:15 [INFO] [stdout] | [INFO] [stdout] 88 | pub const repeate_field3: &str = "LAB_PRU_Component"; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper case: `REPEATE_FIELD3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/hl7_v2_mllp.rs:527:29 [INFO] [stdout] | [INFO] [stdout] 527 | async fn next_layer(&self) -> GuardedLowerLayer { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 527 | async fn next_layer(&self) -> GuardedLowerLayer<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/hl7_v2_mllp.rs:752:33 [INFO] [stdout] | [INFO] [stdout] 752 | pub async fn next_layer(&self) -> GuardedMLLPLayer { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 752 | pub async fn next_layer(&self) -> GuardedMLLPLayer<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `search_cache` should have an upper case name [INFO] [stdout] --> src/hl7_v2_parser.rs:60:16 [INFO] [stdout] | [INFO] [stdout] 60 | static mut search_cache: LazyRUMCache = new_cache(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 60 - static mut search_cache: LazyRUMCache = new_cache(); [INFO] [stdout] 60 + static mut SEARCH_CACHE: LazyRUMCache = new_cache(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/hl7_v2_parser.rs:551:44 [INFO] [stdout] | [INFO] [stdout] 551 | let index = rumtk_cache_fetch!(&mut search_cache, search_pattern, compile_search_index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 551 | let index = rumtk_cache_fetch!(&raw mut search_cache, search_pattern, compile_search_index); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/hl7_v2_parser.rs:564:44 [INFO] [stdout] | [INFO] [stdout] 564 | let index = rumtk_cache_fetch!(&mut search_cache, search_pattern, compile_search_index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 564 | let index = rumtk_cache_fetch!(&raw mut search_cache, search_pattern, compile_search_index); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.14s [INFO] running `Command { std: "docker" "inspect" "edbe0d1d9acfe571972a6c40976e0bb47f85ed03d910c35d62a6b1961aa0ccf3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "edbe0d1d9acfe571972a6c40976e0bb47f85ed03d910c35d62a6b1961aa0ccf3", kill_on_drop: false }` [INFO] [stdout] edbe0d1d9acfe571972a6c40976e0bb47f85ed03d910c35d62a6b1961aa0ccf3