rust/bt-mcs: Add initial type definitions

Add the initial package definition for the bt-mcs crate, introducing
UUID constants, error types, state enums, bitmask flags, and wire
codecs for the Media Control Service (MCS v1.0.1) and Generic Media
Control Service (GMCS v1.0.1).

Include the bitflags crate in the toplevel project repository to be used
by the MCS types.

Define a crate-specific Error type for clients interacting with the MCS
library.

Bug: 540400364
Test: cargo test --package bt-mcs, ./presubmit.sh
Change-Id: Ia44a18f06abfeaf2b944fddb31b25872dc64b9c9
Reviewed-on: https://bluetooth-review.googlesource.com/c/bluetooth/+/3520
5 files changed
tree: 5c5e3026146d2741d28268063d1779464ca1ab26
  1. .agents/
  2. docs/
  3. infra/
  4. rust/
  5. .gitignore
  6. AUTHORS
  7. CONTRIBUTING.md
  8. GEMINI.md
  9. LICENSE
  10. OWNERS
  11. PATENTS
  12. presubmit.sh
  13. README.md
README.md

Bluetooth Shared Libraries

What is this?

This is a repository for shared libraries and tools that can be useful for multiple Bluetooth stacks.

These tools and libraries are meant to be:

  • Stack-agnostic and platform-agnostic
  • Implement a useful subset of a published Bluetooth specification.

It has been started as a repository for developing Rust crates but can be easily expanded to include libraries and tools written in other languages.

What is this not?

It is not a full Bluetooth stack. Google has two officially open-source Bluetooth stacks:

Structure

  • rust - Rust Crates
  • docs - General documentation (documentation for each library/tool is included in their directories)