fuchsia_bluetooth/types/
io_capabilities.rs
1use fidl_fuchsia_bluetooth_sys as sys;
6use std::str::FromStr;
7
8use crate::error::Error;
9
10#[derive(Clone, Copy, Debug, PartialEq)]
11pub enum InputCapability {
12 None,
13 Confirmation,
14 Keyboard,
15}
16
17impl FromStr for InputCapability {
18 type Err = Error;
19
20 fn from_str(src: &str) -> Result<Self, Self::Err> {
21 match src {
22 "none" => Ok(InputCapability::None),
23 "confirmation" => Ok(InputCapability::Confirmation),
24 "keyboard" => Ok(InputCapability::Keyboard),
25 cap => Err(Error::other(&format!("invalid input capability: {cap}"))),
26 }
27 }
28}
29
30impl Into<sys::InputCapability> for InputCapability {
31 fn into(self) -> sys::InputCapability {
32 match self {
33 InputCapability::None => sys::InputCapability::None,
34 InputCapability::Confirmation => sys::InputCapability::Confirmation,
35 InputCapability::Keyboard => sys::InputCapability::Keyboard,
36 }
37 }
38}
39
40#[derive(Clone, Copy, Debug, PartialEq)]
41pub enum OutputCapability {
42 None,
43 Display,
44}
45
46impl FromStr for OutputCapability {
47 type Err = Error;
48
49 fn from_str(src: &str) -> Result<Self, Self::Err> {
50 match src {
51 "none" => Ok(OutputCapability::None),
52 "display" => Ok(OutputCapability::Display),
53 cap => Err(Error::other(&format!("invalid output capability: {cap}"))),
54 }
55 }
56}
57
58impl Into<sys::OutputCapability> for OutputCapability {
59 fn into(self) -> sys::OutputCapability {
60 match self {
61 OutputCapability::None => sys::OutputCapability::None,
62 OutputCapability::Display => sys::OutputCapability::Display,
63 }
64 }
65}