Deserializing BDAddr from non-borrowed string without clone (#415) #452
Annotations
36 warnings
format
ubuntu-latest pipelines will use ubuntu-24.04 soon. For more details, see https://github.com/actions/runner-images/issues/10636
|
usage of `contains_key` followed by `insert` on a `HashMap`:
src/corebluetooth/internal.rs#L582
warning: usage of `contains_key` followed by `insert` on a `HashMap`
--> src/corebluetooth/internal.rs:582:9
|
582 | / if self.peripherals.contains_key(&uuid) {
583 | | if let Some(name) = name {
584 | | self.dispatch_event(CoreBluetoothEvent::DeviceUpdated {
585 | | uuid,
... |
600 | | .await;
601 | | }
| |_________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry
= note: `#[warn(clippy::map_entry)]` on by default
help: try
|
582 ~ if let std::collections::hash_map::Entry::Vacant(e) = self.peripherals.entry(uuid) {
583 + // Create our channels
584 + let (event_sender, event_receiver) = mpsc::channel(256);
585 + e.insert(PeripheralInternal::new(peripheral, event_sender));
586 + self.dispatch_event(CoreBluetoothEvent::DeviceDiscovered {
587 + uuid,
588 + name: name.map(|name| name.to_string()),
589 + event_receiver,
590 + })
591 + .await;
592 + } else {
593 + if let Some(name) = name {
594 + self.dispatch_event(CoreBluetoothEvent::DeviceUpdated {
595 + uuid,
596 + name: name.to_string(),
597 + })
598 + .await;
599 + }
600 + }
|
|
explicit call to `.into_iter()` in function argument accepting `IntoIterator`:
src/corebluetooth/internal.rs#L350
warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator`
--> src/corebluetooth/internal.rs:350:32
|
350 | .chain(unsubscribe_future_state.into_iter());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing the `.into_iter()`: `unsubscribe_future_state`
|
note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()`
--> /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/iter/traits/iterator.rs:479:12
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
|
this `.into_iter()` call is equivalent to `.iter()` and will not consume the `VecDeque`:
src/corebluetooth/internal.rs#L350
warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `VecDeque`
--> src/corebluetooth/internal.rs:350:57
|
350 | .chain(unsubscribe_future_state.into_iter());
| ^^^^^^^^^ help: call directly: `iter`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref
|
explicit call to `.into_iter()` in function argument accepting `IntoIterator`:
src/corebluetooth/internal.rs#L349
warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator`
--> src/corebluetooth/internal.rs:349:32
|
349 | .chain(subscribe_future_state.into_iter())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing the `.into_iter()`: `subscribe_future_state`
|
note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()`
--> /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/iter/traits/iterator.rs:479:12
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
|
this `.into_iter()` call is equivalent to `.iter()` and will not consume the `VecDeque`:
src/corebluetooth/internal.rs#L349
warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `VecDeque`
--> src/corebluetooth/internal.rs:349:55
|
349 | .chain(subscribe_future_state.into_iter())
| ^^^^^^^^^ help: call directly: `iter`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref
|
explicit call to `.into_iter()` in function argument accepting `IntoIterator`:
src/corebluetooth/internal.rs#L348
warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator`
--> src/corebluetooth/internal.rs:348:32
|
348 | .chain(write_future_state.into_iter())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing the `.into_iter()`: `write_future_state`
|
note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()`
--> /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/iter/traits/iterator.rs:479:12
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion
= note: `#[warn(clippy::useless_conversion)]` on by default
|
this `.into_iter()` call is equivalent to `.iter()` and will not consume the `VecDeque`:
src/corebluetooth/internal.rs#L348
warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `VecDeque`
--> src/corebluetooth/internal.rs:348:51
|
348 | .chain(write_future_state.into_iter())
| ^^^^^^^^^ help: call directly: `iter`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref
|
this `.into_iter()` call is equivalent to `.iter()` and will not consume the `VecDeque`:
src/corebluetooth/internal.rs#L347
warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `VecDeque`
--> src/corebluetooth/internal.rs:347:26
|
347 | .into_iter()
| ^^^^^^^^^ help: call directly: `iter`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref
= note: `#[warn(clippy::into_iter_on_ref)]` on by default
|
deref which would be done by auto-deref:
src/corebluetooth/internal.rs#L92
warning: deref which would be done by auto-deref
--> src/corebluetooth/internal.rs:92:61
|
92 | let properties = CharacteristicInternal::form_flags(&*characteristic);
| ^^^^^^^^^^^^^^^^ help: try: `&characteristic`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref
= note: `#[warn(clippy::explicit_auto_deref)]` on by default
|
doc list item without indentation:
src/corebluetooth/future.rs#L39
warning: doc list item without indentation
--> src/corebluetooth/future.rs:39:9
|
39 | /// corresponding future.
| ^
|
= help: if this is supposed to be its own paragraph, add a blank line
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation
= note: `#[warn(clippy::doc_lazy_continuation)]` on by default
help: indent this line
|
39 | /// corresponding future.
| ++
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/corebluetooth/central_delegate.rs#L694
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/corebluetooth/central_delegate.rs:694:48
|
694 | data: get_descriptor_value(&descriptor),
| ^^^^^^^^^^^ help: change this to: `descriptor`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
= note: `#[warn(clippy::needless_borrow)]` on by default
|
redundant field names in struct initialization:
src/corebluetooth/peripheral.rs#L171
warning: redundant field names in struct initialization
--> src/corebluetooth/peripheral.rs:171:16
|
171 | Self { shared: shared }
| ^^^^^^^^^^^^^^ help: replace it with: `shared`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names
= note: `#[warn(clippy::redundant_field_names)]` on by default
|
this `match` can be collapsed into the outer `match`:
src/bluez/adapter.rs#L183
warning: this `match` can be collapsed into the outer `match`
--> src/bluez/adapter.rs:183:34
|
183 | } if id == adapter_id => match adapter_event {
| __________________________________^
184 | | AdapterEvent::Powered { powered } => {
185 | | let state = get_central_state(powered);
186 | | Some(CentralEvent::StateUpdate(state))
187 | | }
188 | | _ => None,
189 | | },
| |_________^
|
help: the outer pattern can be modified to include the inner pattern
--> src/bluez/adapter.rs:182:20
|
182 | event: adapter_event,
| ^^^^^^^^^^^^^ replace this binding
183 | } if id == adapter_id => match adapter_event {
184 | AdapterEvent::Powered { powered } => {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern, prefixed by `adapter_event`:
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match
= note: `#[warn(clippy::collapsible_match)]` on by default
|
build (linux)
ubuntu-latest pipelines will use ubuntu-24.04 soon. For more details, see https://github.com/actions/runner-images/issues/10636
|
redundant closure:
src/droidplug/mod.rs#L14
warning: redundant closure
--> src/droidplug/mod.rs:14:36
|
14 | GLOBAL_ADAPTER.get_or_try_init(|| adapter::Adapter::new())?;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `adapter::Adapter::new`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
= note: `#[warn(clippy::redundant_closure)]` on by default
|
using `clone` on type `JObject<'_>` which implements the `Copy` trait:
src/droidplug/jni/objects.rs#L722
warning: using `clone` on type `JObject<'_>` which implements the `Copy` trait
--> src/droidplug/jni/objects.rs:722:33
|
722 | .is_same_object(services_obj.clone(), JObject::null())?
| ^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*services_obj`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy
|
using `clone` on type `JObject<'_>` which implements the `Copy` trait:
src/droidplug/jni/objects.rs#L705
warning: using `clone` on type `JObject<'_>` which implements the `Copy` trait
--> src/droidplug/jni/objects.rs:705:33
|
705 | .is_same_object(service_data_obj.clone(), JObject::null())?
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*service_data_obj`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy
|
using `clone` on type `JObject<'_>` which implements the `Copy` trait:
src/droidplug/jni/objects.rs#L689
warning: using `clone` on type `JObject<'_>` which implements the `Copy` trait
--> src/droidplug/jni/objects.rs:689:33
|
689 | .is_same_object(manufacturer_specific_data_obj.clone(), JObject::null())?
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*manufacturer_specific_data_obj`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy
|
using `clone` on type `JObject<'_>` which implements the `Copy` trait:
src/droidplug/jni/objects.rs#L649
warning: using `clone` on type `JObject<'_>` which implements the `Copy` trait
--> src/droidplug/jni/objects.rs:649:29
|
649 | .is_same_object(record_obj.clone(), JObject::null())?
| ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*record_obj`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy
= note: `#[warn(clippy::clone_on_copy)]` on by default
|
question mark operator is useless here:
src/droidplug/jni/objects.rs#L475
warning: question mark operator is useless here
--> src/droidplug/jni/objects.rs:475:9
|
475 | Ok(uuid_obj.as_uuid()?)
| ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing question mark and `Ok()`: `uuid_obj.as_uuid()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark
|
question mark operator is useless here:
src/droidplug/jni/objects.rs#L398
warning: question mark operator is useless here
--> src/droidplug/jni/objects.rs:398:9
|
398 | Ok(uuid_obj.as_uuid()?)
| ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing question mark and `Ok()`: `uuid_obj.as_uuid()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark
|
question mark operator is useless here:
src/droidplug/jni/objects.rs#L337
warning: question mark operator is useless here
--> src/droidplug/jni/objects.rs:337:9
|
337 | Ok(uuid_obj.as_uuid()?)
| ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing question mark and `Ok()`: `uuid_obj.as_uuid()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark
= note: `#[warn(clippy::needless_question_mark)]` on by default
|
this expression borrows a value the compiler would automatically borrow:
src/droidplug/peripheral.rs#L256
warning: this expression borrows a value the compiler would automatically borrow
--> src/droidplug/peripheral.rs:256:9
|
256 | (&guard.services).clone()
| ^^^^^^^^^^^^^^^^^ help: change this to: `guard.services`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression borrows a value the compiler would automatically borrow:
src/droidplug/peripheral.rs#L227
warning: this expression borrows a value the compiler would automatically borrow
--> src/droidplug/peripheral.rs:227:9
|
227 | (&guard.characteristics).clone()
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `guard.characteristics`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression borrows a value the compiler would automatically borrow:
src/droidplug/peripheral.rs#L222
warning: this expression borrows a value the compiler would automatically borrow
--> src/droidplug/peripheral.rs:222:12
|
222 | Ok((&guard.properties).clone())
| ^^^^^^^^^^^^^^^^^^^ help: change this to: `guard.properties`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
= note: `#[warn(clippy::needless_borrow)]` on by default
|
function `notifications_stream_from_broadcast_receiver` is never used:
src/common/util.rs#L14
warning: function `notifications_stream_from_broadcast_receiver` is never used
--> src/common/util.rs:14:8
|
14 | pub fn notifications_stream_from_broadcast_receiver(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
method `peripheral_mut` is never used:
src/common/adapter_manager.rs#L76
warning: method `peripheral_mut` is never used
--> src/common/adapter_manager.rs:76:12
|
42 | / impl<PeripheralType> AdapterManager<PeripheralType>
43 | | where
44 | | PeripheralType: Peripheral + 'static,
| |_________________________________________- method in this implementation
...
76 | pub fn peripheral_mut(
| ^^^^^^^^^^^^^^
|
= note: `#[warn(dead_code)]` on by default
|
variable does not need to be mutable:
src/droidplug/peripheral.rs#L168
warning: variable does not need to be mutable
--> src/droidplug/peripheral.rs:168:44
|
168 | pub(crate) fn report_properties(&self, mut properties: PeripheralProperties) {
| ----^^^^^^^^^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
|
redundant field names in struct initialization:
src/droidplug/peripheral.rs#L293
warning: redundant field names in struct initialization
--> src/droidplug/peripheral.rs:293:25
|
293 | descriptors: descriptors,
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `descriptors`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names
= note: `#[warn(clippy::redundant_field_names)]` on by default
|
unused import: `descriptors`:
src/droidplug/peripheral.rs#L11
warning: unused import: `descriptors`
--> src/droidplug/peripheral.rs:11:5
|
11 | descriptors,
| ^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
build (android)
ubuntu-latest pipelines will use ubuntu-24.04 soon. For more details, see https://github.com/actions/runner-images/issues/10636
|
build (android)
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/
|
build (android)
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/
|
build (android)
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/
|
build (android)
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/
|