Commit Graph
21 Commits
Author SHA1 Message Date
Lucas Silva Shepard e73a9bb9a8 [fp-rs] Updated API for accessing platform-specific structs.
Previously, `Device` trait was implemented by both Classic and BLE
Devices. This forced usage of associated types for choosing the type of
address employed, bringing about limitations of Rust's type system. By
ensuring cross-platform traits are only used for shared cross-platform
behavior, there are no longer type annotation issues in the application
layer.

Changes:
* Split the `Device` trait into `ClassicDevice` and `BleDevice`.
* Migrated these to an `api/` module to avoid name clashes and clearly
  differentiate common structs (under `common/) from common traits (under
  `api/)`.
* Removed shared `Address` enum in order to get rid of device's address
  associated type.
* Application layer can now only talk to impl traits rather than the concrete
  platform-specific type. This ensures compile-time behavior guarantees.
  Constructors for cross-platform impls provided under the `Platform`
  unit struct.
* Updated `unsupported` module for unsupported platforms. Previously,
  dummy inherent impls would've been necessary for calling the `new()`
  method. This is now part of the `ClassicDevice` and `BleDevice` API,
  so cross-platform behavior is guaranteed to work.
2023-07-29 17:23:45 -07:00
Lucas Silva Shepard 25a3257880 [fp-rs] Moving service data and advertisement information into separate BleAdvertisement struct. 2023-07-29 17:23:13 -07:00
Lucas Silva Shepard f42fdb4186 [fp-rs] Temporarily removing bluetooth lib abstraction layer, applications now talk directly to platform code.
Rust's type system is causing issues with notating associated types. For
now, concrete types will be used, but this will be fixed when the API is
updated with splitting Device into ClassicDevice and BleDevice.
2023-07-29 17:22:16 -07:00
Lucas Silva Shepard ba945aa360 [fp-rs] Implemented device selection CLI. 2023-07-29 17:22:14 -07:00
Lucas Silva Shepard 7730a0f1db [fp-rs] Updating Fast Pair Seeker to filter out non-FP advertisements. 2023-07-29 17:18:46 -07:00
Lucas Silva Shepard 81592cc4c5 [fp-rs] Device now holds 16bit UUID service data, collected by Adapter. 2023-07-29 17:18:46 -07:00
Lucas Silva Shepard 4be9872f6d [fp-rs] Updated device scanning interface to facilitate adding more functionality to device constructor. 2023-07-29 17:18:46 -07:00
Lucas Silva Shepard fc07423925 [fp-rs] Implemented classic device pairing 2023-07-29 17:18:46 -07:00
Lucas Silva Shepard 9da0bf2987 [fp-rs] Implemented address API 2023-07-29 17:18:46 -07:00
Lucas Silva Shepard 494eb66027 [fp-rs] Implemented custom error types for Bluetooth library. 2023-07-29 17:18:39 -07:00
Lucas Silva Shepard 251740d010 [fp-rs] Renaming folder windows_ble to windows, moving common to folder 2023-07-19 12:10:21 -07:00
Anay Wadhera daed4f5f62 Revert "Revert "Fast Pair BLE Device Discovery for Windows in Rust"" 2023-07-14 15:53:52 -04:00
suetfei 15d3341e34 Revert "Fast Pair BLE Device Discovery for Windows in Rust" 2023-07-14 12:50:20 -07:00
Lucas Silva Shepard a855dd19e1 [fp-rs] Cross-platform Bluetooth now interfaces with impl trait rather than concrete per-platform type. 2023-07-13 16:09:37 -07:00
Lucas Silva Shepard aeed049d58 [fp-rs] Updating device scanning interface, split into start/stop/next. 2023-07-13 16:08:44 -07:00
Lucas Silva Shepard 1375066f74 [fp-rs] Adding line width formatting to Fast Pair Rust. 2023-07-13 16:08:23 -07:00
Lucas Silva Shepard 07b5750f07 [fp-rs] Implemented device discovery for FP Windows in Rust. 2023-07-13 16:08:22 -07:00
Lucas Silva Shepard 4e8c66e88b [fp-rs] Setting up boilerplate for multiplatform FP Rust. 2023-07-13 16:06:31 -07:00
Lucas Silva Shepard 5306df9251 [fp-rs] Adding Rust and IntelliJ to .gitignore 2023-07-12 12:42:45 -07:00
Suet-Fei Li 7aa1d852f1 Use public link for MessageStream.
PiperOrigin-RevId: 536516027
2023-05-30 14:52:10 -07:00
Suet-fei Li 9e37ea08be . 2023-05-27 01:08:14 +00:00