Skip to content

feature(CI): Add test for AWS IoT Device Advisor #163

feature(CI): Add test for AWS IoT Device Advisor

feature(CI): Add test for AWS IoT Device Advisor #163

Triggered via pull request May 2, 2024 17:14
Status Failure
Total duration 2h 7m 6s
Artifacts 1

ci.yml

on: pull_request
Integration Test
50s
Integration Test
AWS IoT Device Advisor
24s
AWS IoT Device Advisor
Fit to window
Zoom out
Zoom in

Annotations

3 errors and 368 warnings
AWS IoT Device Advisor
Process completed with exit code 252.
AWS IoT Device Advisor
Process completed with exit code 1.
AWS IoT Device Advisor
Process completed with exit code 254.
Cancel previous runs
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: styfle/[email protected]. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Cancel previous runs
The following actions uses node12 which is deprecated and will be forced to run on node16: styfle/[email protected]. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
rustfmt
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2, actions-rs/toolchain@v1, actions-rs/cargo@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
rustfmt
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2, actions-rs/toolchain@v1, actions-rs/cargo@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
unnecessary structure name repetition: mqttrust_core/src/lib.rs#L115
warning: unnecessary structure name repetition --> mqttrust_core/src/lib.rs:115:9 | 115 | EventError::MqttState(e) | ^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust_core/src/lib.rs#L109
warning: unnecessary structure name repetition --> mqttrust_core/src/lib.rs:109:9 | 109 | EventError::Encoding(e) | ^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
you are deriving `PartialEq` and can implement `Eq`: mqttrust_core/src/lib.rs#L95
warning: you are deriving `PartialEq` and can implement `Eq` --> mqttrust_core/src/lib.rs:95:17 | 95 | #[derive(Debug, PartialEq)] | ^^^^^^^^^ help: consider deriving `Eq` as well: `PartialEq, Eq` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_partial_eq_without_eq
matching over `()` is more explicit: mqttrust_core/src/lib.rs#L74
warning: matching over `()` is more explicit --> mqttrust_core/src/lib.rs:74:58 | 74 | payload: Vec::from_slice(p.payload).map_err(|_| { | ^ help: use `()` instead of `_`: `()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ignored_unit_patterns = note: `-W clippy::ignored-unit-patterns` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::ignored_unit_patterns)]`
unnecessary structure name repetition: mqttrust_core/src/lib.rs#L69
warning: unnecessary structure name repetition --> mqttrust_core/src/lib.rs:69:12 | 69 | Ok(PublishNotification { | ^^^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
you are deriving `PartialEq` and can implement `Eq`: mqttrust_core/src/lib.rs#L27
warning: you are deriving `PartialEq` and can implement `Eq` --> mqttrust_core/src/lib.rs:27:17 | 27 | #[derive(Debug, PartialEq)] | ^^^^^^^^^ help: consider deriving `Eq` as well: `PartialEq, Eq` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_partial_eq_without_eq
the following explicit lifetimes could be elided: 'b: mqttrust_core/src/state.rs#L484
warning: the following explicit lifetimes could be elided: 'b --> mqttrust_core/src/state.rs:484:26 | 484 | pub(crate) fn packet<'b>(&'b mut self, pid: u16) -> Result<&'b [u8], StateError> { | ^^ ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 484 - pub(crate) fn packet<'b>(&'b mut self, pid: u16) -> Result<&'b [u8], StateError> { 484 + pub(crate) fn packet(&mut self, pid: u16) -> Result<&[u8], StateError> { |
item in documentation is missing backticks: mqttrust_core/src/state.rs#L457
warning: item in documentation is missing backticks --> mqttrust_core/src/state.rs:457:31 | 457 | /// A publish of non-zero QoS. | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 457 | /// A publish of non-zero `QoS`. | ~~~~~
pub(crate) struct inside private module: mqttrust_core/src/state.rs#L456
warning: pub(crate) struct inside private module --> mqttrust_core/src/state.rs:456:1 | 456 | pub(crate) struct Inflight<const TIMER_HZ: u32, const L: usize> { | ----------^^^^^^^^^^^^^^^^ | | | help: consider using: `pub` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pub_crate = note: `-W clippy::redundant-pub-crate` implied by `-W clippy::nursery` = help: to override `-W clippy::nursery` add `#[allow(clippy::redundant_pub_crate)]`
use Option::map_or instead of an if let/else: mqttrust_core/src/state.rs#L445
warning: use Option::map_or instead of an if let/else --> mqttrust_core/src/state.rs:445:9 | 445 | / if let Some(start_time) = self.0 { 446 | | let elapse_time = start_time + interval; 447 | | elapse_time <= *now 448 | | } else { 449 | | false 450 | | } | |_________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else help: try | 445 ~ self.0.map_or(false, |start_time| { 446 + let elapse_time = start_time + interval; 447 + elapse_time <= *now 448 + }) |
this argument (4 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte): mqttrust_core/src/state.rs#L442
warning: this argument (4 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) --> mqttrust_core/src/state.rs:442:14 | 442 | now: &TimerInstantU32<TIMER_HZ>, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `TimerInstantU32<TIMER_HZ>` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
this argument (8 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte): mqttrust_core/src/state.rs#L441
warning: this argument (8 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) --> mqttrust_core/src/state.rs:441:9 | 441 | &self, | ^^^^^ help: consider passing by value instead: `self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
this function's return value is unnecessarily wrapped by `Result`: mqttrust_core/src/state.rs#L354
warning: this function's return value is unnecessarily wrapped by `Result` --> mqttrust_core/src/state.rs:354:5 | 354 | / fn handle_incoming_pingresp( 355 | | &mut self, 356 | | ) -> Result<(Option<Notification>, Option<Packet<'static>>), StateError> { 357 | | self.await_pingresp = false; 358 | | trace!("Received Pingresp"); 359 | | Ok((None, None)) 360 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_wraps help: remove `Result` from the return type... | 356 | ) -> (core::option::Option<Notification>, core::option::Option<mqttrust::Packet<'static>>) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ help: ...and then change returning expressions | 359 | (None, None) |
this function's return value is unnecessarily wrapped by `Result`: mqttrust_core/src/state.rs#L321
warning: this function's return value is unnecessarily wrapped by `Result` --> mqttrust_core/src/state.rs:321:5 | 321 | / fn handle_incoming_pubcomp( 322 | | &mut self, 323 | | pid: Pid, 324 | | ) -> Result<(Option<Notification>, Option<Packet<'static>>), StateError> { ... | 334 | | } 335 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_wraps help: remove `Result` from the return type... | 324 | ) -> (core::option::Option<Notification>, core::option::Option<mqttrust::Packet<'static>>) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ help: ...and then change returning expressions | 329 ~ (notification, reply) 330 | } else { 331 | error!("Unsolicited pubcomp packet: {:?}", pid.get()); 332 | // Err(StateError::Unsolicited) 333 ~ (None, None) |
this function's return value is unnecessarily wrapped by `Result`: mqttrust_core/src/state.rs#L306
warning: this function's return value is unnecessarily wrapped by `Result` --> mqttrust_core/src/state.rs:306:5 | 306 | / fn handle_incoming_pubrel( 307 | | &mut self, 308 | | pid: Pid, 309 | | ) -> Result<(Option<Notification>, Option<Packet<'static>>), StateError> { ... | 318 | | } 319 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_wraps help: remove `Result` from the return type... | 309 | ) -> (core::option::Option<Notification>, core::option::Option<mqttrust::Packet<'static>>) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ help: ...and then change returning expressions | 313 ~ (None, Some(reply)) 314 | } else { 315 | error!("Unsolicited pubrel packet: {:?}", pid.get()); 316 | // Err(StateError::Unsolicited) 317 ~ (None, None) |
item in documentation is missing backticks: mqttrust_core/src/state.rs#L264
warning: item in documentation is missing backticks --> mqttrust_core/src/state.rs:264:51 | 264 | /// in case of QoS1 and Replys rec in case of QoS while also storing the message | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 264 | /// in case of QoS1 and Replys rec in case of `QoS` while also storing the message | ~~~~~
item in documentation is missing backticks: mqttrust_core/src/state.rs#L264
warning: item in documentation is missing backticks --> mqttrust_core/src/state.rs:264:20 | 264 | /// in case of QoS1 and Replys rec in case of QoS while also storing the message | ^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 264 | /// in case of `QoS1` and Replys rec in case of QoS while also storing the message | ~~~~~~
item in documentation is missing backticks: mqttrust_core/src/state.rs#L263
warning: item in documentation is missing backticks --> mqttrust_core/src/state.rs:263:54 | 263 | /// Results in a publish notification in all the QoS cases. Replys with an ack | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 263 | /// Results in a publish notification in all the `QoS` cases. Replys with an ack | ~~~~~
the following explicit lifetimes could be elided: 'b: mqttrust_core/src/state.rs#L265
warning: the following explicit lifetimes could be elided: 'b --> mqttrust_core/src/state.rs:265:32 | 265 | fn handle_incoming_publish<'b>( | ^^ 266 | &mut self, 267 | publish: Publish<'b>, | ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 265 ~ fn handle_incoming_publish( 266 | &mut self, 267 ~ publish: Publish<'_>, |
this function's return value is unnecessarily wrapped by `Result`: mqttrust_core/src/state.rs#L229
warning: this function's return value is unnecessarily wrapped by `Result` --> mqttrust_core/src/state.rs:229:5 | 229 | / fn handle_incoming_unsuback( 230 | | &mut self, 231 | | pid: Pid, 232 | | ) -> Result<(Option<Notification>, Option<Packet<'static>>), StateError> { ... | 236 | | Ok((notification, request)) 237 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_wraps help: remove `Result` from the return type... | 232 | ) -> (core::option::Option<Notification>, core::option::Option<mqttrust::Packet<'static>>) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ help: ...and then change returning expressions | 236 | (notification, request) |
unused `self` argument: mqttrust_core/src/state.rs#L230
warning: unused `self` argument --> mqttrust_core/src/state.rs:230:9 | 230 | &mut self, | ^^^^^^^^^ | = help: consider refactoring to an associated function = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_self
this function's return value is unnecessarily wrapped by `Result`: mqttrust_core/src/state.rs#L218
warning: this function's return value is unnecessarily wrapped by `Result` --> mqttrust_core/src/state.rs:218:5 | 218 | / fn handle_incoming_suback<'a>( 219 | | &mut self, 220 | | suback: Suback<'a>, 221 | | ) -> Result<(Option<Notification>, Option<Packet<'static>>), StateError> { ... | 226 | | Ok((notification, request)) 227 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_wraps help: remove `Result` from the return type... | 221 | ) -> (core::option::Option<Notification>, core::option::Option<mqttrust::Packet<'static>>) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ help: ...and then change returning expressions | 226 | (notification, request) |
this argument is passed by value, but not consumed in the function body: mqttrust_core/src/state.rs#L220
warning: this argument is passed by value, but not consumed in the function body --> mqttrust_core/src/state.rs:220:17 | 220 | suback: Suback<'a>, | ^^^^^^^^^^ help: consider taking a reference instead: `&Suback<'a>` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_value
unused `self` argument: mqttrust_core/src/state.rs#L219
warning: unused `self` argument --> mqttrust_core/src/state.rs:219:9 | 219 | &mut self, | ^^^^^^^^^ | = help: consider refactoring to an associated function = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_self = note: `-W clippy::unused-self` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::unused_self)]`
the following explicit lifetimes could be elided: 'a: mqttrust_core/src/state.rs#L218
warning: the following explicit lifetimes could be elided: 'a --> mqttrust_core/src/state.rs:218:31 | 218 | fn handle_incoming_suback<'a>( | ^^ 219 | &mut self, 220 | suback: Suback<'a>, | ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 218 ~ fn handle_incoming_suback( 219 | &mut self, 220 ~ suback: Suback<'_>, |
this function's return value is unnecessarily wrapped by `Result`: mqttrust_core/src/state.rs#L200
warning: this function's return value is unnecessarily wrapped by `Result` --> mqttrust_core/src/state.rs:200:5 | 200 | / fn handle_incoming_puback( 201 | | &mut self, 202 | | pid: Pid, 203 | | ) -> Result<(Option<Notification>, Option<Packet<'static>>), StateError> { ... | 215 | | } 216 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_wraps = note: `-W clippy::unnecessary-wraps` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::unnecessary_wraps)]` help: remove `Result` from the return type... | 203 | ) -> (core::option::Option<Notification>, core::option::Option<mqttrust::Packet<'static>>) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ help: ...and then change returning expressions | 210 ~ (notification, request) 211 | } else { 212 | error!("Unsolicited puback packet: {:?}", pid.get()); 213 | // Err(StateError::Unsolicited) 214 ~ (None, None) |
this expression creates a reference which is immediately dereferenced by the compiler: mqttrust_core/src/state.rs#L187
warning: this expression creates a reference which is immediately dereferenced by the compiler --> mqttrust_core/src/state.rs:187:76 | 187 | .insert(pid.get(), Inflight::new(StartTime::new(*now), &request.0)) | ^^^^^^^^^^ help: change this to: `request.0` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
this expression creates a reference which is immediately dereferenced by the compiler: mqttrust_core/src/state.rs#L179
warning: this expression creates a reference which is immediately dereferenced by the compiler --> mqttrust_core/src/state.rs:179:76 | 179 | .insert(pid.get(), Inflight::new(StartTime::new(*now), &request.0)) | ^^^^^^^^^^ help: change this to: `request.0` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
this argument (4 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte): mqttrust_core/src/state.rs#L169
warning: this argument (4 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) --> mqttrust_core/src/state.rs:169:14 | 169 | now: &TimerInstantU32<TIMER_HZ>, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `TimerInstantU32<TIMER_HZ>` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
item in documentation is missing backticks: mqttrust_core/src/state.rs#L164
warning: item in documentation is missing backticks --> mqttrust_core/src/state.rs:164:40 | 164 | /// Adds next packet identifier to QoS 1 and 2 publish packets and returns | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 164 | /// Adds next packet identifier to `QoS` 1 and 2 publish packets and returns | ~~~~~
item in documentation is missing backticks: mqttrust_core/src/state.rs#L138
warning: item in documentation is missing backticks --> mqttrust_core/src/state.rs:138:58 | 138 | /// eventloop to put on the network E.g For incoming QoS1 publish packet, | ^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 138 | /// eventloop to put on the network E.g For incoming `QoS1` publish packet, | ~~~~~~
the following explicit lifetimes could be elided: 'b: mqttrust_core/src/state.rs#L141
warning: the following explicit lifetimes could be elided: 'b --> mqttrust_core/src/state.rs:141:35 | 141 | pub fn handle_incoming_packet<'b>( | ^^ 142 | &mut self, 143 | packet: Packet<'b>, | ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes = note: `-W clippy::needless-lifetimes` implied by `-W clippy::all` = help: to override `-W clippy::all` add `#[allow(clippy::needless_lifetimes)]` help: elide the lifetimes | 141 ~ pub fn handle_incoming_packet( 142 | &mut self, 143 ~ packet: Packet<'_>, |
consider adding a `;` to the last statement for consistent formatting: mqttrust_core/src/state.rs#L128
warning: consider adding a `;` to the last statement for consistent formatting --> mqttrust_core/src/state.rs:128:17 | 128 | request.set_pid(pid)? | ^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `request.set_pid(pid)?;` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned
consider adding a `;` to the last statement for consistent formatting: mqttrust_core/src/state.rs#L123
warning: consider adding a `;` to the last statement for consistent formatting --> mqttrust_core/src/state.rs:123:17 | 123 | request.set_pid(pid)? | ^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `request.set_pid(pid)?;` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned = note: `-W clippy::semicolon-if-nothing-returned` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::semicolon_if_nothing_returned)]`
this argument (4 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte): mqttrust_core/src/state.rs#L116
warning: this argument (4 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) --> mqttrust_core/src/state.rs:116:14 | 116 | now: &TimerInstantU32<TIMER_HZ>, | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `TimerInstantU32<TIMER_HZ>` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref = note: `-W clippy::trivially-copy-pass-by-ref` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::trivially_copy_pass_by_ref)]`
this argument is passed by value, but not consumed in the function body: mqttrust_core/src/state.rs#L103
warning: this argument is passed by value, but not consumed in the function body --> mqttrust_core/src/state.rs:103:17 | 103 | packet: Packet<'b>, | ^^^^^^^^^^ help: consider taking a reference instead: `&Packet<'b>` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_value
unnecessary structure name repetition: mqttrust_core/src/state.rs#L87
warning: unnecessary structure name repetition --> mqttrust_core/src/state.rs:87:9 | 87 | MqttState { | ^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
item in documentation is missing backticks: mqttrust_core/src/state.rs#L66
warning: item in documentation is missing backticks --> mqttrust_core/src/state.rs:66:32 | 66 | /// Packet ids on incoming QoS 2 publishes | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 66 | /// Packet ids on incoming `QoS` 2 publishes | ~~~~~
item in documentation is missing backticks: mqttrust_core/src/state.rs#L64
warning: item in documentation is missing backticks --> mqttrust_core/src/state.rs:64:32 | 64 | /// Packet ids of released QoS 2 publishes | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 64 | /// Packet ids of released `QoS` 2 publishes | ~~~~~
item in documentation is missing backticks: mqttrust_core/src/state.rs#L62
warning: item in documentation is missing backticks --> mqttrust_core/src/state.rs:62:18 | 62 | /// Outgoing QoS 1, 2 publishes which aren't acked yet | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 62 | /// Outgoing `QoS` 1, 2 publishes which aren't acked yet | ~~~~~
item name ends with its containing module's name: mqttrust_core/src/state.rs#L55
warning: item name ends with its containing module's name --> mqttrust_core/src/state.rs:55:12 | 55 | pub struct MqttState<const TIMER_HZ: u32> { | ^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_name_repetitions
item in documentation is missing backticks: mqttrust_core/src/state.rs#L39
warning: item in documentation is missing backticks --> mqttrust_core/src/state.rs:39:18 | 39 | /// Non-zero QoS publications require PID | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 39 | /// Non-zero `QoS` publications require PID | ~~~~~
item name starts with its containing module's name: mqttrust_core/src/state.rs#L24
warning: item name starts with its containing module's name --> mqttrust_core/src/state.rs:24:10 | 24 | pub enum StateError { | ^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_name_repetitions
usage of wildcard import: mqttrust_core/src/state.rs#L11
warning: usage of wildcard import --> mqttrust_core/src/state.rs:11:5 | 11 | use mqttrust::encoding::v4::*; | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `mqttrust::encoding::v4::{Connack, ConnectReturnCode, Packet, PacketType, Pid, Publish, QoS, Suback, decoder}` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports = note: `-W clippy::wildcard-imports` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::wildcard_imports)]`
methods with the following characteristics: (`to_*` and `self` type is not `Copy`) usually take `self` by reference: mqttrust_core/src/packet.rs#L54
warning: methods with the following characteristics: (`to_*` and `self` type is not `Copy`) usually take `self` by reference --> mqttrust_core/src/packet.rs:54:21 | 54 | pub fn to_inner(self) -> &'a mut [u8] { | ^^^^ | = help: consider choosing a less ambiguous name = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention = note: `-W clippy::wrong-self-convention` implied by `-W clippy::all` = help: to override `-W clippy::all` add `#[allow(clippy::wrong_self_convention)]`
this expression creates a reference which is immediately dereferenced by the compiler: mqttrust_core/src/packet.rs#L50
warning: this expression creates a reference which is immediately dereferenced by the compiler --> mqttrust_core/src/packet.rs:50:23 | 50 | pid.to_buffer(&mut self.0, &mut offset) | ^^^^^^^^^^^ help: change this to: `self.0` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
item name ends with its containing module's name: mqttrust_core/src/packet.rs#L9
warning: item name ends with its containing module's name --> mqttrust_core/src/packet.rs:9:12 | 9 | pub struct SerializedPacket<'a>(pub &'a mut [u8]); | ^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_name_repetitions
this could be a `const fn`: mqttrust_core/src/options.rs#L164
warning: this could be a `const fn` --> mqttrust_core/src/options.rs:164:5 | 164 | / pub fn credentials(&self) -> (Option<&'a str>, Option<&'a [u8]>) { 165 | | if let Some((username, password)) = self.credentials { 166 | | (Some(username), Some(password)) 167 | | } else { 168 | | (None, None) 169 | | } 170 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust_core/src/options.rs#L164
warning: this method could have a `#[must_use]` attribute --> mqttrust_core/src/options.rs:164:5 | 164 | pub fn credentials(&self) -> (Option<&'a str>, Option<&'a [u8]>) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn credentials(&self) -> (Option<&'a str>, Option<&'a [u8]>)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
missing `#[must_use]` attribute on a method returning `Self`: mqttrust_core/src/options.rs#L156
warning: missing `#[must_use]` attribute on a method returning `Self` --> mqttrust_core/src/options.rs:156:5 | 156 | / pub fn set_credentials(self, username: &'a str, password: &'a [u8]) -> Self { 157 | | Self { 158 | | credentials: Some((username, password)), 159 | | ..self 160 | | } 161 | | } | |_____^ | = help: consider adding the `#[must_use]` attribute to the method or directly to the `Self` type = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#return_self_not_must_use
this could be a `const fn`: mqttrust_core/src/options.rs#L156
warning: this could be a `const fn` --> mqttrust_core/src/options.rs:156:5 | 156 | / pub fn set_credentials(self, username: &'a str, password: &'a [u8]) -> Self { 157 | | Self { 158 | | credentials: Some((username, password)), 159 | | ..self 160 | | } 161 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust_core/src/options.rs#L156
warning: this method could have a `#[must_use]` attribute --> mqttrust_core/src/options.rs:156:5 | 156 | pub fn set_credentials(self, username: &'a str, password: &'a [u8]) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn set_credentials(self, username: &'a str, password: &'a [u8]) -> Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
this could be a `const fn`: mqttrust_core/src/options.rs#L151
warning: this could be a `const fn` --> mqttrust_core/src/options.rs:151:5 | 151 | / pub fn clean_session(&self) -> bool { 152 | | self.clean_session 153 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust_core/src/options.rs#L151
warning: this method could have a `#[must_use]` attribute --> mqttrust_core/src/options.rs:151:5 | 151 | pub fn clean_session(&self) -> bool { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn clean_session(&self) -> bool` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
missing `#[must_use]` attribute on a method returning `Self`: mqttrust_core/src/options.rs#L143
warning: missing `#[must_use]` attribute on a method returning `Self` --> mqttrust_core/src/options.rs:143:5 | 143 | / pub fn set_clean_session(self, clean_session: bool) -> Self { 144 | | Self { 145 | | clean_session, 146 | | ..self 147 | | } 148 | | } | |_____^ | = help: consider adding the `#[must_use]` attribute to the method or directly to the `Self` type = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#return_self_not_must_use
this could be a `const fn`: mqttrust_core/src/options.rs#L143
warning: this could be a `const fn` --> mqttrust_core/src/options.rs:143:5 | 143 | / pub fn set_clean_session(self, clean_session: bool) -> Self { 144 | | Self { 145 | | clean_session, 146 | | ..self 147 | | } 148 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust_core/src/options.rs#L143
warning: this method could have a `#[must_use]` attribute --> mqttrust_core/src/options.rs:143:5 | 143 | pub fn set_clean_session(self, clean_session: bool) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn set_clean_session(self, clean_session: bool) -> Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
this could be a `const fn`: mqttrust_core/src/options.rs#L133
warning: this could be a `const fn` --> mqttrust_core/src/options.rs:133:5 | 133 | / pub fn client_id(&self) -> &'a str { 134 | | self.client_id 135 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust_core/src/options.rs#L133
warning: this method could have a `#[must_use]` attribute --> mqttrust_core/src/options.rs:133:5 | 133 | pub fn client_id(&self) -> &'a str { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn client_id(&self) -> &'a str` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
this could be a `const fn`: mqttrust_core/src/options.rs#L128
warning: this could be a `const fn` --> mqttrust_core/src/options.rs:128:5 | 128 | / pub fn keep_alive_ms(&self) -> u32 { 129 | | self.keep_alive_ms 130 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust_core/src/options.rs#L128
warning: this method could have a `#[must_use]` attribute --> mqttrust_core/src/options.rs:128:5 | 128 | pub fn keep_alive_ms(&self) -> u32 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn keep_alive_ms(&self) -> u32` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
casting `u16` to `u32` may become silently lossy if you later change the type: mqttrust_core/src/options.rs#L122
warning: casting `u16` to `u32` may become silently lossy if you later change the type --> mqttrust_core/src/options.rs:122:28 | 122 | keep_alive_ms: secs as u32 * 1000, | ^^^^^^^^^^^ help: try: `u32::from(secs)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless
only a `panic!` in `if`-then statement: mqttrust_core/src/options.rs#L117
warning: only a `panic!` in `if`-then statement --> mqttrust_core/src/options.rs:117:9 | 117 | / if secs < 5 { 118 | | panic!("Keep alives should be >= 5 secs"); 119 | | } | |_________^ help: try instead: `assert!(!(secs < 5), "Keep alives should be >= 5 secs");` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_assert
missing `#[must_use]` attribute on a method returning `Self`: mqttrust_core/src/options.rs#L116
warning: missing `#[must_use]` attribute on a method returning `Self` --> mqttrust_core/src/options.rs:116:5 | 116 | / pub fn set_keep_alive(self, secs: u16) -> Self { 117 | | if secs < 5 { 118 | | panic!("Keep alives should be >= 5 secs"); 119 | | } ... | 124 | | } 125 | | } | |_____^ | = help: consider adding the `#[must_use]` attribute to the method or directly to the `Self` type = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#return_self_not_must_use
this method could have a `#[must_use]` attribute: mqttrust_core/src/options.rs#L116
warning: this method could have a `#[must_use]` attribute --> mqttrust_core/src/options.rs:116:5 | 116 | pub fn set_keep_alive(self, secs: u16) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn set_keep_alive(self, secs: u16) -> Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
this method could have a `#[must_use]` attribute: mqttrust_core/src/options.rs#L99
warning: this method could have a `#[must_use]` attribute --> mqttrust_core/src/options.rs:99:5 | 99 | pub fn last_will(&self) -> Option<LastWill<'a>> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn last_will(&self) -> Option<LastWill<'a>>` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
missing `#[must_use]` attribute on a method returning `Self`: mqttrust_core/src/options.rs#L92
warning: missing `#[must_use]` attribute on a method returning `Self` --> mqttrust_core/src/options.rs:92:5 | 92 | / pub fn set_last_will(self, will: LastWill<'a>) -> Self { 93 | | Self { 94 | | last_will: Some(will), 95 | | ..self 96 | | } 97 | | } | |_____^ | = help: consider adding the `#[must_use]` attribute to the method or directly to the `Self` type = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#return_self_not_must_use
this could be a `const fn`: mqttrust_core/src/options.rs#L92
warning: this could be a `const fn` --> mqttrust_core/src/options.rs:92:5 | 92 | / pub fn set_last_will(self, will: LastWill<'a>) -> Self { 93 | | Self { 94 | | last_will: Some(will), 95 | | ..self 96 | | } 97 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust_core/src/options.rs#L92
warning: this method could have a `#[must_use]` attribute --> mqttrust_core/src/options.rs:92:5 | 92 | pub fn set_last_will(self, will: LastWill<'a>) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn set_last_will(self, will: LastWill<'a>) -> Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
missing `#[must_use]` attribute on a method returning `Self`: mqttrust_core/src/options.rs#L88
warning: missing `#[must_use]` attribute on a method returning `Self` --> mqttrust_core/src/options.rs:88:5 | 88 | / pub fn set_port(self, port: u16) -> Self { 89 | | Self { port, ..self } 90 | | } | |_____^ | = help: consider adding the `#[must_use]` attribute to the method or directly to the `Self` type = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#return_self_not_must_use
this could be a `const fn`: mqttrust_core/src/options.rs#L88
warning: this could be a `const fn` --> mqttrust_core/src/options.rs:88:5 | 88 | / pub fn set_port(self, port: u16) -> Self { 89 | | Self { port, ..self } 90 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust_core/src/options.rs#L88
warning: this method could have a `#[must_use]` attribute --> mqttrust_core/src/options.rs:88:5 | 88 | pub fn set_port(self, port: u16) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn set_port(self, port: u16) -> Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
missing `#[must_use]` attribute on a method returning `Self`: mqttrust_core/src/options.rs#L81
warning: missing `#[must_use]` attribute on a method returning `Self` --> mqttrust_core/src/options.rs:81:5 | 81 | / pub fn set_broker(self, broker: Broker<'a>) -> Self { 82 | | Self { 83 | | broker_addr: broker, 84 | | ..self 85 | | } 86 | | } | |_____^ | = help: consider adding the `#[must_use]` attribute to the method or directly to the `Self` type = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#return_self_not_must_use = note: `-W clippy::return-self-not-must-use` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::return_self_not_must_use)]`
this could be a `const fn`: mqttrust_core/src/options.rs#L81
warning: this could be a `const fn` --> mqttrust_core/src/options.rs:81:5 | 81 | / pub fn set_broker(self, broker: Broker<'a>) -> Self { 82 | | Self { 83 | | broker_addr: broker, 84 | | ..self 85 | | } 86 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust_core/src/options.rs#L81
warning: this method could have a `#[must_use]` attribute --> mqttrust_core/src/options.rs:81:5 | 81 | pub fn set_broker(self, broker: Broker<'a>) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn set_broker(self, broker: Broker<'a>) -> Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
this method could have a `#[must_use]` attribute: mqttrust_core/src/options.rs#L76
warning: this method could have a `#[must_use]` attribute --> mqttrust_core/src/options.rs:76:5 | 76 | pub fn broker(&self) -> (Broker, u16) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn broker(&self) -> (Broker, u16)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
only a `panic!` in `if`-then statement: mqttrust_core/src/options.rs#L58
warning: only a `panic!` in `if`-then statement --> mqttrust_core/src/options.rs:58:9 | 58 | / if id.starts_with(' ') || id.is_empty() { 59 | | panic!("Invalid client id") 60 | | } | |_________^ help: try instead: `assert!(!(id.starts_with(' ') || id.is_empty()), "Invalid client id");` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_assert = note: `-W clippy::manual-assert` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::manual_assert)]`
this method could have a `#[must_use]` attribute: mqttrust_core/src/options.rs#L57
warning: this method could have a `#[must_use]` attribute --> mqttrust_core/src/options.rs:57:5 | 57 | pub fn new(id: &'a str, broker: Broker<'a>, port: u16) -> MqttOptions<'a> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn new(id: &'a str, broker: Broker<'a>, port: u16) -> MqttOptions<'a>` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
item name ends with its containing module's name: mqttrust_core/src/options.rs#L34
warning: item name ends with its containing module's name --> mqttrust_core/src/options.rs:34:12 | 34 | pub struct MqttOptions<'a> { | ^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_name_repetitions = note: `-W clippy::module-name-repetitions` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::module_name_repetitions)]`
you are deriving `PartialEq` and can implement `Eq`: mqttrust_core/src/options.rs#L4
warning: you are deriving `PartialEq` and can implement `Eq` --> mqttrust_core/src/options.rs:4:24 | 4 | #[derive(Clone, Debug, PartialEq)] | ^^^^^^^^^ help: consider deriving `Eq` as well: `PartialEq, Eq` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_partial_eq_without_eq = note: `-W clippy::derive-partial-eq-without-eq` implied by `-W clippy::nursery` = help: to override `-W clippy::nursery` add `#[allow(clippy::derive_partial_eq_without_eq)]`
casting `usize` to `u32` may truncate the value on targets with 64-bit wide pointers: mqttrust_core/src/eventloop.rs#L547
warning: casting `usize` to `u32` may truncate the value on targets with 64-bit wide pointers --> mqttrust_core/src/eventloop.rs:547:51 | 547 | acc + 1 + length * 0x80_usize.pow(i as u32) | ^^^^^^^^ | = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation help: ... or use `try_from` and handle the error accordingly | 547 | acc + 1 + length * 0x80_usize.pow(u32::try_from(i)) | ~~~~~~~~~~~~~~~~
this expression creates a reference which is immediately dereferenced by the compiler: mqttrust_core/src/eventloop.rs#L420
warning: this expression creates a reference which is immediately dereferenced by the compiler --> mqttrust_core/src/eventloop.rs:420:54 | 420 | let length = nb::block!(network.send(socket, &pkt)).map_err(|_| { | ^^^^ help: change this to: `pkt` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
this lifetime isn't used in the function definition: mqttrust_core/src/eventloop.rs#L410
warning: this lifetime isn't used in the function definition --> mqttrust_core/src/eventloop.rs:410:17 | 410 | pub fn send<'d, N: TcpClientStack<TcpSocket = S> + ?Sized>( | ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes
this expression creates a reference which is immediately dereferenced by the compiler: mqttrust_core/src/eventloop.rs#L395
warning: this expression creates a reference which is immediately dereferenced by the compiler --> mqttrust_core/src/eventloop.rs:395:33 | 395 | let size = encode_slice(&pkt, self.tx_buf.as_mut()).map_err(EventError::Encoding)?; | ^^^^ help: change this to: `pkt` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
this lifetime isn't used in the function definition: mqttrust_core/src/eventloop.rs#L385
warning: this lifetime isn't used in the function definition --> mqttrust_core/src/eventloop.rs:385:24 | 385 | pub fn send_packet<'d, N: TcpClientStack<TcpSocket = S> + ?Sized>( | ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes = note: `-W clippy::extra-unused-lifetimes` implied by `-W clippy::all` = help: to override `-W clippy::all` add `#[allow(clippy::extra_unused_lifetimes)]`
unnecessary structure name repetition: mqttrust_core/src/eventloop.rs#L375
warning: unnecessary structure name repetition --> mqttrust_core/src/eventloop.rs:375:40 | 375 | let (_hostname, socket_addr) = NetworkHandle::<S>::lookup_host(network, broker, port)?; | ^^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self = note: `-W clippy::use-self` implied by `-W clippy::nursery` = help: to override `-W clippy::nursery` add `#[allow(clippy::use_self)]`
use Option::map_or instead of an if let/else: mqttrust_core/src/eventloop.rs#L353
warning: use Option::map_or instead of an if let/else --> mqttrust_core/src/eventloop.rs:353:9 | 353 | / match self.socket { 354 | | Some(ref socket) => network 355 | | .is_connected(socket) 356 | | .map_err(|_e| NetworkError::SocketClosed), 357 | | None => Err(NetworkError::SocketClosed), 358 | | } | |_________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else help: try | 353 ~ self.socket.as_ref().map_or(Err(NetworkError::SocketClosed), |socket| network 354 + .is_connected(socket) 355 + .map_err(|_e| NetworkError::SocketClosed)) |
this argument is passed by value, but not consumed in the function body: mqttrust_core/src/eventloop.rs#L313
warning: this argument is passed by value, but not consumed in the function body --> mqttrust_core/src/eventloop.rs:313:17 | 313 | broker: Broker, | ^^^^^^ help: consider taking a reference instead: `&Broker` | help: consider marking this type as `Copy` --> mqttrust_core/src/options.rs:5:1 | 5 | pub enum Broker<'a> { | ^^^^^^^^^^^^^^^^^^^ = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_value = note: `-W clippy::needless-pass-by-value` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::needless_pass_by_value)]`
casting `u32` to `u16` may truncate the value: mqttrust_core/src/eventloop.rs#L246
warning: casting `u32` to `u16` may truncate the value --> mqttrust_core/src/eventloop.rs:246:33 | 246 | keep_alive: (self.options.keep_alive_ms() / 1000) as u16, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation = note: `-W clippy::cast-possible-truncation` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::cast_possible_truncation)]` help: ... or use `try_from` and handle the error accordingly | 246 | keep_alive: u16::try_from(self.options.keep_alive_ms() / 1000), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
casting `u8` to `u32` may become silently lossy if you later change the type: mqttrust_core/src/eventloop.rs#L223
warning: casting `u8` to `u32` may become silently lossy if you later change the type --> mqttrust_core/src/eventloop.rs:223:63 | 223 | let backoff = base_time_ms.saturating_mul(u32::pow(2, self.connect_counter as u32)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.connect_counter)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless = note: `-W clippy::cast-lossless` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::cast_lossless)]`
docs for function returning `Result` missing `# Errors` section: mqttrust_core/src/eventloop.rs#L194
warning: docs for function returning `Result` missing `# Errors` section --> mqttrust_core/src/eventloop.rs:194:5 | 194 | / pub fn yield_event<N: TcpClientStack<TcpSocket = S> + ?Sized>( 195 | | &mut self, 196 | | network: &mut N, 197 | | ) -> nb::Result<Notification, Infallible> { | |_____________________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc
this expression creates a reference which is immediately dereferenced by the compiler: mqttrust_core/src/eventloop.rs#L185
warning: this expression creates a reference which is immediately dereferenced by the compiler --> mqttrust_core/src/eventloop.rs:185:47 | 185 | self.network_handle.send(network, &packet)?; | ^^^^^^^ help: change this to: `packet` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
explicit `deref_mut` method call: mqttrust_core/src/eventloop.rs#L133
warning: explicit `deref_mut` method call --> mqttrust_core/src/eventloop.rs:133:59 | 133 | let mut packet = SerializedPacket(grant.deref_mut()); | ^^^^^^^^^^^^^^^^^ help: try: `&mut *grant` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_deref_methods
returning the result of a `let` binding from a block: mqttrust_core/src/eventloop.rs#L117
warning: returning the result of a `let` binding from a block --> mqttrust_core/src/eventloop.rs:117:9 | 107 | let qos_space = self.state.outgoing_pub.len() < self.state.outgoing_pub.capacity(); | ----------------------------------------------------------------------------------- unnecessary `let` binding ... 117 | qos_space | ^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return = note: `-W clippy::let-and-return` implied by `-W clippy::all` = help: to override `-W clippy::all` add `#[allow(clippy::let_and_return)]` help: return the expression directly | 107 ~ 108 | ... 116 | // qos_0 || (self.requests.ready() && qos_space) 117 ~ self.state.outgoing_pub.len() < self.state.outgoing_pub.capacity() |
docs for function returning `Result` missing `# Errors` section: mqttrust_core/src/eventloop.rs#L56
warning: docs for function returning `Result` missing `# Errors` section --> mqttrust_core/src/eventloop.rs:56:5 | 56 | / pub fn connect<N: Dns + TcpClientStack<TcpSocket = S> + ?Sized>( 57 | | &mut self, 58 | | network: &mut N, 59 | | ) -> nb::Result<Option<Notification>, EventError> { | |_____________________________________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc = note: `-W clippy::missing-errors-doc` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::missing_errors_doc)]`
explicit `deref_mut` method call: mqttrust_core/src/client.rs#L68
warning: explicit `deref_mut` method call --> mqttrust_core/src/client.rs:68:49 | 68 | let len = encode_slice(&packet, grant.deref_mut()).map_err(|_| MqttError::Full)?; | ^^^^^^^^^^^^^^^^^ help: try: `&mut *grant` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_deref_methods = note: `-W clippy::explicit-deref-methods` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::explicit_deref_methods)]`
this expression creates a reference which is immediately dereferenced by the compiler: mqttrust_core/src/client.rs#L59
warning: this expression creates a reference which is immediately dereferenced by the compiler --> mqttrust_core/src/client.rs:59:9 | 59 | &self.client_id | ^^^^^^^^^^^^^^^ help: change this to: `self.client_id` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow = note: `-W clippy::needless-borrow` implied by `-W clippy::all` = help: to override `-W clippy::all` add `#[allow(clippy::needless_borrow)]`
use Option::map_or instead of an if let/else: mqttrust_core/src/client.rs#L50
warning: use Option::map_or instead of an if let/else --> mqttrust_core/src/client.rs:50:9 | 50 | / match self.producer.take() { 51 | | Some(prod) => Some(prod.into_inner()), 52 | | None => None, 53 | | } | |_________^ help: try: `self.producer.take().map_or(None, |prod| Some(prod.into_inner()))` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else = note: `-W clippy::option-if-let-else` implied by `-W clippy::nursery` = help: to override `-W clippy::nursery` add `#[allow(clippy::option_if_let_else)]`
manual implementation of `Option::map`: mqttrust_core/src/client.rs#L50
warning: manual implementation of `Option::map` --> mqttrust_core/src/client.rs:50:9 | 50 | / match self.producer.take() { 51 | | Some(prod) => Some(prod.into_inner()), 52 | | None => None, 53 | | } | |_________^ help: try: `self.producer.take().map(|prod| prod.into_inner())` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map = note: `-W clippy::manual-map` implied by `-W clippy::all` = help: to override `-W clippy::all` add `#[allow(clippy::manual_map)]`
this could be a `const fn`: mqttrust_core/src/client.rs#L39
warning: this could be a `const fn` --> mqttrust_core/src/client.rs:39:5 | 39 | / pub fn new(producer: FrameProducer<'a, L>, client_id: &'b str) -> Self { 40 | | Self { 41 | | client_id, 42 | | producer: Some(RefCell::new(producer)), 43 | | } 44 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn = note: `-W clippy::missing-const-for-fn` implied by `-W clippy::nursery` = help: to override `-W clippy::nursery` add `#[allow(clippy::missing_const_for_fn)]`
this method could have a `#[must_use]` attribute: mqttrust_core/src/client.rs#L39
warning: this method could have a `#[must_use]` attribute --> mqttrust_core/src/client.rs:39:5 | 39 | pub fn new(producer: FrameProducer<'a, L>, client_id: &'b str) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn new(producer: FrameProducer<'a, L>, client_id: &'b str) -> Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate = note: `-W clippy::must-use-candidate` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::must_use_candidate)]`
item in documentation is missing backticks: mqttrust_core/src/client.rs#L30
warning: item in documentation is missing backticks --> mqttrust_core/src/client.rs:30:50 | 30 | /// Packets are read out from queue only when [Eventloop::yield_event](crate::eventloop::EventLoop::yield_event) is called. | ^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 30 | /// Packets are read out from queue only when [`Eventloop::yield_event`](crate::eventloop::EventLoop::yield_event) is called. | ~~~~~~~~~~~~~~~~~~~~~~~~
item in documentation is missing backticks: mqttrust_core/src/client.rs#L27
warning: item in documentation is missing backticks --> mqttrust_core/src/client.rs:27:70 | 27 | /// into MQTT frame plus ~2 bytes (depending on grant length) for [FrameProducer](bbqueue::framed) header. | ^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 27 | /// into MQTT frame plus ~2 bytes (depending on grant length) for [`FrameProducer`](bbqueue::framed) header. | ~~~~~~~~~~~~~~~
item in documentation is missing backticks: mqttrust_core/src/client.rs#L25
warning: item in documentation is missing backticks --> mqttrust_core/src/client.rs:25:8 | 25 | /// [FrameProducer](bbqueue::framed) header bytes. | ^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown = note: `-W clippy::doc-markdown` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::doc_markdown)]` help: try | 25 | /// [`FrameProducer`](bbqueue::framed) header bytes. | ~~~~~~~~~~~~~~~
method `into_result` is never used: mqttrust_core/src/fmt.rs#L226
warning: method `into_result` is never used --> mqttrust_core/src/fmt.rs:226:8 | 223 | pub trait Try { | --- method in this trait ... 226 | fn into_result(self) -> Result<Self::Ok, Self::Error>; | ^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
creating a mutable reference to mutable static is discouraged: mqttrust_core/src/state.rs#L84
warning: creating a mutable reference to mutable static is discouraged --> mqttrust_core/src/state.rs:84:41 | 84 | BoxedPublish::grow(unsafe { &mut PUBLISH_MEM }); | ^^^^^^^^^^^^^^^^ mutable reference to mutable static | = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447> = note: this will be a hard error in the 2024 edition = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior = note: `#[warn(static_mut_refs)]` on by default help: use `addr_of_mut!` instead to create a raw pointer | 84 | BoxedPublish::grow(unsafe { addr_of_mut!(PUBLISH_MEM) }); | ~~~~~~~~~~~~~~~~~~~~~~~~~
redundant else block: mqttrust_core/src/packet.rs#L32
warning: redundant else block --> mqttrust_core/src/packet.rs:32:24 | 32 | } else { | ________________________^ 33 | | offset += len; 34 | | } | |_________________^ | = help: remove the `else` block and move the contents out = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_else = note: `-W clippy::redundant-else` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::redundant_else)]`
this argument is a mutable reference, but not used mutably: mqttrust/src/encoding/v4/encoder.rs#L112
warning: this argument is a mutable reference, but not used mutably --> mqttrust/src/encoding/v4/encoder.rs:112:55 | 112 | pub(crate) fn check_remaining(buf: &mut [u8], offset: &mut usize, len: usize) -> Result<(), Error> { | ^^^^^^^^^^ help: consider changing to: `&usize` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_ref_mut
this argument is a mutable reference, but not used mutably: mqttrust/src/encoding/v4/encoder.rs#L112
warning: this argument is a mutable reference, but not used mutably --> mqttrust/src/encoding/v4/encoder.rs:112:36 | 112 | pub(crate) fn check_remaining(buf: &mut [u8], offset: &mut usize, len: usize) -> Result<(), Error> { | ^^^^^^^^^ help: consider changing to: `&[u8]` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_ref_mut = note: `-W clippy::needless-pass-by-ref-mut` implied by `-W clippy::nursery` = help: to override `-W clippy::nursery` add `#[allow(clippy::needless_pass_by_ref_mut)]`
docs for function returning `Result` missing `# Errors` section: mqttrust/src/lib.rs#L46
warning: docs for function returning `Result` missing `# Errors` section --> mqttrust/src/lib.rs:46:5 | 46 | fn unsubscribe(&self, topics: &[&str]) -> Result<(), MqttError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc
docs for function returning `Result` missing `# Errors` section: mqttrust/src/lib.rs#L41
warning: docs for function returning `Result` missing `# Errors` section --> mqttrust/src/lib.rs:41:5 | 41 | fn subscribe(&self, topics: &[SubscribeTopic<'_>]) -> Result<(), MqttError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc
docs for function returning `Result` missing `# Errors` section: mqttrust/src/lib.rs#L28
warning: docs for function returning `Result` missing `# Errors` section --> mqttrust/src/lib.rs:28:5 | 28 | fn publish(&self, topic_name: &str, payload: &[u8], qos: QoS) -> Result<(), MqttError> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc
docs for function returning `Result` missing `# Errors` section: mqttrust/src/lib.rs#L24
warning: docs for function returning `Result` missing `# Errors` section --> mqttrust/src/lib.rs:24:5 | 24 | fn send(&self, packet: Packet<'_>) -> Result<(), MqttError>; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc
item in documentation is missing backticks: mqttrust/src/lib.rs#L17
warning: item in documentation is missing backticks --> mqttrust/src/lib.rs:17:9 | 17 | /// RefCell borrow fault | ^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 17 | /// `RefCell` borrow fault | ~~~~~~~~~
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L218
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:218:13 | 218 | QosPid::ExactlyOnce(_) => QoS::ExactlyOnce, | ^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L217
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:217:13 | 217 | QosPid::AtLeastOnce(_) => QoS::AtLeastOnce, | ^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L216
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:216:13 | 216 | QosPid::AtMostOnce => QoS::AtMostOnce, | ^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
this could be a `const fn`: mqttrust/src/encoding/v4/utils.rs#L214
warning: this could be a `const fn` --> mqttrust/src/encoding/v4/utils.rs:214:5 | 214 | / pub fn qos(self) -> QoS { 215 | | match self { 216 | | QosPid::AtMostOnce => QoS::AtMostOnce, 217 | | QosPid::AtLeastOnce(_) => QoS::AtLeastOnce, 218 | | QosPid::ExactlyOnce(_) => QoS::ExactlyOnce, 219 | | } 220 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust/src/encoding/v4/utils.rs#L214
warning: this method could have a `#[must_use]` attribute --> mqttrust/src/encoding/v4/utils.rs:214:5 | 214 | pub fn qos(self) -> QoS { | ^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn qos(self) -> QoS` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L207
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:207:13 | 207 | QosPid::ExactlyOnce(p) => Some(p), | ^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L206
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:206:13 | 206 | QosPid::AtLeastOnce(p) => Some(p), | ^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L205
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:205:13 | 205 | QosPid::AtMostOnce => None, | ^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
this match arm has an identical body to another arm: mqttrust/src/encoding/v4/utils.rs#L206
warning: this match arm has an identical body to another arm --> mqttrust/src/encoding/v4/utils.rs:206:13 | 206 | QosPid::AtLeastOnce(p) => Some(p), | ----------------------^^^^^^^^^^^ | | | help: try merging the arm patterns: `QosPid::AtLeastOnce(p) | QosPid::ExactlyOnce(p)` | = help: or try changing either arm body note: other arm here --> mqttrust/src/encoding/v4/utils.rs:207:13 | 207 | QosPid::ExactlyOnce(p) => Some(p), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_same_arms = note: `-W clippy::match-same-arms` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::match_same_arms)]`
this could be a `const fn`: mqttrust/src/encoding/v4/utils.rs#L203
warning: this could be a `const fn` --> mqttrust/src/encoding/v4/utils.rs:203:5 | 203 | / pub fn pid(self) -> Option<Pid> { 204 | | match self { 205 | | QosPid::AtMostOnce => None, 206 | | QosPid::AtLeastOnce(p) => Some(p), 207 | | QosPid::ExactlyOnce(p) => Some(p), 208 | | } 209 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust/src/encoding/v4/utils.rs#L203
warning: this method could have a `#[must_use]` attribute --> mqttrust/src/encoding/v4/utils.rs:203:5 | 203 | pub fn pid(self) -> Option<Pid> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn pid(self) -> Option<Pid>` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L177
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:177:21 | 177 | 2 => Ok(QoS::ExactlyOnce), | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L176
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:176:21 | 176 | 1 => Ok(QoS::AtLeastOnce), | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L175
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:175:21 | 175 | 0 => Ok(QoS::AtMostOnce), | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L173
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:173:47 | 173 | pub(crate) fn from_u8(byte: u8) -> Result<QoS, Error> { | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
this could be a `const fn`: mqttrust/src/encoding/v4/utils.rs#L173
warning: this could be a `const fn` --> mqttrust/src/encoding/v4/utils.rs:173:5 | 173 | / pub(crate) fn from_u8(byte: u8) -> Result<QoS, Error> { 174 | | match byte { 175 | | 0 => Ok(QoS::AtMostOnce), 176 | | 1 => Ok(QoS::AtLeastOnce), ... | 179 | | } 180 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L169
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:169:13 | 169 | QoS::ExactlyOnce => 2, | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L168
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:168:13 | 168 | QoS::AtLeastOnce => 1, | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L167
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:167:13 | 167 | QoS::AtMostOnce => 0, | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte): mqttrust/src/encoding/v4/utils.rs#L165
warning: this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) --> mqttrust/src/encoding/v4/utils.rs:165:25 | 165 | pub(crate) fn as_u8(&self) -> u8 { | ^^^^^ help: consider passing by value instead: `self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
this could be a `const fn`: mqttrust/src/encoding/v4/utils.rs#L165
warning: this could be a `const fn` --> mqttrust/src/encoding/v4/utils.rs:165:5 | 165 | / pub(crate) fn as_u8(&self) -> u8 { 166 | | match *self { 167 | | QoS::AtMostOnce => 0, 168 | | QoS::AtLeastOnce => 1, 169 | | QoS::ExactlyOnce => 2, 170 | | } 171 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L143
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:143:28 | 143 | Some(nz) => Ok(Pid(nz)), | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
use Option::map_or_else instead of an if let/else: mqttrust/src/encoding/v4/utils.rs#L142
warning: use Option::map_or_else instead of an if let/else --> mqttrust/src/encoding/v4/utils.rs:142:9 | 142 | / match NonZeroU16::new(u) { 143 | | Some(nz) => Ok(Pid(nz)), 144 | | None => Err(Error::InvalidPid(u)), 145 | | } | |_________^ help: try: `NonZeroU16::new(u).map_or_else(|| Err(Error::InvalidPid(u)), |nz| Ok(Pid(nz)))` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else = note: `-W clippy::option-if-let-else` implied by `-W clippy::nursery` = help: to override `-W clippy::nursery` add `#[allow(clippy::option_if_let_else)]`
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L126
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:126:9 | 126 | Pid(NonZeroU16::new(n).unwrap()) | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L120
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:120:29 | 120 | fn sub(self, u: u16) -> Pid { | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L117
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:117:19 | 117 | type Output = Pid; | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L112
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:112:9 | 112 | Pid(NonZeroU16::new(n).unwrap()) | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L107
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:107:29 | 107 | fn add(self, u: u16) -> Pid { | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L104
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:104:19 | 104 | type Output = Pid; | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L99
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:99:9 | 99 | Pid::new() | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L98
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:98:21 | 98 | fn default() -> Pid { | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
docs for function returning `Result` missing `# Errors` section: mqttrust/src/encoding/v4/utils.rs#L92
warning: docs for function returning `Result` missing `# Errors` section --> mqttrust/src/encoding/v4/utils.rs:92:5 | 92 | pub fn to_buffer(self, buf: &mut [u8], offset: &mut usize) -> Result<(), Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc
casting `u8` to `u16` may become silently lossy if you later change the type: mqttrust/src/encoding/v4/utils.rs#L87
warning: casting `u8` to `u16` may become silently lossy if you later change the type --> mqttrust/src/encoding/v4/utils.rs:87:50 | 87 | let pid = ((buf[*offset] as u16) << 8) | buf[*offset + 1] as u16; | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(buf[*offset + 1])` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless
casting `u8` to `u16` may become silently lossy if you later change the type: mqttrust/src/encoding/v4/utils.rs#L87
warning: casting `u8` to `u16` may become silently lossy if you later change the type --> mqttrust/src/encoding/v4/utils.rs:87:20 | 87 | let pid = ((buf[*offset] as u16) << 8) | buf[*offset + 1] as u16; | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(buf[*offset])` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless
this could be a `const fn`: mqttrust/src/encoding/v4/utils.rs#L82
warning: this could be a `const fn` --> mqttrust/src/encoding/v4/utils.rs:82:5 | 82 | / pub fn get(self) -> u16 { 83 | | self.0.get() 84 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust/src/encoding/v4/utils.rs#L82
warning: this method could have a `#[must_use]` attribute --> mqttrust/src/encoding/v4/utils.rs:82:5 | 82 | pub fn get(self) -> u16 { | ^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn get(self) -> u16` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
unnecessary structure name repetition: mqttrust/src/encoding/v4/utils.rs#L78
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/utils.rs:78:9 | 78 | Pid(NonZeroU16::new(1).unwrap()) | ^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
docs for function which may panic missing `# Panics` section: mqttrust/src/encoding/v4/utils.rs#L77
warning: docs for function which may panic missing `# Panics` section --> mqttrust/src/encoding/v4/utils.rs:77:5 | 77 | pub fn new() -> Self { | ^^^^^^^^^^^^^^^^^^^^ | note: first possible panic found here --> mqttrust/src/encoding/v4/utils.rs:78:13 | 78 | Pid(NonZeroU16::new(1).unwrap()) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_panics_doc = note: `-W clippy::missing-panics-doc` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::missing_panics_doc)]`
this method could have a `#[must_use]` attribute: mqttrust/src/encoding/v4/utils.rs#L77
warning: this method could have a `#[must_use]` attribute --> mqttrust/src/encoding/v4/utils.rs:77:5 | 77 | pub fn new() -> Self { | ^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn new() -> Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
variables can be used directly in the `format!` string: mqttrust/src/encoding/v4/utils.rs#L39
warning: variables can be used directly in the `format!` string --> mqttrust/src/encoding/v4/utils.rs:39:9 | 39 | write!(f, "{:?}", self) | ^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args = note: `-W clippy::uninlined-format-args` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::uninlined_format_args)]` help: change this to | 39 - write!(f, "{:?}", self) 39 + write!(f, "{self:?}") |
item in documentation is missing backticks: mqttrust/src/encoding/v4/utils.rs#L26
warning: item in documentation is missing backticks --> mqttrust/src/encoding/v4/utils.rs:26:73 | 26 | /// Tried to decode an invalid fixed header (packet type, flags, or remaining_length). | ^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 26 | /// Tried to decode an invalid fixed header (packet type, flags, or `remaining_length`). | ~~~~~~~~~~~~~~~~~~
item in documentation is missing backticks: mqttrust/src/encoding/v4/utils.rs#L22
warning: item in documentation is missing backticks --> mqttrust/src/encoding/v4/utils.rs:22:27 | 22 | /// Tried to decode a ConnectReturnCode > 5. | ^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 22 | /// Tried to decode a `ConnectReturnCode` > 5. | ~~~~~~~~~~~~~~~~~~~
item in documentation is missing backticks: mqttrust/src/encoding/v4/utils.rs#L20
warning: item in documentation is missing backticks --> mqttrust/src/encoding/v4/utils.rs:20:27 | 20 | /// Tried to decode a QoS > 2. | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 20 | /// Tried to decode a `QoS` > 2. | ~~~~~
item in documentation is missing backticks: mqttrust/src/encoding/v4/subscribe.rs#L259
warning: item in documentation is missing backticks --> mqttrust/src/encoding/v4/subscribe.rs:259:26 | 259 | /// Length: pid(2) + topic.for_each(2+len) | ^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 259 | /// Length: pid(2) + `topic.for_each(2+len`) | ~~~~~~~~~~~~~~~~~~~~~~
this could be a `const fn`: mqttrust/src/encoding/v4/subscribe.rs#L241
warning: this could be a `const fn` --> mqttrust/src/encoding/v4/subscribe.rs:241:5 | 241 | / pub fn pid(&self) -> Option<Pid> { 242 | | self.pid 243 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust/src/encoding/v4/subscribe.rs#L241
warning: this method could have a `#[must_use]` attribute --> mqttrust/src/encoding/v4/subscribe.rs:241:5 | 241 | pub fn pid(&self) -> Option<Pid> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn pid(&self) -> Option<Pid>` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
this could be a `const fn`: mqttrust/src/encoding/v4/subscribe.rs#L230
warning: this could be a `const fn` --> mqttrust/src/encoding/v4/subscribe.rs:230:5 | 230 | / pub fn new(topics: &'a [&'a str]) -> Self { 231 | | Self { 232 | | pid: None, 233 | | topics: List::Owned(topics), 234 | | } 235 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust/src/encoding/v4/subscribe.rs#L230
warning: this method could have a `#[must_use]` attribute --> mqttrust/src/encoding/v4/subscribe.rs:230:5 | 230 | pub fn new(topics: &'a [&'a str]) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn new(topics: &'a [&'a str]) -> Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
item in documentation is missing backticks: mqttrust/src/encoding/v4/subscribe.rs#L200
warning: item in documentation is missing backticks --> mqttrust/src/encoding/v4/subscribe.rs:200:26 | 200 | /// Length: pid(2) + topic.for_each(2+len + qos(1)) | ^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 200 | /// Length: pid(2) + `topic.for_each(2+len` + qos(1)) | ~~~~~~~~~~~~~~~~~~~~~~
this could be a `const fn`: mqttrust/src/encoding/v4/subscribe.rs#L182
warning: this could be a `const fn` --> mqttrust/src/encoding/v4/subscribe.rs:182:5 | 182 | / pub fn pid(&self) -> Option<Pid> { 183 | | self.pid 184 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust/src/encoding/v4/subscribe.rs#L182
warning: this method could have a `#[must_use]` attribute --> mqttrust/src/encoding/v4/subscribe.rs:182:5 | 182 | pub fn pid(&self) -> Option<Pid> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn pid(&self) -> Option<Pid>` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
this could be a `const fn`: mqttrust/src/encoding/v4/subscribe.rs#L171
warning: this could be a `const fn` --> mqttrust/src/encoding/v4/subscribe.rs:171:5 | 171 | / pub fn new(topics: &'a [SubscribeTopic<'a>]) -> Self { 172 | | Self { 173 | | pid: None, 174 | | topics: List::Owned(topics), 175 | | } 176 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust/src/encoding/v4/subscribe.rs#L171
warning: this method could have a `#[must_use]` attribute --> mqttrust/src/encoding/v4/subscribe.rs:171:5 | 171 | pub fn new(topics: &'a [SubscribeTopic<'a>]) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn new(topics: &'a [SubscribeTopic<'a>]) -> Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
you are deriving `PartialEq` and can implement `Eq`: mqttrust/src/encoding/v4/subscribe.rs#L155
warning: you are deriving `PartialEq` and can implement `Eq` --> mqttrust/src/encoding/v4/subscribe.rs:155:24 | 155 | #[derive(Debug, Clone, PartialEq)] | ^^^^^^^^^ help: consider deriving `Eq` as well: `PartialEq, Eq` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_partial_eq_without_eq
you are deriving `PartialEq` and can implement `Eq`: mqttrust/src/encoding/v4/subscribe.rs#L116
warning: you are deriving `PartialEq` and can implement `Eq` --> mqttrust/src/encoding/v4/subscribe.rs:116:24 | 116 | #[derive(Debug, Clone, PartialEq)] | ^^^^^^^^^ help: consider deriving `Eq` as well: `PartialEq, Eq` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_partial_eq_without_eq
`IntoIterator` implemented for a reference type without an `iter` method: mqttrust/src/encoding/v4/subscribe.rs#L100
warning: `IntoIterator` implemented for a reference type without an `iter` method --> mqttrust/src/encoding/v4/subscribe.rs:100:1 | 100 | / impl<'a, T> IntoIterator for &'a List<'a, T> 101 | | where 102 | | T: FromBuffer<'a, Item = T> + Clone, 103 | | { ... | 113 | | } 114 | | } | |_^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_without_iter = note: `-W clippy::into-iter-without-iter` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::into_iter_without_iter)]` help: consider implementing `iter` | 100 + 101 + impl List<'a, T> { 102 + fn iter(&self) -> ListIter<'a, T> { 103 + <&Self as IntoIterator>::into_iter(self) 104 + } 105 + } |
this method could have a `#[must_use]` attribute: mqttrust/src/encoding/v4/subscribe.rs#L85
warning: this method could have a `#[must_use]` attribute --> mqttrust/src/encoding/v4/subscribe.rs:85:5 | 85 | pub fn len(&self) -> usize { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn len(&self) -> usize` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
enum `List` has a public `len` method, but no `is_empty` method: mqttrust/src/encoding/v4/subscribe.rs#L85
warning: enum `List` has a public `len` method, but no `is_empty` method --> mqttrust/src/encoding/v4/subscribe.rs:85:5 | 85 | pub fn len(&self) -> usize { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty
unnecessary structure name repetition: mqttrust/src/encoding/v4/subscribe.rs#L70
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/subscribe.rs:70:13 | 70 | SubscribeReturnCodes::Success(qos) => qos.as_u8(), | ^^^^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/subscribe.rs#L69
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/subscribe.rs:69:13 | 69 | SubscribeReturnCodes::Failure => 0x80, | ^^^^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte): mqttrust/src/encoding/v4/subscribe.rs#L67
warning: this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) --> mqttrust/src/encoding/v4/subscribe.rs:67:25 | 67 | pub(crate) fn as_u8(&self) -> u8 { | ^^^^^ help: consider passing by value instead: `self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
unnecessary structure name repetition: mqttrust/src/encoding/v4/subscribe.rs#L61
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/subscribe.rs:61:16 | 61 | Ok(SubscribeReturnCodes::Success(QoS::from_u8(code)?)) | ^^^^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/subscribe.rs#L59
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/subscribe.rs:59:16 | 59 | Ok(SubscribeReturnCodes::Failure) | ^^^^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
item name starts with its containing module's name: mqttrust/src/encoding/v4/subscribe.rs#L46
warning: item name starts with its containing module's name --> mqttrust/src/encoding/v4/subscribe.rs:46:10 | 46 | pub enum SubscribeReturnCodes { | ^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_name_repetitions
docs for function returning `Result` missing `# Errors` section: mqttrust/src/encoding/v4/subscribe.rs#L37
warning: docs for function returning `Result` missing `# Errors` section --> mqttrust/src/encoding/v4/subscribe.rs:37:5 | 37 | fn from_buffer(buf: &'a [u8], offset: &mut usize) -> Result<Self::Item, Error>; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc
you are deriving `PartialEq` and can implement `Eq`: mqttrust/src/encoding/v4/subscribe.rs#L10
warning: you are deriving `PartialEq` and can implement `Eq` --> mqttrust/src/encoding/v4/subscribe.rs:10:24 | 10 | #[derive(Debug, Clone, PartialEq)] | ^^^^^^^^^ help: consider deriving `Eq` as well: `PartialEq, Eq` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_partial_eq_without_eq
item name starts with its containing module's name: mqttrust/src/encoding/v4/subscribe.rs#L11
warning: item name starts with its containing module's name --> mqttrust/src/encoding/v4/subscribe.rs:11:12 | 11 | pub struct SubscribeTopic<'a> { | ^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_name_repetitions
usage of wildcard import: mqttrust/src/encoding/v4/subscribe.rs#L3
warning: usage of wildcard import --> mqttrust/src/encoding/v4/subscribe.rs:3:37 | 3 | use super::{decoder::*, encoder::*, *}; | ^ help: try: `Error, Pid, QoS` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports
usage of wildcard import: mqttrust/src/encoding/v4/subscribe.rs#L3
warning: usage of wildcard import --> mqttrust/src/encoding/v4/subscribe.rs:3:25 | 3 | use super::{decoder::*, encoder::*, *}; | ^^^^^^^^^^ help: try: `encoder::{check_remaining, write_length, write_string, write_u8}` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports
usage of wildcard import: mqttrust/src/encoding/v4/subscribe.rs#L3
warning: usage of wildcard import --> mqttrust/src/encoding/v4/subscribe.rs:3:13 | 3 | use super::{decoder::*, encoder::*, *}; | ^^^^^^^^^^ help: try: `decoder::read_str` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports
this could be a `const fn`: mqttrust/src/encoding/v4/publish.rs#L42
warning: this could be a `const fn` --> mqttrust/src/encoding/v4/publish.rs:42:5 | 42 | / pub(crate) fn len(&self) -> usize { 43 | | // Length: topic (2+len) + pid (0/2) + payload (len) 44 | | 2 + self.topic_name.len() 45 | | + match self.qos { ... | 49 | | + self.payload.len() 50 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this argument (4 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte): mqttrust/src/encoding/v4/publish.rs#L18
warning: this argument (4 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) --> mqttrust/src/encoding/v4/publish.rs:18:17 | 18 | header: &Header, | ^^^^^^^ help: consider passing by value instead: `Header` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
you are deriving `PartialEq` and can implement `Eq`: mqttrust/src/encoding/v4/publish.rs#L6
warning: you are deriving `PartialEq` and can implement `Eq` --> mqttrust/src/encoding/v4/publish.rs:6:24 | 6 | #[derive(Debug, Clone, PartialEq)] | ^^^^^^^^^ help: consider deriving `Eq` as well: `PartialEq, Eq` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_partial_eq_without_eq
usage of wildcard import: mqttrust/src/encoding/v4/publish.rs#L1
warning: usage of wildcard import --> mqttrust/src/encoding/v4/publish.rs:1:37 | 1 | use super::{decoder::*, encoder::*, *}; | ^ help: try: `Error, Pid, QoS` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports
usage of wildcard import: mqttrust/src/encoding/v4/publish.rs#L1
warning: usage of wildcard import --> mqttrust/src/encoding/v4/publish.rs:1:25 | 1 | use super::{decoder::*, encoder::*, *}; | ^^^^^^^^^^ help: try: `encoder::{check_remaining, write_length, write_string, write_u16, write_u8}` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports
usage of wildcard import: mqttrust/src/encoding/v4/publish.rs#L1
warning: usage of wildcard import --> mqttrust/src/encoding/v4/publish.rs:1:13 | 1 | use super::{decoder::*, encoder::*, *}; | ^^^^^^^^^^ help: try: `decoder::{Header, read_str}` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports
item name starts with its containing module's name: mqttrust/src/encoding/v4/packet.rs#L137
warning: item name starts with its containing module's name --> mqttrust/src/encoding/v4/packet.rs:137:10 | 137 | pub enum PacketType { | ^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_name_repetitions
this method could have a `#[must_use]` attribute: mqttrust/src/encoding/v4/packet.rs#L88
warning: this method could have a `#[must_use]` attribute --> mqttrust/src/encoding/v4/packet.rs:88:5 | 88 | pub fn len(&self) -> usize { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn len(&self) -> usize` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
enum `Packet` has a public `len` method, but no `is_empty` method: mqttrust/src/encoding/v4/packet.rs#L88
warning: enum `Packet` has a public `len` method, but no `is_empty` method --> mqttrust/src/encoding/v4/packet.rs:88:5 | 88 | pub fn len(&self) -> usize { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty = note: `-W clippy::len-without-is-empty` implied by `-W clippy::all` = help: to override `-W clippy::all` add `#[allow(clippy::len_without_is_empty)]`
this could be a `const fn`: mqttrust/src/encoding/v4/packet.rs#L69
warning: this could be a `const fn` --> mqttrust/src/encoding/v4/packet.rs:69:5 | 69 | / pub fn get_type(&self) -> PacketType { 70 | | match self { 71 | | Packet::Connect(_) => PacketType::Connect, 72 | | Packet::Connack(_) => PacketType::Connack, ... | 85 | | } 86 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
this method could have a `#[must_use]` attribute: mqttrust/src/encoding/v4/packet.rs#L69
warning: this method could have a `#[must_use]` attribute --> mqttrust/src/encoding/v4/packet.rs:69:5 | 69 | pub fn get_type(&self) -> PacketType { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn get_type(&self) -> PacketType` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate = note: `-W clippy::must-use-candidate` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::must_use_candidate)]`
you should put bare URLs between `<`/`>` or make a proper Markdown link: mqttrust/src/encoding/v4/packet.rs#L3
warning: you should put bare URLs between `<`/`>` or make a proper Markdown link --> mqttrust/src/encoding/v4/packet.rs:3:5 | 3 | /// https://docs.solace.com/MQTT-311-Prtl-Conformance-Spec/MQTT%20Control%20Packets.htm#_Toc430864901 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown
usage of wildcard import: mqttrust/src/encoding/v4/packet.rs#L1
warning: usage of wildcard import --> mqttrust/src/encoding/v4/packet.rs:1:5 | 1 | use super::*; | ^^^^^^^^ help: try: `super::{Connack, Connect, Pid, Publish, Suback, Subscribe, Unsubscribe}` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports
casting `usize` to `u16` may truncate the value: mqttrust/src/encoding/v4/encoder.rs#L167
warning: casting `usize` to `u16` may truncate the value --> mqttrust/src/encoding/v4/encoder.rs:167:28 | 167 | write_u16(buf, offset, bytes.len() as u16)?; | ^^^^^^^^^^^^^^^^^^ | = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation help: ... or use `try_from` and handle the error accordingly | 167 | write_u16(buf, offset, u16::try_from(bytes.len()))?; | ~~~~~~~~~~~~~~~~~~~~~~~~~~
this function's return value is unnecessary: mqttrust/src/encoding/v4/encoder.rs#L155
warning: this function's return value is unnecessary --> mqttrust/src/encoding/v4/encoder.rs:155:1 | 155 | / pub(crate) fn write_u8(buf: &mut [u8], offset: &mut usize, val: u8) -> Result<(), Error> { 156 | | buf[*offset] = val; 157 | | *offset += 1; 158 | | Ok(()) 159 | | } | |_^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_wraps = note: `-W clippy::unnecessary-wraps` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::unnecessary_wraps)]` help: remove the return type... | 155 | pub(crate) fn write_u8(buf: &mut [u8], offset: &mut usize, val: u8) -> Result<(), Error> { | ~~~~~~~~~~~~~~~~~ help: ...and then remove returned values | 158 - Ok(()) 158 + |
casting `usize` to `u8` may truncate the value: mqttrust/src/encoding/v4/encoder.rs#L144
warning: casting `usize` to `u8` may truncate the value --> mqttrust/src/encoding/v4/encoder.rs:144:24 | 144 | let mut byte = (x % 128) as u8; | ^^^^^^^^^^^^^^^ | = help: if this is intentional allow the lint with `#[allow(clippy::cast_possible_truncation)]` ... = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_possible_truncation = note: `-W clippy::cast-possible-truncation` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::cast_possible_truncation)]` help: ... or use `try_from` and handle the error accordingly | 144 | let mut byte = u8::try_from(x % 128); | ~~~~~~~~~~~~~~~~~~~~~
Documentation
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2, actions-rs/toolchain@v1, actions-rs/cargo@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Documentation
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2, actions-rs/toolchain@v1, actions-rs/cargo@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Documentation
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Documentation
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
you should put bare URLs between `<`/`>` or make a proper Markdown link: mqttrust/src/encoding/v4/encoder.rs#L120
warning: you should put bare URLs between `<`/`>` or make a proper Markdown link --> mqttrust/src/encoding/v4/encoder.rs:120:5 | 120 | /// http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718023 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown
Documentation
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Documentation
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
item in documentation is missing backticks: mqttrust/src/encoding/v4/encoder.rs#L111
warning: item in documentation is missing backticks --> mqttrust/src/encoding/v4/encoder.rs:111:5 | 111 | /// Result::Err instead of panicking. | ^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 111 | /// `Result::Err` instead of panicking. | ~~~~~~~~~~~~~
Documentation: mqttrust/src/fmt.rs#L226
method `into_result` is never used
Documentation
`mqttrust` (lib) generated 1 warning
docs for function returning `Result` missing `# Errors` section: mqttrust/src/encoding/v4/encoder.rs#L28
warning: docs for function returning `Result` missing `# Errors` section --> mqttrust/src/encoding/v4/encoder.rs:28:1 | 28 | pub fn encode_slice(packet: &Packet, buf: &mut [u8]) -> Result<usize, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc
unnecessary structure name repetition: mqttrust/src/encoding/v4/decoder.rs#L95
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/decoder.rs:95:12 | 95 | Ok(Header { | ^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
bit mask could be simplified with a call to `trailing_zeros`: mqttrust/src/encoding/v4/decoder.rs#L89
warning: bit mask could be simplified with a call to `trailing_zeros` --> mqttrust/src/encoding/v4/decoder.rs:89:44 | 89 | 14 => (PacketType::Disconnect, hd & 0b1111 == 0), | ^^^^^^^^^^^^^^^^ help: try: `hd.trailing_zeros() >= 4` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask
bit mask could be simplified with a call to `trailing_zeros`: mqttrust/src/encoding/v4/decoder.rs#L88
warning: bit mask could be simplified with a call to `trailing_zeros` --> mqttrust/src/encoding/v4/decoder.rs:88:42 | 88 | 13 => (PacketType::Pingresp, hd & 0b1111 == 0), | ^^^^^^^^^^^^^^^^ help: try: `hd.trailing_zeros() >= 4` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask
bit mask could be simplified with a call to `trailing_zeros`: mqttrust/src/encoding/v4/decoder.rs#L87
warning: bit mask could be simplified with a call to `trailing_zeros` --> mqttrust/src/encoding/v4/decoder.rs:87:41 | 87 | 12 => (PacketType::Pingreq, hd & 0b1111 == 0), | ^^^^^^^^^^^^^^^^ help: try: `hd.trailing_zeros() >= 4` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask
bit mask could be simplified with a call to `trailing_zeros`: mqttrust/src/encoding/v4/decoder.rs#L86
warning: bit mask could be simplified with a call to `trailing_zeros` --> mqttrust/src/encoding/v4/decoder.rs:86:42 | 86 | 11 => (PacketType::Unsuback, hd & 0b1111 == 0), | ^^^^^^^^^^^^^^^^ help: try: `hd.trailing_zeros() >= 4` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask
bit mask could be simplified with a call to `trailing_zeros`: mqttrust/src/encoding/v4/decoder.rs#L84
warning: bit mask could be simplified with a call to `trailing_zeros` --> mqttrust/src/encoding/v4/decoder.rs:84:39 | 84 | 9 => (PacketType::Suback, hd & 0b1111 == 0), | ^^^^^^^^^^^^^^^^ help: try: `hd.trailing_zeros() >= 4` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask
bit mask could be simplified with a call to `trailing_zeros`: mqttrust/src/encoding/v4/decoder.rs#L82
warning: bit mask could be simplified with a call to `trailing_zeros` --> mqttrust/src/encoding/v4/decoder.rs:82:40 | 82 | 7 => (PacketType::Pubcomp, hd & 0b1111 == 0), | ^^^^^^^^^^^^^^^^ help: try: `hd.trailing_zeros() >= 4` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask
bit mask could be simplified with a call to `trailing_zeros`: mqttrust/src/encoding/v4/decoder.rs#L80
warning: bit mask could be simplified with a call to `trailing_zeros` --> mqttrust/src/encoding/v4/decoder.rs:80:39 | 80 | 5 => (PacketType::Pubrec, hd & 0b1111 == 0), | ^^^^^^^^^^^^^^^^ help: try: `hd.trailing_zeros() >= 4` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask
bit mask could be simplified with a call to `trailing_zeros`: mqttrust/src/encoding/v4/decoder.rs#L79
warning: bit mask could be simplified with a call to `trailing_zeros` --> mqttrust/src/encoding/v4/decoder.rs:79:39 | 79 | 4 => (PacketType::Puback, hd & 0b1111 == 0), | ^^^^^^^^^^^^^^^^ help: try: `hd.trailing_zeros() >= 4` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask
bit mask could be simplified with a call to `trailing_zeros`: mqttrust/src/encoding/v4/decoder.rs#L77
warning: bit mask could be simplified with a call to `trailing_zeros` --> mqttrust/src/encoding/v4/decoder.rs:77:40 | 77 | 2 => (PacketType::Connack, hd & 0b1111 == 0), | ^^^^^^^^^^^^^^^^ help: try: `hd.trailing_zeros() >= 4` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask
bit mask could be simplified with a call to `trailing_zeros`: mqttrust/src/encoding/v4/decoder.rs#L76
warning: bit mask could be simplified with a call to `trailing_zeros` --> mqttrust/src/encoding/v4/decoder.rs:76:40 | 76 | 1 => (PacketType::Connect, hd & 0b1111 == 0), | ^^^^^^^^^^^^^^^^ help: try: `hd.trailing_zeros() >= 4` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask = note: `-W clippy::verbose-bit-mask` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::verbose_bit_mask)]`
unnecessary structure name repetition: mqttrust/src/encoding/v4/decoder.rs#L74
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/decoder.rs:74:34 | 74 | pub fn new(hd: u8) -> Result<Header, Error> { | ^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
docs for function returning `Result` missing `# Errors` section: mqttrust/src/encoding/v4/decoder.rs#L74
warning: docs for function returning `Result` missing `# Errors` section --> mqttrust/src/encoding/v4/decoder.rs:74:5 | 74 | pub fn new(hd: u8) -> Result<Header, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc
docs for function returning `Result` missing `# Errors` section: mqttrust/src/encoding/v4/decoder.rs#L40
warning: docs for function returning `Result` missing `# Errors` section --> mqttrust/src/encoding/v4/decoder.rs:40:1 | 40 | pub fn read_header(buf: &[u8], offset: &mut usize) -> Result<Option<(Header, usize)>, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc
item in documentation is missing backticks: mqttrust/src/encoding/v4/decoder.rs#L38
warning: item in documentation is missing backticks --> mqttrust/src/encoding/v4/decoder.rs:38:75 | 38 | /// Read the parsed header and remaining_len from the buffer. Only return Some() and advance the | ^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 38 | /// Read the parsed header and remaining_len from the buffer. Only return `Some()` and advance the | ~~~~~~~~
item in documentation is missing backticks: mqttrust/src/encoding/v4/decoder.rs#L38
warning: item in documentation is missing backticks --> mqttrust/src/encoding/v4/decoder.rs:38:32 | 38 | /// Read the parsed header and remaining_len from the buffer. Only return Some() and advance the | ^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown help: try | 38 | /// Read the parsed header and `remaining_len` from the buffer. Only return Some() and advance the | ~~~~~~~~~~~~~~~
docs for function returning `Result` missing `# Errors` section: mqttrust/src/encoding/v4/decoder.rs#L3
warning: docs for function returning `Result` missing `# Errors` section --> mqttrust/src/encoding/v4/decoder.rs:3:1 | 3 | pub fn decode_slice(buf: &[u8]) -> Result<Option<Packet<'_>>, Error> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_errors_doc = note: `-W clippy::missing-errors-doc` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::missing_errors_doc)]`
usage of wildcard import: mqttrust/src/encoding/v4/decoder.rs#L1
warning: usage of wildcard import --> mqttrust/src/encoding/v4/decoder.rs:1:5 | 1 | use super::*; | ^^^^^^^^ help: try: `super::{Connack, Connect, Error, Packet, PacketType, Pid, Publish, QoS, Suback, Subscribe, Unsubscribe}` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports
this argument (2 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte): mqttrust/src/encoding/v4/connect.rs#L259
warning: this argument (2 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) --> mqttrust/src/encoding/v4/connect.rs:259:29 | 259 | pub(crate) fn to_buffer(&self, buf: &mut [u8], offset: &mut usize) -> Result<usize, Error> { | ^^^^^ help: consider passing by value instead: `self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value: mqttrust/src/encoding/v4/connect.rs#L259
warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value --> mqttrust/src/encoding/v4/connect.rs:259:29 | 259 | pub(crate) fn to_buffer(&self, buf: &mut [u8], offset: &mut usize) -> Result<usize, Error> { | ^^^^^ | = help: consider choosing a less ambiguous name = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L254
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:254:12 | 254 | Ok(Connack { | ^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
this expression creates a reference which is immediately dereferenced by the compiler: mqttrust/src/encoding/v4/connect.rs#L235
warning: this expression creates a reference which is immediately dereferenced by the compiler --> mqttrust/src/encoding/v4/connect.rs:235:38 | 235 | write_bytes(buf, offset, &last_will.message)?; | ^^^^^^^^^^^^^^^^^^ help: change this to: `last_will.message` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow = note: `-W clippy::needless-borrow` implied by `-W clippy::all` = help: to override `-W clippy::all` add `#[allow(clippy::needless_borrow)]`
this could be a `const fn`: mqttrust/src/encoding/v4/connect.rs#L180
warning: this could be a `const fn` --> mqttrust/src/encoding/v4/connect.rs:180:5 | 180 | / pub(crate) fn len(&self) -> usize { 181 | | let mut length: usize = 6 + 1 + 1; // NOTE: protocol_name(6) + protocol_level(1) + flags(1); 182 | | length += 2 + self.client_id.len(); 183 | | length += 2; // keep alive ... | 197 | | length 198 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
casting `u8` to `u16` may become silently lossy if you later change the type: mqttrust/src/encoding/v4/connect.rs#L136
warning: casting `u8` to `u16` may become silently lossy if you later change the type --> mqttrust/src/encoding/v4/connect.rs:136:61 | 136 | let keep_alive = ((buf[*offset + 1] as u16) << 8) | buf[*offset + 2] as u16; | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(buf[*offset + 2])` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless
casting `u8` to `u16` may become silently lossy if you later change the type: mqttrust/src/encoding/v4/connect.rs#L136
warning: casting `u8` to `u16` may become silently lossy if you later change the type --> mqttrust/src/encoding/v4/connect.rs:136:27 | 136 | let keep_alive = ((buf[*offset + 1] as u16) << 8) | buf[*offset + 2] as u16; | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(buf[*offset + 1])` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless = note: `-W clippy::cast-lossless` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::cast_lossless)]`
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L102
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:102:21 | 102 | 5 => Ok(ConnectReturnCode::NotAuthorized), | ^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L101
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:101:21 | 101 | 4 => Ok(ConnectReturnCode::BadUsernamePassword), | ^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L100
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:100:21 | 100 | 3 => Ok(ConnectReturnCode::ServerUnavailable), | ^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L99
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:99:21 | 99 | 2 => Ok(ConnectReturnCode::RefusedIdentifierRejected), | ^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L98
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:98:21 | 98 | 1 => Ok(ConnectReturnCode::RefusedProtocolVersion), | ^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L97
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:97:21 | 97 | 0 => Ok(ConnectReturnCode::Accepted), | ^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L95
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:95:47 | 95 | pub(crate) fn from_u8(byte: u8) -> Result<ConnectReturnCode, Error> { | ^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
this could be a `const fn`: mqttrust/src/encoding/v4/connect.rs#L95
warning: this could be a `const fn` --> mqttrust/src/encoding/v4/connect.rs:95:5 | 95 | / pub(crate) fn from_u8(byte: u8) -> Result<ConnectReturnCode, Error> { 96 | | match byte { 97 | | 0 => Ok(ConnectReturnCode::Accepted), 98 | | 1 => Ok(ConnectReturnCode::RefusedProtocolVersion), ... | 104 | | } 105 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L92
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:92:13 | 92 | ConnectReturnCode::NotAuthorized => 5, | ^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L91
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:91:13 | 91 | ConnectReturnCode::BadUsernamePassword => 4, | ^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L90
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:90:13 | 90 | ConnectReturnCode::ServerUnavailable => 3, | ^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L89
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:89:13 | 89 | ConnectReturnCode::RefusedIdentifierRejected => 2, | ^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L88
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:88:13 | 88 | ConnectReturnCode::RefusedProtocolVersion => 1, | ^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L87
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:87:13 | 87 | ConnectReturnCode::Accepted => 0, | ^^^^^^^^^^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte): mqttrust/src/encoding/v4/connect.rs#L85
warning: this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) --> mqttrust/src/encoding/v4/connect.rs:85:14 | 85 | fn as_u8(&self) -> u8 { | ^^^^^ help: consider passing by value instead: `self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
this could be a `const fn`: mqttrust/src/encoding/v4/connect.rs#L85
warning: this could be a `const fn` --> mqttrust/src/encoding/v4/connect.rs:85:5 | 85 | / fn as_u8(&self) -> u8 { 86 | | match *self { 87 | | ConnectReturnCode::Accepted => 0, 88 | | ConnectReturnCode::RefusedProtocolVersion => 1, ... | 93 | | } 94 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn = note: `-W clippy::missing-const-for-fn` implied by `-W clippy::nursery` = help: to override `-W clippy::nursery` add `#[allow(clippy::missing_const_for_fn)]`
you are deriving `PartialEq` and can implement `Eq`: mqttrust/src/encoding/v4/connect.rs#L74
warning: you are deriving `PartialEq` and can implement `Eq` --> mqttrust/src/encoding/v4/connect.rs:74:30 | 74 | #[derive(Debug, Clone, Copy, PartialEq)] | ^^^^^^^^^ help: consider deriving `Eq` as well: `PartialEq, Eq` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_partial_eq_without_eq
item name starts with its containing module's name: mqttrust/src/encoding/v4/connect.rs#L76
warning: item name starts with its containing module's name --> mqttrust/src/encoding/v4/connect.rs:76:10 | 76 | pub enum ConnectReturnCode { | ^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_name_repetitions = note: `-W clippy::module-name-repetitions` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::module_name_repetitions)]`
you are deriving `PartialEq` and can implement `Eq`: mqttrust/src/encoding/v4/connect.rs#L60
warning: you are deriving `PartialEq` and can implement `Eq` --> mqttrust/src/encoding/v4/connect.rs:60:24 | 60 | #[derive(Debug, Clone, PartialEq)] | ^^^^^^^^^ help: consider deriving `Eq` as well: `PartialEq, Eq` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_partial_eq_without_eq = note: `-W clippy::derive-partial-eq-without-eq` implied by `-W clippy::nursery` = help: to override `-W clippy::nursery` add `#[allow(clippy::derive_partial_eq_without_eq)]`
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L43
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:43:13 | 43 | Protocol::MQIsdp => { | ^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L36
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:36:13 | 36 | Protocol::MQTT311 => { | ^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte): mqttrust/src/encoding/v4/connect.rs#L34
warning: this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) --> mqttrust/src/encoding/v4/connect.rs:34:29 | 34 | pub(crate) fn to_buffer(&self, buf: &mut [u8], offset: &mut usize) -> Result<usize, Error> { | ^^^^^ help: consider passing by value instead: `self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref = note: `-W clippy::trivially-copy-pass-by-ref` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::trivially_copy_pass_by_ref)]`
methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value: mqttrust/src/encoding/v4/connect.rs#L34
warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value --> mqttrust/src/encoding/v4/connect.rs:34:29 | 34 | pub(crate) fn to_buffer(&self, buf: &mut [u8], offset: &mut usize) -> Result<usize, Error> { | ^^^^^ | = help: consider choosing a less ambiguous name = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention = note: `-W clippy::wrong-self-convention` implied by `-W clippy::all` = help: to override `-W clippy::all` add `#[allow(clippy::wrong_self_convention)]`
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L32
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:32:9 | 32 | Protocol::new(protocol_name, protocol_level) | ^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L23
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:23:31 | 23 | ("MQTT", 4) => Ok(Protocol::MQTT311), | ^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L22
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:22:33 | 22 | ("MQIsdp", 3) => Ok(Protocol::MQIsdp), | ^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self
unnecessary structure name repetition: mqttrust/src/encoding/v4/connect.rs#L20
warning: unnecessary structure name repetition --> mqttrust/src/encoding/v4/connect.rs:20:56 | 20 | pub(crate) fn new(name: &str, level: u8) -> Result<Protocol, Error> { | ^^^^^^^^ help: use the applicable keyword: `Self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_self = note: `-W clippy::use-self` implied by `-W clippy::nursery` = help: to override `-W clippy::nursery` add `#[allow(clippy::use_self)]`
item in documentation is missing backticks: mqttrust/src/encoding/v4/connect.rs#L15
warning: item in documentation is missing backticks --> mqttrust/src/encoding/v4/connect.rs:15:9 | 15 | /// MQIsdp, aka SCADA are pre-standardisation names of MQTT. It should mostly conform to MQTT | ^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown = note: `-W clippy::doc-markdown` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::doc_markdown)]` help: try | 15 | /// `MQIsdp`, aka SCADA are pre-standardisation names of MQTT. It should mostly conform to MQTT | ~~~~~~~~
usage of wildcard import: mqttrust/src/encoding/v4/connect.rs#L1
warning: usage of wildcard import --> mqttrust/src/encoding/v4/connect.rs:1:37 | 1 | use super::{decoder::*, encoder::*, *}; | ^ help: try: `Error, QoS` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports
usage of wildcard import: mqttrust/src/encoding/v4/connect.rs#L1
warning: usage of wildcard import --> mqttrust/src/encoding/v4/connect.rs:1:25 | 1 | use super::{decoder::*, encoder::*, *}; | ^^^^^^^^^^ help: try: `encoder::{check_remaining, write_bytes, write_length, write_string, write_u16, write_u8}` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports
usage of wildcard import: mqttrust/src/encoding/v4/connect.rs#L1
warning: usage of wildcard import --> mqttrust/src/encoding/v4/connect.rs:1:13 | 1 | use super::{decoder::*, encoder::*, *}; | ^^^^^^^^^^ help: try: `decoder::{read_bytes, read_str}` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_imports = note: `-W clippy::wildcard-imports` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::wildcard_imports)]`
method `into_result` is never used: mqttrust/src/fmt.rs#L226
warning: method `into_result` is never used --> mqttrust/src/fmt.rs:226:8 | 223 | pub trait Try { | --- method in this trait ... 226 | fn into_result(self) -> Result<Self::Ok, Self::Error>; | ^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
long literal lacking separators: mqttrust/src/encoding/v4/subscribe.rs#L308
warning: long literal lacking separators --> mqttrust/src/encoding/v4/subscribe.rs:308:26 | 308 | let header: u8 = 0b10010000; | ^^^^^^^^^^ help: consider: `0b1001_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/subscribe.rs#L269
warning: long literal lacking separators --> mqttrust/src/encoding/v4/subscribe.rs:269:26 | 269 | let header: u8 = 0b10100010; | ^^^^^^^^^^ help: consider: `0b1010_0010` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/subscribe.rs#L210
warning: long literal lacking separators --> mqttrust/src/encoding/v4/subscribe.rs:210:26 | 210 | let header: u8 = 0b10000010; | ^^^^^^^^^^ help: consider: `0b1000_0010` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/publish.rs#L63
warning: long literal lacking separators --> mqttrust/src/encoding/v4/publish.rs:63:23 | 63 | header |= 0b00000001_u8; | ^^^^^^^^^^^^^ help: consider: `0b0000_0001_u8` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/publish.rs#L60
warning: long literal lacking separators --> mqttrust/src/encoding/v4/publish.rs:60:23 | 60 | header |= 0b00001000_u8; | ^^^^^^^^^^^^^ help: consider: `0b0000_1000_u8` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/publish.rs#L57
warning: long literal lacking separators --> mqttrust/src/encoding/v4/publish.rs:57:33 | 57 | QoS::ExactlyOnce => 0b00110100, | ^^^^^^^^^^ help: consider: `0b0011_0100` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/publish.rs#L56
warning: long literal lacking separators --> mqttrust/src/encoding/v4/publish.rs:56:33 | 56 | QoS::AtLeastOnce => 0b00110010, | ^^^^^^^^^^ help: consider: `0b0011_0010` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/publish.rs#L55
warning: long literal lacking separators --> mqttrust/src/encoding/v4/publish.rs:55:32 | 55 | QoS::AtMostOnce => 0b00110000, | ^^^^^^^^^^ help: consider: `0b0011_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/encoder.rs#L135
warning: long literal lacking separators --> mqttrust/src/encoding/v4/encoder.rs:135:19 | 135 | 2097152..=268435455 => { | ^^^^^^^^^ help: consider: `268_435_455` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/encoder.rs#L135
warning: long literal lacking separators --> mqttrust/src/encoding/v4/encoder.rs:135:9 | 135 | 2097152..=268435455 => { | ^^^^^^^ help: consider: `2_097_152` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/encoder.rs#L131
warning: long literal lacking separators --> mqttrust/src/encoding/v4/encoder.rs:131:17 | 131 | 16384..=2097151 => { | ^^^^^^^ help: consider: `2_097_151` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/encoder.rs#L101
warning: long literal lacking separators --> mqttrust/src/encoding/v4/encoder.rs:101:30 | 101 | let header: u8 = 0b11100000; | ^^^^^^^^^^ help: consider: `0b1110_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/encoder.rs#L93
warning: long literal lacking separators --> mqttrust/src/encoding/v4/encoder.rs:93:30 | 93 | let header: u8 = 0b11010000; | ^^^^^^^^^^ help: consider: `0b1101_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/encoder.rs#L85
warning: long literal lacking separators --> mqttrust/src/encoding/v4/encoder.rs:85:30 | 85 | let header: u8 = 0b11000000; | ^^^^^^^^^^ help: consider: `0b1100_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/encoder.rs#L76
warning: long literal lacking separators --> mqttrust/src/encoding/v4/encoder.rs:76:30 | 76 | let header: u8 = 0b10110000; | ^^^^^^^^^^ help: consider: `0b1011_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/encoder.rs#L64
warning: long literal lacking separators --> mqttrust/src/encoding/v4/encoder.rs:64:30 | 64 | let header: u8 = 0b01110000; | ^^^^^^^^^^ help: consider: `0b0111_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/encoder.rs#L55
warning: long literal lacking separators --> mqttrust/src/encoding/v4/encoder.rs:55:30 | 55 | let header: u8 = 0b01100010; | ^^^^^^^^^^ help: consider: `0b0110_0010` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/encoder.rs#L46
warning: long literal lacking separators --> mqttrust/src/encoding/v4/encoder.rs:46:30 | 46 | let header: u8 = 0b01010000; | ^^^^^^^^^^ help: consider: `0b0101_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/encoder.rs#L37
warning: long literal lacking separators --> mqttrust/src/encoding/v4/encoder.rs:37:30 | 37 | let header: u8 = 0b01000000; | ^^^^^^^^^^ help: consider: `0b0100_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/connect.rs#L263
warning: long literal lacking separators --> mqttrust/src/encoding/v4/connect.rs:263:29 | 263 | let mut flags: u8 = 0b00000000; | ^^^^^^^^^^ help: consider: `0b0000_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/connect.rs#L261
warning: long literal lacking separators --> mqttrust/src/encoding/v4/connect.rs:261:26 | 261 | let header: u8 = 0b00100000; | ^^^^^^^^^^ help: consider: `0b0010_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/connect.rs#L216
warning: long literal lacking separators --> mqttrust/src/encoding/v4/connect.rs:216:34 | 216 | connect_flags |= 0b00100000; | ^^^^^^^^^^ help: consider: `0b0010_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/connect.rs#L213
warning: long literal lacking separators --> mqttrust/src/encoding/v4/connect.rs:213:30 | 213 | connect_flags |= 0b00000100; | ^^^^^^^^^^ help: consider: `0b0000_0100` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/connect.rs#L210
warning: long literal lacking separators --> mqttrust/src/encoding/v4/connect.rs:210:30 | 210 | connect_flags |= 0b01000000; | ^^^^^^^^^^ help: consider: `0b0100_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/connect.rs#L207
warning: long literal lacking separators --> mqttrust/src/encoding/v4/connect.rs:207:30 | 207 | connect_flags |= 0b10000000; | ^^^^^^^^^^ help: consider: `0b1000_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/connect.rs#L202
warning: long literal lacking separators --> mqttrust/src/encoding/v4/connect.rs:202:37 | 202 | let mut connect_flags: u8 = 0b00000000; | ^^^^^^^^^^ help: consider: `0b0000_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/connect.rs#L201
warning: long literal lacking separators --> mqttrust/src/encoding/v4/connect.rs:201:26 | 201 | let header: u8 = 0b00010000; | ^^^^^^^^^^ help: consider: `0b0001_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/connect.rs#L161
warning: long literal lacking separators --> mqttrust/src/encoding/v4/connect.rs:161:43 | 161 | let password = if connect_flags & 0b01000000 != 0 { | ^^^^^^^^^^ help: consider: `0b0100_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/connect.rs#L155
warning: long literal lacking separators --> mqttrust/src/encoding/v4/connect.rs:155:43 | 155 | let username = if connect_flags & 0b10000000 != 0 { | ^^^^^^^^^^ help: consider: `0b1000_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
long literal lacking separators: mqttrust/src/encoding/v4/connect.rs#L149
warning: long literal lacking separators --> mqttrust/src/encoding/v4/connect.rs:149:42 | 149 | retain: (connect_flags & 0b00100000) != 0, | ^^^^^^^^^^ help: consider: `0b0010_0000` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal = note: `-W clippy::unreadable-literal` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::unreadable_literal)]`
clippy
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2, actions-rs/toolchain@v1, actions-rs/clippy-check@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
clippy
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2, actions-rs/toolchain@v1, actions-rs/clippy-check@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
clippy
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
clippy
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
clippy
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
clippy
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Test
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2, actions-rs/toolchain@v1, actions-rs/cargo@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Test
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2, actions-rs/toolchain@v1, actions-rs/cargo@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Test
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Test
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Test
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Test
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Test: mqttrust/src/fmt.rs#L226
method `into_result` is never used
Test
`mqttrust` (lib) generated 1 warning
Test: mqttrust_core/src/fmt.rs#L226
method `into_result` is never used
Test
`mqttrust_core` (lib) generated 2 warnings
Test: mqttrust/src/fmt.rs#L226
method `into_result` is never used
Test
`mqttrust` (lib) generated 1 warning
Test: mqttrust_core/src/eventloop.rs#L708
creating a mutable reference to mutable static is discouraged
Test: mqttrust_core/src/eventloop.rs#L757
creating a mutable reference to mutable static is discouraged
Test: mqttrust_core/src/state.rs#L84
creating a mutable reference to mutable static is discouraged
Test: mqttrust_core/src/state.rs#L528
creating a mutable reference to mutable static is discouraged
Test: mqttrust_core/src/fmt.rs#L226
method `into_result` is never used
Test
`mqttrust_core` (lib test) generated 5 warnings
AWS IoT Device Advisor
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions-rs/toolchain@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
AWS IoT Device Advisor
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/toolchain@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
AWS IoT Device Advisor
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
AWS IoT Device Advisor
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
AWS IoT Device Advisor
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
AWS IoT Device Advisor
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Integration Test
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2, actions-rs/toolchain@v1, actions-rs/cargo@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Integration Test
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2, actions-rs/toolchain@v1, actions-rs/cargo@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Integration Test: mqttrust/src/fmt.rs#L226
method `into_result` is never used
Integration Test
`mqttrust` (lib) generated 1 warning
Integration Test: mqttrust_core/src/state.rs#L84
creating a mutable reference to mutable static is discouraged
Integration Test: mqttrust_core/src/fmt.rs#L226
method `into_result` is never used
Integration Test
`mqttrust_core` (lib) generated 2 warnings
Integration Test: mqttrust_core/examples/common/clock.rs#L38
unused variable: `duration`
Integration Test: mqttrust_core/examples/common/network.rs#L202
variable does not need to be mutable
Integration Test: mqttrust_core/examples/common/clock.rs#L8
field `countdown_end` is never read
Integration Test: mqttrust_core/examples/common/credentials.rs#L5
function `identity` is never used
Integration Test: mqttrust_core/examples/common/credentials.rs#L10
function `root_ca` is never used
Integration Test
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Integration Test
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Integration Test
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Integration Test
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Deprecation notice: v1, v2, and v3 of the artifact actions
The following artifacts were uploaded using a version of actions/upload-artifact that is scheduled for deprecation: "lcov.info". Please update your workflow to use v4 of the artifact actions. Learn more: https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/
Coverage
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2, actions-rs/toolchain@v1, actions-rs/cargo@v1, actions/upload-artifact@v2, codecov/codecov-action@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Coverage
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2, actions-rs/toolchain@v1, actions-rs/cargo@v1, actions/upload-artifact@v2, codecov/codecov-action@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Coverage: mqttrust/src/fmt.rs#L226
method `into_result` is never used
Coverage
`mqttrust` (lib) generated 1 warning
Coverage
`mqttrust` (lib test) generated 1 warning (1 duplicate)
Coverage: mqttrust_core/src/eventloop.rs#L708
creating a mutable reference to mutable static is discouraged
Coverage: mqttrust_core/src/eventloop.rs#L757
creating a mutable reference to mutable static is discouraged
Coverage: mqttrust_core/src/state.rs#L84
creating a mutable reference to mutable static is discouraged
Coverage: mqttrust_core/src/state.rs#L528
creating a mutable reference to mutable static is discouraged
Coverage: mqttrust_core/src/fmt.rs#L226
method `into_result` is never used
Coverage
`mqttrust_core` (lib test) generated 5 warnings
Coverage
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Coverage
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Coverage
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Coverage
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

Artifacts

Produced during runtime
Name Size
lcov.info Expired
66.8 KB