1 //! Topshim is the main entry point from Rust code to C++. 2 //! 3 //! The Bluetooth stack is split into two parts: libbluetooth and the framework 4 //! above it. Libbluetooth is a combination of C/C++ and Rust that provides the 5 //! core Bluetooth functionality. It exposes top level apis in `bt_interface_t` 6 //! which can be used to drive the underlying implementation. Topshim provides 7 //! Rust apis to access this C/C++ interface and other top level interfaces in 8 //! order to use libbluetooth. 9 //! 10 //! The expected users of Topshim: 11 //! * Floss (ChromeOS + Linux Bluetooth stack; uses D-Bus) 12 //! * Topshim facade (used for testing) 13 14 #[macro_use] 15 extern crate lazy_static; 16 #[macro_use] 17 extern crate num_derive; 18 #[macro_use] 19 extern crate bitflags; 20 21 /// Bindgen bindings for accessing libbluetooth. 22 pub mod bindings; 23 24 pub mod btif; 25 26 /// Helper module for the topshim facade. 27 pub mod controller; 28 29 pub mod profiles; 30 31 pub mod topstack; 32