rust/bt-mcs: Add McsServerBuilder and GATT service definition

Implement `McsServerBuilder` for configuring and constructing the GATT
`ServiceDefinition` for Generic Media Control Service (GMCS) and Media
Control Service (MCS). Both services are largely the same and can be
configured.

Register all 13 mandatory characteristics as defined in MCS v1.0.1
Section 3.

Bug: 540400364
Test: cargo test -p bt-mcs
Change-Id: I3c7b4b3c405f3d52ab7a3937081a6b3981c9749b
Reviewed-on: https://bluetooth-review.googlesource.com/c/bluetooth/+/3660
3 files changed
tree: 1341f18b5a58a50c78a92d5f092db8d578d52401
  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)