chore: Release #211
audit.yml
on: push
Cancel previous runs
3s
security_audit
15s
Annotations
68 warnings
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/
|
security_audit
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions-rs/audit-check@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
security_audit
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/audit-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/
|
usage of wildcard import:
examples/src/common/general/mod.rs#L6
warning: usage of wildcard import
--> examples/src/common/general/mod.rs:6:5
|
6 | use responses::*;
| ^^^^^^^^^^^^ help: try: `responses::{ManufacturerId, ModelId, SoftwareVersion, WifiMac}`
|
= 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)]`
|
unnecessary boolean `not` operation:
atat/src/blocking/client.rs#L111
warning: unnecessary boolean `not` operation
--> atat/src/blocking/client.rs:111:9
|
111 | / if !Cmd::EXPECTS_RESPONSE_CODE {
112 | | cmd.parse(Ok(&[]))
113 | | } else {
114 | | let response = self.wait_response(Duration::from_millis(Cmd::MAX_TIMEOUT_MS.into()))?;
115 | | let response: &Response<INGRESS_BUF_SIZE> = &response.borrow();
116 | | cmd.parse(response.into())
117 | | }
| |_________^
|
= help: remove the `!` and swap the blocks of the `if`/`else`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_not_else
|
this expression creates a reference which is immediately dereferenced by the compiler:
atat/src/blocking/client.rs#L109
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> atat/src/blocking/client.rs:109:29
|
109 | let len = cmd.write(&mut self.buf);
| ^^^^^^^^^^^^^ help: change this to: `self.buf`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
the following explicit lifetimes could be elided: 'guard:
atat/src/blocking/client.rs#L68
warning: the following explicit lifetimes could be elided: 'guard
--> atat/src/blocking/client.rs:68:22
|
68 | fn wait_response<'guard>(
| ^^^^^^
69 | &'guard mut self,
| ^^^^^^
70 | timeout: Duration,
71 | ) -> Result<ResponseSlotGuard<'guard, INGRESS_BUF_SIZE>, Error> {
| ^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes
help: elide the lifetimes
|
68 ~ fn wait_response(
69 ~ &mut self,
70 | timeout: Duration,
71 ~ ) -> Result<ResponseSlotGuard<'_, INGRESS_BUF_SIZE>, Error> {
|
|
unnecessary boolean `not` operation:
atat/src/asynch/simple_client.rs#L144
warning: unnecessary boolean `not` operation
--> atat/src/asynch/simple_client.rs:144:9
|
144 | / if !Cmd::EXPECTS_RESPONSE_CODE {
145 | | cmd.parse(Ok(&[]))
146 | | } else {
147 | | let response = embassy_time::with_timeout(
... |
154 | | cmd.parse((&response).into())
155 | | }
| |_________^
|
= help: remove the `!` and swap the blocks of the `if`/`else`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_not_else
|
this expression creates a reference which is immediately dereferenced by the compiler:
atat/src/asynch/simple_client.rs#L141
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> atat/src/asynch/simple_client.rs:141:29
|
141 | let len = cmd.write(&mut self.buf);
| ^^^^^^^^^^^^^ help: change this to: `self.buf`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
consider adding a `;` to the last statement for consistent formatting:
atat/src/asynch/simple_client.rs#L134
warning: consider adding a `;` to the last statement for consistent formatting
--> atat/src/asynch/simple_client.rs:134:13
|
134 | cooldown.await
| ^^^^^^^^^^^^^^ help: add a `;` here: `cooldown.await;`
|
= 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:
atat/src/asynch/simple_client.rs#L88
warning: consider adding a `;` to the last statement for consistent formatting
--> atat/src/asynch/simple_client.rs:88:37
|
88 | ... debug!("Received OK ({}/{})", swallowed, self.pos)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `debug!("Received OK ({}/{})", swallowed, self.pos);`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned
|
unnecessary boolean `not` operation:
atat/src/asynch/client.rs#L117
warning: unnecessary boolean `not` operation
--> atat/src/asynch/client.rs:117:9
|
117 | / if !Cmd::EXPECTS_RESPONSE_CODE {
118 | | cmd.parse(Ok(&[]))
119 | | } else {
120 | | let response = self
... |
124 | | cmd.parse(response.into())
125 | | }
| |_________^
|
= help: remove the `!` and swap the blocks of the `if`/`else`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_not_else
= note: `-W clippy::if-not-else` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::if_not_else)]`
|
this expression creates a reference which is immediately dereferenced by the compiler:
atat/src/asynch/client.rs#L115
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> atat/src/asynch/client.rs:115:29
|
115 | let len = cmd.write(&mut self.buf);
| ^^^^^^^^^^^^^ help: change this to: `self.buf`
|
= 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)]`
|
consider adding a `;` to the last statement for consistent formatting:
atat/src/asynch/client.rs#L108
warning: consider adding a `;` to the last statement for consistent formatting
--> atat/src/asynch/client.rs:108:13
|
108 | cooldown.await
| ^^^^^^^^^^^^^^ help: add a `;` here: `cooldown.await;`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned
|
matching over `()` is more explicit:
atat/src/asynch/client.rs#L90
warning: matching over `()` is more explicit
--> atat/src/asynch/client.rs:90:32
|
90 | Either::Right((_, fut)) => {
| ^ help: use `()` instead of `_`: `()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ignored_unit_patterns
|
this method could have a `#[must_use]` attribute:
atat/src/urc_channel.rs#L24
warning: this method could have a `#[must_use]` attribute
--> atat/src/urc_channel.rs:24:5
|
24 | pub const fn new() -> Self {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub const fn new() -> Self`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
|
matching over `()` is more explicit:
atat/src/traits.rs#L114
warning: matching over `()` is more explicit
--> atat/src/traits.rs:114:48
|
114 | String::try_from(utf8_string).map_err(|_| Error::Parse)
| ^ help: use `()` instead of `_`: `()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ignored_unit_patterns
|
docs for function which may panic missing `# Panics` section:
atat/src/response_slot.rs#L44
warning: docs for function which may panic missing `# Panics` section
--> atat/src/response_slot.rs:44:5
|
44 | pub fn try_get<'a>(&'a self) -> Option<ResponseSlotGuard<'a, N>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
note: first possible panic found here
--> atat/src/response_slot.rs:47:18
|
47 | Some(self.0.try_lock().unwrap())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_panics_doc
|
the following explicit lifetimes could be elided: 'a:
atat/src/response_slot.rs#L44
warning: the following explicit lifetimes could be elided: 'a
--> atat/src/response_slot.rs:44:20
|
44 | pub fn try_get<'a>(&'a self) -> Option<ResponseSlotGuard<'a, N>> {
| ^^ ^^ ^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes
help: elide the lifetimes
|
44 - pub fn try_get<'a>(&'a self) -> Option<ResponseSlotGuard<'a, N>> {
44 + pub fn try_get(&self) -> Option<ResponseSlotGuard<'_, N>> {
|
|
docs for function which may panic missing `# Panics` section:
atat/src/response_slot.rs#L36
warning: docs for function which may panic missing `# Panics` section
--> atat/src/response_slot.rs:36:5
|
36 | pub async fn get<'a>(&'a self) -> ResponseSlotGuard<'a, N> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
note: first possible panic found here
--> atat/src/response_slot.rs:40:9
|
40 | self.0.try_lock().unwrap()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_panics_doc
|
the following explicit lifetimes could be elided: 'a:
atat/src/response_slot.rs#L36
warning: the following explicit lifetimes could be elided: 'a
--> atat/src/response_slot.rs:36:22
|
36 | pub async fn get<'a>(&'a self) -> ResponseSlotGuard<'a, N> {
| ^^ ^^
|
= 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)]`
|
this method could have a `#[must_use]` attribute:
atat/src/response_slot.rs#L23
warning: this method could have a `#[must_use]` attribute
--> atat/src/response_slot.rs:23:5
|
23 | pub const fn new() -> Self {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub const fn new() -> Self`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
|
use of a fallible conversion when an infallible one could be used:
atat/src/response.rs#L75
warning: use of a fallible conversion when an infallible one could be used
--> atat/src/response.rs:75:57
|
75 | Err(InternalError::ConnectionError((*e).try_into().unwrap()))
| ^^^^^^^^^^^^^^^^^^^ help: use: `into()`
|
= note: converting `u8` to `ConnectionError` cannot fail
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fallible_conversions
|
use of a fallible conversion when an infallible one could be used:
atat/src/response.rs#L73
warning: use of a fallible conversion when an infallible one could be used
--> atat/src/response.rs:73:71
|
73 | Response::CmsError(e) => Err(InternalError::CmsError((*e).try_into().unwrap())),
| ^^^^^^^^^^^^^^^^^^^ help: use: `into()`
|
= note: converting `u16` to `CmsError` cannot fail
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fallible_conversions
|
use of a fallible conversion when an infallible one could be used:
atat/src/response.rs#L72
warning: use of a fallible conversion when an infallible one could be used
--> atat/src/response.rs:72:71
|
72 | Response::CmeError(e) => Err(InternalError::CmeError((*e).try_into().unwrap())),
| ^^^^^^^^^^^^^^^^^^^ help: use: `into()`
|
= note: converting `u16` to `CmeError` cannot fail
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fallible_conversions
= note: `-W clippy::unnecessary-fallible-conversions` implied by `-W clippy::all`
= help: to override `-W clippy::all` add `#[allow(clippy::unnecessary_fallible_conversions)]`
|
docs for function which may panic missing `# Panics` section:
atat/src/response.rs#L22
warning: docs for function which may panic missing `# Panics` section
--> atat/src/response.rs:22:5
|
22 | pub fn ok(value: &[u8]) -> Self {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
note: first possible panic found here
--> atat/src/response.rs:23:22
|
23 | Response::Ok(Vec::from_slice(value).unwrap())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_panics_doc
|
this method could have a `#[must_use]` attribute:
atat/src/response.rs#L22
warning: this method could have a `#[must_use]` attribute
--> atat/src/response.rs:22:5
|
22 | pub fn ok(value: &[u8]) -> Self {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn ok(value: &[u8]) -> 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`:
atat/src/response.rs#L4
warning: you are deriving `PartialEq` and can implement `Eq`
--> atat/src/response.rs:4:24
|
4 | #[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
|
consider adding a `;` to the last statement for consistent formatting:
atat/src/ingress.rs#L263
warning: consider adding a `;` to the last statement for consistent formatting
--> atat/src/ingress.rs:263:33
|
263 | ... debug!("Received OK ({}/{})", swallowed, self.pos,)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `debug!("Received OK ({}/{})", swallowed, self.pos,);`
|
= 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:
atat/src/ingress.rs#L179
warning: consider adding a `;` to the last statement for consistent formatting
--> atat/src/ingress.rs:179:33
|
179 | ... debug!("Received OK ({}/{})", swallowed, self.pos,)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `debug!("Received OK ({}/{})", swallowed, self.pos,);`
|
= 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)]`
|
docs for function which may panic missing `# Panics` section:
atat/src/ingress.rs#L102
warning: docs for function which may panic missing `# Panics` section
--> atat/src/ingress.rs:102:5
|
102 | / pub fn new(
103 | | digester: D,
104 | | buf: &'a mut [u8],
105 | | res_slot: &'a ResponseSlot<RES_BUF_SIZE>,
106 | | urc_channel: &'a UrcChannel<Urc, URC_CAPACITY, URC_SUBSCRIBERS>,
107 | | ) -> Self {
| |_____________^
|
note: first possible panic found here
--> atat/src/ingress.rs:113:28
|
113 | urc_publisher: urc_channel.0.publisher().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)]`
|
you are deriving `PartialEq` and can implement `Eq`:
atat/src/ingress.rs#L6
warning: you are deriving `PartialEq` and can implement `Eq`
--> atat/src/ingress.rs:6:17
|
6 | #[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
= 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)]`
|
this method could have a `#[must_use]` attribute:
atat/src/error/cms_error.rs#L88
warning: this method could have a `#[must_use]` attribute
--> atat/src/error/cms_error.rs:88:5
|
88 | pub const fn from_msg(s: &[u8]) -> Self {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub const fn from_msg(s: &[u8]) -> 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:
atat/src/error/cme_error.rs#L506
warning: this method could have a `#[must_use]` attribute
--> atat/src/error/cme_error.rs:506:5
|
506 | pub const fn from_msg(s: &[u8]) -> Self {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub const fn from_msg(s: &[u8]) -> Self`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate
|
use Option::map_or_else instead of an if let/else:
atat/src/digest.rs#L477
warning: use Option::map_or_else instead of an if let/else
--> atat/src/digest.rs:477:9
|
477 | / match x.iter().position(|&x| x != b' ') {
478 | | Some(offset) => &x[offset..],
479 | | None => &x[0..0],
480 | | }
| |_________^ help: try: `x.iter().position(|&x| x != b' ').map_or_else(|| &x[0..0], |offset| &x[offset..])`
|
= 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)]`
|
this function could have a `#[must_use]` attribute:
atat/src/digest.rs#L476
warning: this function could have a `#[must_use]` attribute
--> atat/src/digest.rs:476:5
|
476 | pub fn trim_start_ascii_space(x: &[u8]) -> &[u8] {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add the attribute: `#[must_use] pub fn trim_start_ascii_space(x: &[u8]) -> &[u8]`
|
= 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)]`
|
this could be rewritten as `let...else`:
atat/src/digest.rs#L468
warning: this could be rewritten as `let...else`
--> atat/src/digest.rs:468:9
|
468 | / let from = match x.iter().position(|x| !x.is_ascii_whitespace()) {
469 | | Some(i) => i,
470 | | None => return &x[0..0],
471 | | };
| |__________^ help: consider writing: `let Some(from) = x.iter().position(|x| !x.is_ascii_whitespace()) else { return &x[0..0] };`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else
= note: `-W clippy::manual-let-else` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::manual_let_else)]`
|
matching over `()` is more explicit:
atat/src/digest.rs#L407
warning: matching over `()` is more explicit
--> atat/src/digest.rs:407:35
|
407 | let (i, (prefix_data, _, error_msg)) = tuple((
| ^ 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)]`
|
item in documentation is missing backticks:
atat/src/digest.rs#L35
warning: item in documentation is missing backticks
--> atat/src/digest.rs:35:54
|
35 | /// - if a URC exists but is incomplete, return [ParseError::Incomplete]
| ^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown
help: try
|
35 | /// - if a URC exists but is incomplete, return [`ParseError::Incomplete`]
| ~~~~~~~~~~~~~~~~~~~~~~~~
|
item in documentation is missing backticks:
atat/src/digest.rs#L34
warning: item in documentation is missing backticks
--> atat/src/digest.rs:34:37
|
34 | /// - if no URC exists, return [ParseError::NoMatch]
| ^^^^^^^^^^^^^^^^^^^
|
= 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
|
34 | /// - if no URC exists, return [`ParseError::NoMatch`]
| ~~~~~~~~~~~~~~~~~~~~~
|
`iter` call on a collection with only one item:
atat_derive/src/helpers.rs#L55
warning: `iter` call on a collection with only one item
--> atat_derive/src/helpers.rs:55:17
|
55 | bounds: [trait_bound].iter().cloned().collect(),
| ^^^^^^^^^^^^^^^^^^^^ help: try: `std::iter::once(&trait_bound)`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_on_single_items
= note: `-W clippy::iter-on-single-items` implied by `-W clippy::nursery`
= help: to override `-W clippy::nursery` add `#[allow(clippy::iter_on_single_items)]`
|
use Option::map_or_else instead of an if let/else:
atat_derive/src/cmd.rs#L93
warning: use Option::map_or_else instead of an if let/else
--> atat_derive/src/cmd.rs:93:17
|
93 | let parse = if let Some(parse) = parse {
| _________________^
94 | | quote! {
95 | | #[inline]
96 | | fn parse(&self, res: Result<&[u8], atat::InternalError>) -> core::result::Result<Self::Response, atat::Error> {
... |
116 | | }
117 | | };
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
|
93 ~ let parse = parse.map_or_else(|| quote! {
94 + #[inline]
95 + fn parse(&self, res: Result<&[u8], atat::InternalError>) -> core::result::Result<Self::Response, atat::Error> {
96 + match res {
97 + Ok(resp) => atat::serde_at::from_slice::<#resp>(resp).map_err(|e| {
98 + atat::Error::Parse
99 + }),
100 + Err(e) => Err(e.into())
101 + }
102 + }
103 + }, |parse| quote! {
104 + #[inline]
105 + fn parse(&self, res: Result<&[u8], atat::InternalError>) -> core::result::Result<Self::Response, atat::Error> {
106 + match res {
107 + Ok(resp) => #parse(resp).map_err(|e| {
108 + atat::Error::Parse
109 + }),
110 + Err(e) => Err(e.into())
111 + }
112 + }
113 ~ });
|
|
use Option::map_or_else instead of an if let/else:
atat_derive/src/cmd.rs#L64
warning: use Option::map_or_else instead of an if let/else
--> atat_derive/src/cmd.rs:64:34
|
64 | let reattempt_on_parse_err = match reattempt_on_parse_err {
| __________________________________^
65 | | Some(reattempt_on_parse_err) => {
66 | | quote! {
67 | | const REATTEMPT_ON_PARSE_ERR: bool = #reattempt_on_parse_err;
... |
70 | | None => quote! {},
71 | | };
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
|
64 ~ let reattempt_on_parse_err = reattempt_on_parse_err.map_or_else(|| quote! {}, |reattempt_on_parse_err| quote! {
65 + const REATTEMPT_ON_PARSE_ERR: bool = #reattempt_on_parse_err;
66 ~ });
|
|
use Option::map_or_else instead of an if let/else:
atat_derive/src/cmd.rs#L55
warning: use Option::map_or_else instead of an if let/else
--> atat_derive/src/cmd.rs:55:20
|
55 | let attempts = match attempts {
| ____________________^
56 | | Some(attempts) => {
57 | | quote! {
58 | | const ATTEMPTS: u8 = #attempts;
... |
61 | | None => quote! {},
62 | | };
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
|
55 ~ let attempts = attempts.map_or_else(|| quote! {}, |attempts| quote! {
56 + const ATTEMPTS: u8 = #attempts;
57 ~ });
|
|
use Option::map_or_else instead of an if let/else:
atat_derive/src/cmd.rs#L46
warning: use Option::map_or_else instead of an if let/else
--> atat_derive/src/cmd.rs:46:21
|
46 | let abortable = match abortable {
| _____________________^
47 | | Some(abortable) => {
48 | | quote! {
49 | | const CAN_ABORT: bool = #abortable;
... |
52 | | None => quote! {},
53 | | };
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
|
46 ~ let abortable = abortable.map_or_else(|| quote! {}, |abortable| quote! {
47 + const CAN_ABORT: bool = #abortable;
48 ~ });
|
|
use Option::map_or_else instead of an if let/else:
atat_derive/src/cmd.rs#L37
warning: use Option::map_or_else instead of an if let/else
--> atat_derive/src/cmd.rs:37:19
|
37 | let timeout = match timeout_ms {
| ___________________^
38 | | Some(timeout_ms) => {
39 | | quote! {
40 | | const MAX_TIMEOUT_MS: u32 = #timeout_ms;
... |
43 | | None => quote! {},
44 | | };
| |_____^
|
= 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)]`
help: try
|
37 ~ let timeout = timeout_ms.map_or_else(|| quote! {}, |timeout_ms| quote! {
38 + const MAX_TIMEOUT_MS: u32 = #timeout_ms;
39 ~ });
|
|
unnecessary boolean `not` operation:
serde_at/src/ser/mod.rs#L411
warning: unnecessary boolean `not` operation
--> serde_at/src/ser/mod.rs:411:26
|
411 | let ser_struct = if !self.nested_struct {
| __________________________^
412 | | // all calls to serialize_struct after this one will be nested structs
413 | | self.nested_struct = true;
414 | | self.extend_from_slice(self.options.cmd_prefix.as_bytes())?;
... |
418 | | SerializeStruct::new(self, true)
419 | | };
| |_________^
|
= help: remove the `!` and swap the blocks of the `if`/`else`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_not_else
= note: `-W clippy::if-not-else` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::if_not_else)]`
|
item in documentation is missing backticks:
serde_at/src/de/mod.rs#L574
warning: item in documentation is missing backticks
--> serde_at/src/de/mod.rs:574:52
|
574 | /// deserialize_tuple is (mis)used for parsing LengthDelimited types.
| ^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown
help: try
|
574 | /// deserialize_tuple is (mis)used for parsing `LengthDelimited` types.
| ~~~~~~~~~~~~~~~~~
|
item in documentation is missing backticks:
serde_at/src/de/mod.rs#L574
warning: item in documentation is missing backticks
--> serde_at/src/de/mod.rs:574:9
|
574 | /// deserialize_tuple is (mis)used for parsing LengthDelimited types.
| ^^^^^^^^^^^^^^^^^
|
= 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
|
574 | /// `deserialize_tuple` is (mis)used for parsing LengthDelimited types.
| ~~~~~~~~~~~~~~~~~~~
|
`iter` call on a collection with only one item:
atat_derive/src/helpers.rs#L55
warning: `iter` call on a collection with only one item
--> atat_derive/src/helpers.rs:55:17
|
55 | bounds: [trait_bound].iter().cloned().collect(),
| ^^^^^^^^^^^^^^^^^^^^ help: try: `std::iter::once(&trait_bound)`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_on_single_items
= note: `-W clippy::iter-on-single-items` implied by `-W clippy::nursery`
= help: to override `-W clippy::nursery` add `#[allow(clippy::iter_on_single_items)]`
|
redundant field names in struct initialization:
serde_at/src/ser/mod.rs#L190
warning: redundant field names in struct initialization
--> serde_at/src/ser/mod.rs:190:13
|
190 | buf: buf,
| ^^^^^^^^ help: replace it with: `buf`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names
= note: `-W clippy::redundant-field-names` implied by `-W clippy::all`
= help: to override `-W clippy::all` add `#[allow(clippy::redundant_field_names)]`
|
redundant else block:
serde_at/src/de/mod.rs#L129
warning: redundant else block
--> serde_at/src/de/mod.rs:129:16
|
129 | } else {
| ________________^
130 | | loop {
131 | | match self.peek() {
132 | | Some(b'"') => {
... |
170 | | }
171 | | }
| |_________^
|
= 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)]`
|
use Option::map_or_else instead of an if let/else:
atat_derive/src/cmd.rs#L93
warning: use Option::map_or_else instead of an if let/else
--> atat_derive/src/cmd.rs:93:17
|
93 | let parse = if let Some(parse) = parse {
| _________________^
94 | | quote! {
95 | | #[inline]
96 | | fn parse(&self, res: Result<&[u8], atat::InternalError>) -> core::result::Result<Self::Response, atat::Error> {
... |
116 | | }
117 | | };
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
|
93 ~ let parse = parse.map_or_else(|| quote! {
94 + #[inline]
95 + fn parse(&self, res: Result<&[u8], atat::InternalError>) -> core::result::Result<Self::Response, atat::Error> {
96 + match res {
97 + Ok(resp) => atat::serde_at::from_slice::<#resp>(resp).map_err(|e| {
98 + atat::Error::Parse
99 + }),
100 + Err(e) => Err(e.into())
101 + }
102 + }
103 + }, |parse| quote! {
104 + #[inline]
105 + fn parse(&self, res: Result<&[u8], atat::InternalError>) -> core::result::Result<Self::Response, atat::Error> {
106 + match res {
107 + Ok(resp) => #parse(resp).map_err(|e| {
108 + atat::Error::Parse
109 + }),
110 + Err(e) => Err(e.into())
111 + }
112 + }
113 ~ });
|
|
use Option::map_or_else instead of an if let/else:
atat_derive/src/cmd.rs#L64
warning: use Option::map_or_else instead of an if let/else
--> atat_derive/src/cmd.rs:64:34
|
64 | let reattempt_on_parse_err = match reattempt_on_parse_err {
| __________________________________^
65 | | Some(reattempt_on_parse_err) => {
66 | | quote! {
67 | | const REATTEMPT_ON_PARSE_ERR: bool = #reattempt_on_parse_err;
... |
70 | | None => quote! {},
71 | | };
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
|
64 ~ let reattempt_on_parse_err = reattempt_on_parse_err.map_or_else(|| quote! {}, |reattempt_on_parse_err| quote! {
65 + const REATTEMPT_ON_PARSE_ERR: bool = #reattempt_on_parse_err;
66 ~ });
|
|
use Option::map_or_else instead of an if let/else:
atat_derive/src/cmd.rs#L55
warning: use Option::map_or_else instead of an if let/else
--> atat_derive/src/cmd.rs:55:20
|
55 | let attempts = match attempts {
| ____________________^
56 | | Some(attempts) => {
57 | | quote! {
58 | | const ATTEMPTS: u8 = #attempts;
... |
61 | | None => quote! {},
62 | | };
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
|
55 ~ let attempts = attempts.map_or_else(|| quote! {}, |attempts| quote! {
56 + const ATTEMPTS: u8 = #attempts;
57 ~ });
|
|
use Option::map_or_else instead of an if let/else:
atat_derive/src/cmd.rs#L46
warning: use Option::map_or_else instead of an if let/else
--> atat_derive/src/cmd.rs:46:21
|
46 | let abortable = match abortable {
| _____________________^
47 | | Some(abortable) => {
48 | | quote! {
49 | | const CAN_ABORT: bool = #abortable;
... |
52 | | None => quote! {},
53 | | };
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else
help: try
|
46 ~ let abortable = abortable.map_or_else(|| quote! {}, |abortable| quote! {
47 + const CAN_ABORT: bool = #abortable;
48 ~ });
|
|
use Option::map_or_else instead of an if let/else:
atat_derive/src/cmd.rs#L37
warning: use Option::map_or_else instead of an if let/else
--> atat_derive/src/cmd.rs:37:19
|
37 | let timeout = match timeout_ms {
| ___________________^
38 | | Some(timeout_ms) => {
39 | | quote! {
40 | | const MAX_TIMEOUT_MS: u32 = #timeout_ms;
... |
43 | | None => quote! {},
44 | | };
| |_____^
|
= 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)]`
help: try
|
37 ~ let timeout = timeout_ms.map_or_else(|| quote! {}, |timeout_ms| quote! {
38 + const MAX_TIMEOUT_MS: u32 = #timeout_ms;
39 ~ });
|
|
unnecessary boolean `not` operation:
serde_at/src/ser/mod.rs#L411
warning: unnecessary boolean `not` operation
--> serde_at/src/ser/mod.rs:411:26
|
411 | let ser_struct = if !self.nested_struct {
| __________________________^
412 | | // all calls to serialize_struct after this one will be nested structs
413 | | self.nested_struct = true;
414 | | self.extend_from_slice(self.options.cmd_prefix.as_bytes())?;
... |
418 | | SerializeStruct::new(self, true)
419 | | };
| |_________^
|
= help: remove the `!` and swap the blocks of the `if`/`else`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_not_else
= note: `-W clippy::if-not-else` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::if_not_else)]`
|
unnecessary boolean `not` operation:
serde_at/src/ser/mod.rs#L411
warning: unnecessary boolean `not` operation
--> serde_at/src/ser/mod.rs:411:26
|
411 | let ser_struct = if !self.nested_struct {
| __________________________^
412 | | // all calls to serialize_struct after this one will be nested structs
413 | | self.nested_struct = true;
414 | | self.extend_from_slice(self.options.cmd_prefix.as_bytes())?;
... |
418 | | SerializeStruct::new(self, true)
419 | | };
| |_________^
|
= help: remove the `!` and swap the blocks of the `if`/`else`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_not_else
= note: `-W clippy::if-not-else` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::if_not_else)]`
|
item in documentation is missing backticks:
serde_at/src/de/mod.rs#L574
warning: item in documentation is missing backticks
--> serde_at/src/de/mod.rs:574:52
|
574 | /// deserialize_tuple is (mis)used for parsing LengthDelimited types.
| ^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown
help: try
|
574 | /// deserialize_tuple is (mis)used for parsing `LengthDelimited` types.
| ~~~~~~~~~~~~~~~~~
|
item in documentation is missing backticks:
serde_at/src/de/mod.rs#L574
warning: item in documentation is missing backticks
--> serde_at/src/de/mod.rs:574:9
|
574 | /// deserialize_tuple is (mis)used for parsing LengthDelimited types.
| ^^^^^^^^^^^^^^^^^
|
= 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
|
574 | /// `deserialize_tuple` is (mis)used for parsing LengthDelimited types.
| ~~~~~~~~~~~~~~~~~~~
|
item in documentation is missing backticks:
serde_at/src/de/mod.rs#L574
warning: item in documentation is missing backticks
--> serde_at/src/de/mod.rs:574:52
|
574 | /// deserialize_tuple is (mis)used for parsing LengthDelimited types.
| ^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown
help: try
|
574 | /// deserialize_tuple is (mis)used for parsing `LengthDelimited` types.
| ~~~~~~~~~~~~~~~~~
|
item in documentation is missing backticks:
serde_at/src/de/mod.rs#L574
warning: item in documentation is missing backticks
--> serde_at/src/de/mod.rs:574:9
|
574 | /// deserialize_tuple is (mis)used for parsing LengthDelimited types.
| ^^^^^^^^^^^^^^^^^
|
= 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
|
574 | /// `deserialize_tuple` is (mis)used for parsing LengthDelimited types.
| ~~~~~~~~~~~~~~~~~~~
|
redundant field names in struct initialization:
serde_at/src/ser/mod.rs#L190
warning: redundant field names in struct initialization
--> serde_at/src/ser/mod.rs:190:13
|
190 | buf: buf,
| ^^^^^^^^ help: replace it with: `buf`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names
= note: `-W clippy::redundant-field-names` implied by `-W clippy::all`
= help: to override `-W clippy::all` add `#[allow(clippy::redundant_field_names)]`
|
redundant else block:
serde_at/src/de/mod.rs#L129
warning: redundant else block
--> serde_at/src/de/mod.rs:129:16
|
129 | } else {
| ________________^
130 | | loop {
131 | | match self.peek() {
132 | | Some(b'"') => {
... |
170 | | }
171 | | }
| |_________^
|
= 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)]`
|
redundant field names in struct initialization:
serde_at/src/ser/mod.rs#L190
warning: redundant field names in struct initialization
--> serde_at/src/ser/mod.rs:190:13
|
190 | buf: buf,
| ^^^^^^^^ help: replace it with: `buf`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names
= note: `-W clippy::redundant-field-names` implied by `-W clippy::all`
= help: to override `-W clippy::all` add `#[allow(clippy::redundant_field_names)]`
|
redundant else block:
serde_at/src/de/mod.rs#L129
warning: redundant else block
--> serde_at/src/de/mod.rs:129:16
|
129 | } else {
| ________________^
130 | | loop {
131 | | match self.peek() {
132 | | Some(b'"') => {
... |
170 | | }
171 | | }
| |_________^
|
= 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)]`
|