bluetooth/
empty.rs

1/* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5use std::collections::HashMap;
6use std::error::Error;
7use std::sync::Arc;
8
9const NOT_SUPPORTED_ERROR: &str = "Error! Not supported platform!";
10
11#[derive(Clone, Debug)]
12pub struct EmptyAdapter {}
13
14impl EmptyAdapter {
15    pub fn init() -> Result<EmptyAdapter, Box<dyn Error>> {
16        Ok(EmptyAdapter::new())
17    }
18
19    fn new() -> EmptyAdapter {
20        EmptyAdapter {}
21    }
22
23    pub fn get_id(&self) -> String {
24        String::new()
25    }
26
27    pub fn get_device_list(&self) -> Result<Vec<String>, Box<dyn Error>> {
28        Err(Box::from(NOT_SUPPORTED_ERROR))
29    }
30
31    pub fn get_address(&self) -> Result<String, Box<dyn Error>> {
32        Err(Box::from(NOT_SUPPORTED_ERROR))
33    }
34
35    pub fn get_name(&self) -> Result<String, Box<dyn Error>> {
36        Err(Box::from(NOT_SUPPORTED_ERROR))
37    }
38
39    pub fn get_alias(&self) -> Result<String, Box<dyn Error>> {
40        Err(Box::from(NOT_SUPPORTED_ERROR))
41    }
42
43    pub fn set_alias(&self, _value: String) -> Result<(), Box<dyn Error>> {
44        Err(Box::from(NOT_SUPPORTED_ERROR))
45    }
46
47    pub fn get_class(&self) -> Result<u32, Box<dyn Error>> {
48        Err(Box::from(NOT_SUPPORTED_ERROR))
49    }
50
51    pub fn is_powered(&self) -> Result<bool, Box<dyn Error>> {
52        Err(Box::from(NOT_SUPPORTED_ERROR))
53    }
54
55    pub fn set_powered(&self, _value: bool) -> Result<(), Box<dyn Error>> {
56        Err(Box::from(NOT_SUPPORTED_ERROR))
57    }
58
59    pub fn is_discoverable(&self) -> Result<bool, Box<dyn Error>> {
60        Err(Box::from(NOT_SUPPORTED_ERROR))
61    }
62
63    pub fn set_discoverable(&self, _value: bool) -> Result<(), Box<dyn Error>> {
64        Err(Box::from(NOT_SUPPORTED_ERROR))
65    }
66
67    pub fn is_pairable(&self) -> Result<bool, Box<dyn Error>> {
68        Err(Box::from(NOT_SUPPORTED_ERROR))
69    }
70
71    pub fn set_pairable(&self, _value: bool) -> Result<(), Box<dyn Error>> {
72        Err(Box::from(NOT_SUPPORTED_ERROR))
73    }
74
75    pub fn get_pairable_timeout(&self) -> Result<u32, Box<dyn Error>> {
76        Err(Box::from(NOT_SUPPORTED_ERROR))
77    }
78
79    pub fn set_pairable_timeout(&self, _value: u32) -> Result<(), Box<dyn Error>> {
80        Err(Box::from(NOT_SUPPORTED_ERROR))
81    }
82
83    pub fn get_discoverable_timeout(&self) -> Result<u32, Box<dyn Error>> {
84        Err(Box::from(NOT_SUPPORTED_ERROR))
85    }
86
87    pub fn set_discoverable_timeout(&self, _value: u32) -> Result<(), Box<dyn Error>> {
88        Err(Box::from(NOT_SUPPORTED_ERROR))
89    }
90
91    pub fn is_discovering(&self) -> Result<bool, Box<dyn Error>> {
92        Err(Box::from(NOT_SUPPORTED_ERROR))
93    }
94
95    pub fn get_uuids(&self) -> Result<Vec<String>, Box<dyn Error>> {
96        Err(Box::from(NOT_SUPPORTED_ERROR))
97    }
98
99    pub fn get_vendor_id_source(&self) -> Result<String, Box<dyn Error>> {
100        Err(Box::from(NOT_SUPPORTED_ERROR))
101    }
102
103    pub fn get_vendor_id(&self) -> Result<u32, Box<dyn Error>> {
104        Err(Box::from(NOT_SUPPORTED_ERROR))
105    }
106
107    pub fn get_product_id(&self) -> Result<u32, Box<dyn Error>> {
108        Err(Box::from(NOT_SUPPORTED_ERROR))
109    }
110
111    pub fn get_device_id(&self) -> Result<u32, Box<dyn Error>> {
112        Err(Box::from(NOT_SUPPORTED_ERROR))
113    }
114
115    pub fn get_modalias(&self) -> Result<(String, u32, u32, u32), Box<dyn Error>> {
116        Err(Box::from(NOT_SUPPORTED_ERROR))
117    }
118}
119
120#[derive(Clone, Debug)]
121pub struct BluetoothDiscoverySession {}
122
123impl BluetoothDiscoverySession {
124    pub fn create_session(
125        _adapter: Arc<EmptyAdapter>,
126    ) -> Result<BluetoothDiscoverySession, Box<dyn Error>> {
127        Ok(BluetoothDiscoverySession {})
128    }
129
130    pub fn start_discovery(&self) -> Result<(), Box<dyn Error>> {
131        Err(Box::from(NOT_SUPPORTED_ERROR))
132    }
133
134    pub fn stop_discovery(&self) -> Result<(), Box<dyn Error>> {
135        Err(Box::from(NOT_SUPPORTED_ERROR))
136    }
137}
138
139#[derive(Clone, Debug)]
140pub struct BluetoothDevice {}
141
142impl BluetoothDevice {
143    pub fn new(_device: String) -> BluetoothDevice {
144        BluetoothDevice {}
145    }
146
147    pub fn get_id(&self) -> String {
148        String::new()
149    }
150
151    pub fn get_address(&self) -> Result<String, Box<dyn Error>> {
152        Err(Box::from(NOT_SUPPORTED_ERROR))
153    }
154
155    pub fn get_name(&self) -> Result<String, Box<dyn Error>> {
156        Err(Box::from(NOT_SUPPORTED_ERROR))
157    }
158
159    pub fn get_icon(&self) -> Result<String, Box<dyn Error>> {
160        Err(Box::from(NOT_SUPPORTED_ERROR))
161    }
162
163    pub fn get_class(&self) -> Result<u32, Box<dyn Error>> {
164        Err(Box::from(NOT_SUPPORTED_ERROR))
165    }
166
167    pub fn get_appearance(&self) -> Result<u16, Box<dyn Error>> {
168        Err(Box::from(NOT_SUPPORTED_ERROR))
169    }
170
171    pub fn get_uuids(&self) -> Result<Vec<String>, Box<dyn Error>> {
172        Err(Box::from(NOT_SUPPORTED_ERROR))
173    }
174
175    pub fn is_paired(&self) -> Result<bool, Box<dyn Error>> {
176        Err(Box::from(NOT_SUPPORTED_ERROR))
177    }
178
179    pub fn is_connected(&self) -> Result<bool, Box<dyn Error>> {
180        Err(Box::from(NOT_SUPPORTED_ERROR))
181    }
182
183    pub fn is_trusted(&self) -> Result<bool, Box<dyn Error>> {
184        Err(Box::from(NOT_SUPPORTED_ERROR))
185    }
186
187    pub fn is_blocked(&self) -> Result<bool, Box<dyn Error>> {
188        Err(Box::from(NOT_SUPPORTED_ERROR))
189    }
190
191    pub fn get_alias(&self) -> Result<String, Box<dyn Error>> {
192        Err(Box::from(NOT_SUPPORTED_ERROR))
193    }
194
195    pub fn set_alias(&self, _value: String) -> Result<(), Box<dyn Error>> {
196        Err(Box::from(NOT_SUPPORTED_ERROR))
197    }
198
199    pub fn is_legacy_pairing(&self) -> Result<bool, Box<dyn Error>> {
200        Err(Box::from(NOT_SUPPORTED_ERROR))
201    }
202
203    pub fn get_vendor_id_source(&self) -> Result<String, Box<dyn Error>> {
204        Err(Box::from(NOT_SUPPORTED_ERROR))
205    }
206
207    pub fn get_vendor_id(&self) -> Result<u32, Box<dyn Error>> {
208        Err(Box::from(NOT_SUPPORTED_ERROR))
209    }
210
211    pub fn get_product_id(&self) -> Result<u32, Box<dyn Error>> {
212        Err(Box::from(NOT_SUPPORTED_ERROR))
213    }
214
215    pub fn get_device_id(&self) -> Result<u32, Box<dyn Error>> {
216        Err(Box::from(NOT_SUPPORTED_ERROR))
217    }
218
219    pub fn get_modalias(&self) -> Result<(String, u32, u32, u32), Box<dyn Error>> {
220        Err(Box::from(NOT_SUPPORTED_ERROR))
221    }
222
223    pub fn get_rssi(&self) -> Result<i16, Box<dyn Error>> {
224        Err(Box::from(NOT_SUPPORTED_ERROR))
225    }
226
227    pub fn get_tx_power(&self) -> Result<i16, Box<dyn Error>> {
228        Err(Box::from(NOT_SUPPORTED_ERROR))
229    }
230
231    pub fn get_manufacturer_data(&self) -> Result<HashMap<u16, Vec<u8>>, Box<dyn Error>> {
232        Err(Box::from(NOT_SUPPORTED_ERROR))
233    }
234
235    pub fn get_service_data(&self) -> Result<HashMap<String, Vec<u8>>, Box<dyn Error>> {
236        Err(Box::from(NOT_SUPPORTED_ERROR))
237    }
238
239    pub fn get_gatt_services(&self) -> Result<Vec<String>, Box<dyn Error>> {
240        Err(Box::from(NOT_SUPPORTED_ERROR))
241    }
242
243    pub fn connect(&self) -> Result<(), Box<dyn Error>> {
244        Err(Box::from(NOT_SUPPORTED_ERROR))
245    }
246
247    pub fn disconnect(&self) -> Result<(), Box<dyn Error>> {
248        Err(Box::from(NOT_SUPPORTED_ERROR))
249    }
250
251    pub fn connect_profile(&self, _uuid: String) -> Result<(), Box<dyn Error>> {
252        Err(Box::from(NOT_SUPPORTED_ERROR))
253    }
254
255    pub fn disconnect_profile(&self, _uuid: String) -> Result<(), Box<dyn Error>> {
256        Err(Box::from(NOT_SUPPORTED_ERROR))
257    }
258
259    pub fn pair(&self) -> Result<(), Box<dyn Error>> {
260        Err(Box::from(NOT_SUPPORTED_ERROR))
261    }
262
263    pub fn cancel_pairing(&self) -> Result<(), Box<dyn Error>> {
264        Err(Box::from(NOT_SUPPORTED_ERROR))
265    }
266}
267
268#[derive(Clone, Debug)]
269pub struct BluetoothGATTService {}
270
271impl BluetoothGATTService {
272    pub fn new(_service: String) -> BluetoothGATTService {
273        BluetoothGATTService {}
274    }
275
276    pub fn get_id(&self) -> String {
277        String::new()
278    }
279
280    pub fn get_uuid(&self) -> Result<String, Box<dyn Error>> {
281        Err(Box::from(NOT_SUPPORTED_ERROR))
282    }
283
284    pub fn is_primary(&self) -> Result<bool, Box<dyn Error>> {
285        Err(Box::from(NOT_SUPPORTED_ERROR))
286    }
287
288    pub fn get_includes(&self) -> Result<Vec<String>, Box<dyn Error>> {
289        Err(Box::from(NOT_SUPPORTED_ERROR))
290    }
291
292    pub fn get_gatt_characteristics(&self) -> Result<Vec<String>, Box<dyn Error>> {
293        Err(Box::from(NOT_SUPPORTED_ERROR))
294    }
295}
296
297#[derive(Clone, Debug)]
298pub struct BluetoothGATTCharacteristic {}
299
300impl BluetoothGATTCharacteristic {
301    pub fn new(_characteristic: String) -> BluetoothGATTCharacteristic {
302        BluetoothGATTCharacteristic {}
303    }
304
305    pub fn get_id(&self) -> String {
306        String::new()
307    }
308
309    pub fn get_uuid(&self) -> Result<String, Box<dyn Error>> {
310        Err(Box::from(NOT_SUPPORTED_ERROR))
311    }
312
313    pub fn get_value(&self) -> Result<Vec<u8>, Box<dyn Error>> {
314        Err(Box::from(NOT_SUPPORTED_ERROR))
315    }
316
317    pub fn is_notifying(&self) -> Result<bool, Box<dyn Error>> {
318        Err(Box::from(NOT_SUPPORTED_ERROR))
319    }
320
321    pub fn get_flags(&self) -> Result<Vec<String>, Box<dyn Error>> {
322        Err(Box::from(NOT_SUPPORTED_ERROR))
323    }
324
325    pub fn get_gatt_descriptors(&self) -> Result<Vec<String>, Box<dyn Error>> {
326        Err(Box::from(NOT_SUPPORTED_ERROR))
327    }
328
329    pub fn read_value(&self) -> Result<Vec<u8>, Box<dyn Error>> {
330        Err(Box::from(NOT_SUPPORTED_ERROR))
331    }
332
333    pub fn write_value(&self, _values: Vec<u8>) -> Result<(), Box<dyn Error>> {
334        Err(Box::from(NOT_SUPPORTED_ERROR))
335    }
336
337    pub fn start_notify(&self) -> Result<(), Box<dyn Error>> {
338        Err(Box::from(NOT_SUPPORTED_ERROR))
339    }
340
341    pub fn stop_notify(&self) -> Result<(), Box<dyn Error>> {
342        Err(Box::from(NOT_SUPPORTED_ERROR))
343    }
344}
345
346#[derive(Clone, Debug)]
347pub struct BluetoothGATTDescriptor {}
348
349impl BluetoothGATTDescriptor {
350    pub fn new(_descriptor: String) -> BluetoothGATTDescriptor {
351        BluetoothGATTDescriptor {}
352    }
353
354    pub fn get_id(&self) -> String {
355        String::new()
356    }
357
358    pub fn get_uuid(&self) -> Result<String, Box<dyn Error>> {
359        Err(Box::from(NOT_SUPPORTED_ERROR))
360    }
361
362    pub fn get_value(&self) -> Result<Vec<u8>, Box<dyn Error>> {
363        Err(Box::from(NOT_SUPPORTED_ERROR))
364    }
365
366    pub fn get_flags(&self) -> Result<Vec<String>, Box<dyn Error>> {
367        Err(Box::from(NOT_SUPPORTED_ERROR))
368    }
369
370    pub fn read_value(&self) -> Result<Vec<u8>, Box<dyn Error>> {
371        Err(Box::from(NOT_SUPPORTED_ERROR))
372    }
373
374    pub fn write_value(&self, _values: Vec<u8>) -> Result<(), Box<dyn Error>> {
375        Err(Box::from(NOT_SUPPORTED_ERROR))
376    }
377}