1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//! # Management
//!
//! For managing the Bluetooth controllers on your device (pairing, discovery,
//! broadcasting, etc.), you can use the management API. This is contained
//! inside of the [`management`] module, where the central type is
//! [`management::ManagementStream`].
//!
//! # Communication
//!
//! For communicating with other bluetooth devices, you have a couple of
//! options. You can use L2CAP streams or RFCOMM streams, both of which are
//! exposed through [`BluetoothStream`](crate::communication::BluetoothStream).
//!
//! This library also contains an implementation of Service Discovery Protocol
//! (SDP) which operates over L2CAP and is availabile in the
//! [`communication::discovery`](crate::communication::discovery) module.
//!
//! # Permissions
//! Commands that just query information, such as
//! [`get_controller_info`](crate::management::get_controller_info),
//! will usually work. However, commands that try to change any settings, such
//! as
//! [`set_powered`](crate::management::set_powered)
//! will fail with 'permission denied' errors if your process does not have the
//! `CAP_NET_ADMIN` capability.
extern crate num_derive;
extern crate thiserror;
pub use *;