cdp_protocol/
bluetooth_emulation.rs

1// Auto-generated from Chrome at version 143.0.7499.110 domain: BluetoothEmulation
2#[allow(unused_imports)]
3use super::types::*;
4#[allow(unused_imports)]
5use serde::{Deserialize, Serialize};
6#[allow(unused_imports)]
7use serde_json::Value as Json;
8#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
9pub enum CentralState {
10    #[serde(rename = "absent")]
11    Absent,
12    #[serde(rename = "powered-off")]
13    PoweredOff,
14    #[serde(rename = "powered-on")]
15    PoweredOn,
16}
17#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
18pub enum GattOperationType {
19    #[serde(rename = "connection")]
20    Connection,
21    #[serde(rename = "discovery")]
22    Discovery,
23}
24#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
25pub enum CharacteristicWriteType {
26    #[serde(rename = "write-default-deprecated")]
27    WriteDefaultDeprecated,
28    #[serde(rename = "write-with-response")]
29    WriteWithResponse,
30    #[serde(rename = "write-without-response")]
31    WriteWithoutResponse,
32}
33#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
34pub enum CharacteristicOperationType {
35    #[serde(rename = "read")]
36    Read,
37    #[serde(rename = "write")]
38    Write,
39    #[serde(rename = "subscribe-to-notifications")]
40    SubscribeToNotifications,
41    #[serde(rename = "unsubscribe-from-notifications")]
42    UnsubscribeFromNotifications,
43}
44#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
45pub enum DescriptorOperationType {
46    #[serde(rename = "read")]
47    Read,
48    #[serde(rename = "write")]
49    Write,
50}
51#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
52pub struct ManufacturerData {
53    #[serde(default)]
54    #[serde(rename = "key")]
55    pub key: JsUInt,
56    #[serde(rename = "data")]
57    pub data: Vec<u8>,
58}
59#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
60pub struct ScanRecord {
61    #[serde(skip_serializing_if = "Option::is_none")]
62    #[serde(default)]
63    #[serde(rename = "name")]
64    pub name: Option<String>,
65    #[serde(skip_serializing_if = "Option::is_none")]
66    #[serde(default)]
67    #[serde(rename = "uuids")]
68    pub uuids: Option<Vec<String>>,
69    #[serde(skip_serializing_if = "Option::is_none")]
70    #[serde(default)]
71    #[serde(rename = "appearance")]
72    pub appearance: Option<JsUInt>,
73    #[serde(skip_serializing_if = "Option::is_none")]
74    #[serde(default)]
75    #[serde(rename = "txPower")]
76    pub tx_power: Option<JsUInt>,
77    #[serde(skip_serializing_if = "Option::is_none")]
78    #[serde(rename = "manufacturerData")]
79    pub manufacturer_data: Option<Vec<ManufacturerData>>,
80}
81#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
82pub struct ScanEntry {
83    #[serde(default)]
84    #[serde(rename = "deviceAddress")]
85    pub device_address: String,
86    #[serde(default)]
87    #[serde(rename = "rssi")]
88    pub rssi: JsUInt,
89    #[serde(rename = "scanRecord")]
90    pub scan_record: ScanRecord,
91}
92#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
93pub struct CharacteristicProperties {
94    #[serde(skip_serializing_if = "Option::is_none")]
95    #[serde(default)]
96    #[serde(rename = "broadcast")]
97    pub broadcast: Option<bool>,
98    #[serde(skip_serializing_if = "Option::is_none")]
99    #[serde(default)]
100    #[serde(rename = "read")]
101    pub read: Option<bool>,
102    #[serde(skip_serializing_if = "Option::is_none")]
103    #[serde(default)]
104    #[serde(rename = "writeWithoutResponse")]
105    pub write_without_response: Option<bool>,
106    #[serde(skip_serializing_if = "Option::is_none")]
107    #[serde(default)]
108    #[serde(rename = "write")]
109    pub write: Option<bool>,
110    #[serde(skip_serializing_if = "Option::is_none")]
111    #[serde(default)]
112    #[serde(rename = "notify")]
113    pub notify: Option<bool>,
114    #[serde(skip_serializing_if = "Option::is_none")]
115    #[serde(default)]
116    #[serde(rename = "indicate")]
117    pub indicate: Option<bool>,
118    #[serde(skip_serializing_if = "Option::is_none")]
119    #[serde(default)]
120    #[serde(rename = "authenticatedSignedWrites")]
121    pub authenticated_signed_writes: Option<bool>,
122    #[serde(skip_serializing_if = "Option::is_none")]
123    #[serde(default)]
124    #[serde(rename = "extendedProperties")]
125    pub extended_properties: Option<bool>,
126}
127#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
128pub struct Enable {
129    #[serde(rename = "state")]
130    pub state: CentralState,
131    #[serde(default)]
132    #[serde(rename = "leSupported")]
133    pub le_supported: bool,
134}
135#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
136pub struct SetSimulatedCentralState {
137    #[serde(rename = "state")]
138    pub state: CentralState,
139}
140#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
141#[serde(rename_all = "camelCase")]
142pub struct Disable(pub Option<serde_json::Value>);
143#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
144pub struct SimulatePreconnectedPeripheral {
145    #[serde(default)]
146    #[serde(rename = "address")]
147    pub address: String,
148    #[serde(default)]
149    #[serde(rename = "name")]
150    pub name: String,
151    #[serde(rename = "manufacturerData")]
152    pub manufacturer_data: Vec<ManufacturerData>,
153    #[serde(default)]
154    #[serde(rename = "knownServiceUuids")]
155    pub known_service_uuids: Vec<String>,
156}
157#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
158pub struct SimulateAdvertisement {
159    #[serde(rename = "entry")]
160    pub entry: ScanEntry,
161}
162#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
163pub struct SimulateGATTOperationResponse {
164    #[serde(default)]
165    #[serde(rename = "address")]
166    pub address: String,
167    #[serde(rename = "type")]
168    pub r#type: GattOperationType,
169    #[serde(default)]
170    #[serde(rename = "code")]
171    pub code: JsUInt,
172}
173#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
174pub struct SimulateCharacteristicOperationResponse {
175    #[serde(default)]
176    #[serde(rename = "characteristicId")]
177    pub characteristic_id: String,
178    #[serde(rename = "type")]
179    pub r#type: CharacteristicOperationType,
180    #[serde(default)]
181    #[serde(rename = "code")]
182    pub code: JsUInt,
183    #[serde(skip_serializing_if = "Option::is_none")]
184    #[serde(rename = "data")]
185    pub data: Option<Vec<u8>>,
186}
187#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
188pub struct SimulateDescriptorOperationResponse {
189    #[serde(default)]
190    #[serde(rename = "descriptorId")]
191    pub descriptor_id: String,
192    #[serde(rename = "type")]
193    pub r#type: DescriptorOperationType,
194    #[serde(default)]
195    #[serde(rename = "code")]
196    pub code: JsUInt,
197    #[serde(skip_serializing_if = "Option::is_none")]
198    #[serde(rename = "data")]
199    pub data: Option<Vec<u8>>,
200}
201#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
202pub struct AddService {
203    #[serde(default)]
204    #[serde(rename = "address")]
205    pub address: String,
206    #[serde(default)]
207    #[serde(rename = "serviceUuid")]
208    pub service_uuid: String,
209}
210#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
211pub struct RemoveService {
212    #[serde(default)]
213    #[serde(rename = "serviceId")]
214    pub service_id: String,
215}
216#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
217pub struct AddCharacteristic {
218    #[serde(default)]
219    #[serde(rename = "serviceId")]
220    pub service_id: String,
221    #[serde(default)]
222    #[serde(rename = "characteristicUuid")]
223    pub characteristic_uuid: String,
224    #[serde(rename = "properties")]
225    pub properties: CharacteristicProperties,
226}
227#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
228pub struct RemoveCharacteristic {
229    #[serde(default)]
230    #[serde(rename = "characteristicId")]
231    pub characteristic_id: String,
232}
233#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
234pub struct AddDescriptor {
235    #[serde(default)]
236    #[serde(rename = "characteristicId")]
237    pub characteristic_id: String,
238    #[serde(default)]
239    #[serde(rename = "descriptorUuid")]
240    pub descriptor_uuid: String,
241}
242#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
243pub struct RemoveDescriptor {
244    #[serde(default)]
245    #[serde(rename = "descriptorId")]
246    pub descriptor_id: String,
247}
248#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
249pub struct SimulateGATTDisconnection {
250    #[serde(default)]
251    #[serde(rename = "address")]
252    pub address: String,
253}
254#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
255#[serde(rename_all = "camelCase")]
256pub struct EnableReturnObject {}
257#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
258#[serde(rename_all = "camelCase")]
259pub struct SetSimulatedCentralStateReturnObject {}
260#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
261#[serde(rename_all = "camelCase")]
262pub struct DisableReturnObject {}
263#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
264#[serde(rename_all = "camelCase")]
265pub struct SimulatePreconnectedPeripheralReturnObject {}
266#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
267#[serde(rename_all = "camelCase")]
268pub struct SimulateAdvertisementReturnObject {}
269#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
270#[serde(rename_all = "camelCase")]
271pub struct SimulateGATTOperationResponseReturnObject {}
272#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
273#[serde(rename_all = "camelCase")]
274pub struct SimulateCharacteristicOperationResponseReturnObject {}
275#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
276#[serde(rename_all = "camelCase")]
277pub struct SimulateDescriptorOperationResponseReturnObject {}
278#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
279pub struct AddServiceReturnObject {
280    #[serde(default)]
281    #[serde(rename = "serviceId")]
282    pub service_id: String,
283}
284#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
285#[serde(rename_all = "camelCase")]
286pub struct RemoveServiceReturnObject {}
287#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
288pub struct AddCharacteristicReturnObject {
289    #[serde(default)]
290    #[serde(rename = "characteristicId")]
291    pub characteristic_id: String,
292}
293#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
294#[serde(rename_all = "camelCase")]
295pub struct RemoveCharacteristicReturnObject {}
296#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
297pub struct AddDescriptorReturnObject {
298    #[serde(default)]
299    #[serde(rename = "descriptorId")]
300    pub descriptor_id: String,
301}
302#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
303#[serde(rename_all = "camelCase")]
304pub struct RemoveDescriptorReturnObject {}
305#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
306#[serde(rename_all = "camelCase")]
307pub struct SimulateGATTDisconnectionReturnObject {}
308impl Method for Enable {
309    const NAME: &'static str = "BluetoothEmulation.enable";
310    type ReturnObject = EnableReturnObject;
311}
312impl Method for SetSimulatedCentralState {
313    const NAME: &'static str = "BluetoothEmulation.setSimulatedCentralState";
314    type ReturnObject = SetSimulatedCentralStateReturnObject;
315}
316impl Method for Disable {
317    const NAME: &'static str = "BluetoothEmulation.disable";
318    type ReturnObject = DisableReturnObject;
319}
320impl Method for SimulatePreconnectedPeripheral {
321    const NAME: &'static str = "BluetoothEmulation.simulatePreconnectedPeripheral";
322    type ReturnObject = SimulatePreconnectedPeripheralReturnObject;
323}
324impl Method for SimulateAdvertisement {
325    const NAME: &'static str = "BluetoothEmulation.simulateAdvertisement";
326    type ReturnObject = SimulateAdvertisementReturnObject;
327}
328impl Method for SimulateGATTOperationResponse {
329    const NAME: &'static str = "BluetoothEmulation.simulateGATTOperationResponse";
330    type ReturnObject = SimulateGATTOperationResponseReturnObject;
331}
332impl Method for SimulateCharacteristicOperationResponse {
333    const NAME: &'static str = "BluetoothEmulation.simulateCharacteristicOperationResponse";
334    type ReturnObject = SimulateCharacteristicOperationResponseReturnObject;
335}
336impl Method for SimulateDescriptorOperationResponse {
337    const NAME: &'static str = "BluetoothEmulation.simulateDescriptorOperationResponse";
338    type ReturnObject = SimulateDescriptorOperationResponseReturnObject;
339}
340impl Method for AddService {
341    const NAME: &'static str = "BluetoothEmulation.addService";
342    type ReturnObject = AddServiceReturnObject;
343}
344impl Method for RemoveService {
345    const NAME: &'static str = "BluetoothEmulation.removeService";
346    type ReturnObject = RemoveServiceReturnObject;
347}
348impl Method for AddCharacteristic {
349    const NAME: &'static str = "BluetoothEmulation.addCharacteristic";
350    type ReturnObject = AddCharacteristicReturnObject;
351}
352impl Method for RemoveCharacteristic {
353    const NAME: &'static str = "BluetoothEmulation.removeCharacteristic";
354    type ReturnObject = RemoveCharacteristicReturnObject;
355}
356impl Method for AddDescriptor {
357    const NAME: &'static str = "BluetoothEmulation.addDescriptor";
358    type ReturnObject = AddDescriptorReturnObject;
359}
360impl Method for RemoveDescriptor {
361    const NAME: &'static str = "BluetoothEmulation.removeDescriptor";
362    type ReturnObject = RemoveDescriptorReturnObject;
363}
364impl Method for SimulateGATTDisconnection {
365    const NAME: &'static str = "BluetoothEmulation.simulateGATTDisconnection";
366    type ReturnObject = SimulateGATTDisconnectionReturnObject;
367}
368pub mod events {
369    #[allow(unused_imports)]
370    use super::super::types::*;
371    #[allow(unused_imports)]
372    use serde::{Deserialize, Serialize};
373    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
374    pub struct GattOperationReceivedEvent {
375        pub params: GattOperationReceivedEventParams,
376    }
377    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
378    pub struct GattOperationReceivedEventParams {
379        #[serde(default)]
380        #[serde(rename = "address")]
381        pub address: String,
382        #[serde(rename = "type")]
383        pub r#type: super::GattOperationType,
384    }
385    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
386    pub struct CharacteristicOperationReceivedEvent {
387        pub params: CharacteristicOperationReceivedEventParams,
388    }
389    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
390    pub struct CharacteristicOperationReceivedEventParams {
391        #[serde(default)]
392        #[serde(rename = "characteristicId")]
393        pub characteristic_id: String,
394        #[serde(rename = "type")]
395        pub r#type: super::CharacteristicOperationType,
396        #[serde(skip_serializing_if = "Option::is_none")]
397        #[serde(default)]
398        #[serde(rename = "data")]
399        pub data: Option<u8>,
400        #[serde(skip_serializing_if = "Option::is_none")]
401        #[serde(rename = "writeType")]
402        pub write_type: Option<super::CharacteristicWriteType>,
403    }
404    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
405    pub struct DescriptorOperationReceivedEvent {
406        pub params: DescriptorOperationReceivedEventParams,
407    }
408    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
409    pub struct DescriptorOperationReceivedEventParams {
410        #[serde(default)]
411        #[serde(rename = "descriptorId")]
412        pub descriptor_id: String,
413        #[serde(rename = "type")]
414        pub r#type: super::DescriptorOperationType,
415        #[serde(skip_serializing_if = "Option::is_none")]
416        #[serde(default)]
417        #[serde(rename = "data")]
418        pub data: Option<u8>,
419    }
420}