1use 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}