1 //! Bluetooth common library 2 #[macro_use] 3 extern crate lazy_static; 4 5 /// Provides waking timer abstractions 6 pub mod time; 7 8 #[macro_use] 9 mod ready; 10 11 #[cfg(test)] 12 #[macro_use] 13 mod asserts; 14 15 /// Provides runtime configured-at-startup flags 16 pub mod init_flags; 17 18 /// Provides runtime configured system properties. Stubbed for non-Android. 19 pub mod sys_prop; 20 21 /// Inits logging for Android 22 #[cfg(target_os = "android")] init_logging()23pub fn init_logging() { 24 android_logger::init_once( 25 android_logger::Config::default().with_tag("bt").with_min_level(log::Level::Debug), 26 ); 27 } 28 29 /// Inits logging for host 30 #[cfg(not(target_os = "android"))] init_logging()31pub fn init_logging() { 32 env_logger::Builder::new() 33 .filter(None, log::LevelFilter::Debug) 34 .parse_default_env() 35 .try_init() 36 .ok(); 37 } 38 39 /// Indicates the object can be converted to a GRPC service 40 pub trait GrpcFacade { 41 /// Convert the object into the service into_grpc(self) -> grpcio::Service42 fn into_grpc(self) -> grpcio::Service; 43 } 44 45 /// Useful for distinguishing between BT classic & LE in functions that support both 46 #[derive(Debug, Clone, Copy)] 47 pub enum Bluetooth { 48 /// Classic BT we all know and love, started in the 90s. 49 Classic, 50 /// Bluetooth low energy from the 2010s. Also known as BLE, BTLE, etc. 51 Le, 52 } 53