Skip to content

Deserializing BDAddr from non-borrowed string without clone (#415) #452

Deserializing BDAddr from non-borrowed string without clone (#415)

Deserializing BDAddr from non-borrowed string without clone (#415) #452

Triggered via push December 19, 2024 13:42
Status Success
Total duration 4m 24s
Artifacts

rust.yml

on: push
Matrix: build
Fit to window
Zoom out
Zoom in

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/