⚠ This page is served via a proxy. Original site: https://github.com
This service does not collect credentials or authentication data.
Skip to content

Conversation

@cachebag
Copy link
Owner

@cachebag cachebag commented Jan 19, 2026

This PR will be the working draft for the 2.0.0 release

Closes #176, #188, #185

also writes in field and display for Bluetooth device type
- Implement Bluetooth connection logic
- Add BlueZ D-Bus integration for device name/alias retrieval
- Create Bluetooth connection builder with PANU/DUN support
- Add `ActiveTransport` trait for unified connection monitoring
- Refactor WiFi monitoring functions into `wifi.rs` module
- Add `BluetoothDevice`, `BluetoothIdentity` models
- Implement `list_bluetooth_devices()` API
- Add `bluetooth` and `bluetooth_connect` examples
- Update `connection.rs` to use `ActiveTransport` trait
This commit also marks various structs/enums as `non_exhaustive` so as to avoid breaking the public API
- We now list bluetooth devices based on their capabilities, which requires us to proxy the Bluetooth interface of course
- Refactored `forget()` to target more than just wifi devices, as with the case in bluetooth devices, we dont actually need all the fields wifi does
- Changed the `BluetoothDevice` model to take `bt_caps` instead of the `bt_device_type` which is canonical with what NM expects from Bluetooth devices (since we can just grab the type whenever we want via `DeviceType` in `NMDeviceProxy`)
- Other pedantic changes to tests, and docs due to changes above
…sibility

- Add #[non_exhaustive] to all public enums and structs that may evolve in 2.x
- Implement constructors and builder methods for structs that need external instantiation
  - EapOptions::new() with builder methods
  - ConnectionOptions::new() with builder methods
  - VpnCredentials::new() with builder methods
  - WireGuardPeer::new() with builder methods
- Update all doctests, examples, and tests to use new constructors
- Update VpnConnection and VpnConnectionInfo doctests to reflect read-only nature

This ensures we can add new enum variants, struct fields, device types, and error
types in future 2.x releases without breaking changes to the public API.
@cachebag cachebag self-assigned this Jan 19, 2026
@cachebag cachebag added the nmrs Changes attribute to nmrs label Jan 19, 2026
also updates CHANGELOG accordingly for 2.0.0 release
@cachebag cachebag marked this pull request as ready for review January 19, 2026 04:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

nmrs Changes attribute to nmrs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REFACTOR] builder pattern for complex types [BUG] nmrs: timeout values are hardcoded [BUG] nmrs empty password handling

1 participant