bt_metrics_registry/
bt_metrics_registry.rs

1// This file was generated by Cobalt's Registry parser based on the registry YAML
2// in the cobalt_config repository. Edit the YAML there to make changes.
3pub const CUSTOMER_NAME: &str = "fuchsia";
4pub const CUSTOMER_ID: u32 = 1;
5pub const PROJECT_NAME: &str = "bluetooth";
6pub const PROJECT_ID: u32 = 2322225253;
7
8// Exponential bucket constants for bt_host_adapter_event bt_host_adapter_event_histogram
9pub const BT_HOST_ADAPTER_EVENT_BT_HOST_ADAPTER_EVENT_HISTOGRAM_INT_BUCKETS_FLOOR: i64 = 0;
10pub const BT_HOST_ADAPTER_EVENT_BT_HOST_ADAPTER_EVENT_HISTOGRAM_INT_BUCKETS_NUM_BUCKETS: u32 = 23;
11pub const BT_HOST_ADAPTER_EVENT_BT_HOST_ADAPTER_EVENT_HISTOGRAM_INT_BUCKETS_INITIAL_STEP: u32 = 2;
12pub const BT_HOST_ADAPTER_EVENT_BT_HOST_ADAPTER_EVENT_HISTOGRAM_INT_BUCKETS_STEP_MULTIPLIER_FLOAT: f32 = 2.00f32;
13
14// Linear bucket constants for avdtp_delay_report_in_nanoseconds avdtp_average_delay_report_in_ns_histogram
15pub const AVDTP_DELAY_REPORT_IN_NANOSECONDS_AVDTP_AVERAGE_DELAY_REPORT_IN_NS_HISTOGRAM_INT_BUCKETS_FLOOR: i64 = 0;
16pub const AVDTP_DELAY_REPORT_IN_NANOSECONDS_AVDTP_AVERAGE_DELAY_REPORT_IN_NS_HISTOGRAM_INT_BUCKETS_NUM_BUCKETS: u32 = 20;
17pub const AVDTP_DELAY_REPORT_IN_NANOSECONDS_AVDTP_AVERAGE_DELAY_REPORT_IN_NS_HISTOGRAM_INT_BUCKETS_STEP_SIZE: u32 = 100000000;
18
19// Exponential bucket constants for a2dp_stream_duration_in_seconds_migrated a2dp_stream_duration_in_seconds_per_connection
20pub const A2DP_STREAM_DURATION_IN_SECONDS_MIGRATED_A2DP_STREAM_DURATION_IN_SECONDS_PER_CONNECTION_INT_BUCKETS_FLOOR: i64 = 0;
21pub const A2DP_STREAM_DURATION_IN_SECONDS_MIGRATED_A2DP_STREAM_DURATION_IN_SECONDS_PER_CONNECTION_INT_BUCKETS_NUM_BUCKETS: u32 = 17;
22pub const A2DP_STREAM_DURATION_IN_SECONDS_MIGRATED_A2DP_STREAM_DURATION_IN_SECONDS_PER_CONNECTION_INT_BUCKETS_INITIAL_STEP: u32 = 2;
23pub const A2DP_STREAM_DURATION_IN_SECONDS_MIGRATED_A2DP_STREAM_DURATION_IN_SECONDS_PER_CONNECTION_INT_BUCKETS_STEP_MULTIPLIER_FLOAT: f32 = 2.00f32;
24
25// Metric ID Constants
26// bt_host_adapter_event
27pub const BT_HOST_ADAPTER_EVENT_METRIC_ID: u32 = 9;
28// bt_host_peer_bonding_event
29pub const BT_HOST_PEER_BONDING_EVENT_METRIC_ID: u32 = 10;
30// bt_host_peer_connection_event
31pub const BT_HOST_PEER_CONNECTION_EVENT_METRIC_ID: u32 = 11;
32// avrcp_remote_peer_capabilities
33pub const AVRCP_REMOTE_PEER_CAPABILITIES_METRIC_ID: u32 = 15;
34// bt_host_le_peer_disconnection_event
35pub const BT_HOST_LE_PEER_DISCONNECTION_EVENT_METRIC_ID: u32 = 18;
36// bt_host_bredr_peer_disconnection_event
37pub const BT_HOST_BREDR_PEER_DISCONNECTION_EVENT_METRIC_ID: u32 = 19;
38// a2dp_remote_peer_capabilities
39pub const A2DP_REMOTE_PEER_CAPABILITIES_METRIC_ID: u32 = 20;
40// avdtp_delay_report_in_nanoseconds
41pub const AVDTP_DELAY_REPORT_IN_NANOSECONDS_METRIC_ID: u32 = 21;
42// avrcp_target_distinct_peer_player_capabilities
43pub const AVRCP_TARGET_DISTINCT_PEER_PLAYER_CAPABILITIES_METRIC_ID: u32 = 22;
44// a2dp_codec_availability_migrated
45pub const A2DP_CODEC_AVAILABILITY_MIGRATED_METRIC_ID: u32 = 103;
46// pairing_method_migrated
47pub const PAIRING_METHOD_MIGRATED_METRIC_ID: u32 = 104;
48// pairing_result_migrated
49pub const PAIRING_RESULT_MIGRATED_METRIC_ID: u32 = 105;
50// l2cap_open_channel_migrated
51pub const L2CAP_OPEN_CHANNEL_MIGRATED_METRIC_ID: u32 = 106;
52// a2dp_stream_duration_in_seconds_migrated
53pub const A2DP_STREAM_DURATION_IN_SECONDS_MIGRATED_METRIC_ID: u32 = 108;
54
55// Enum for bluetooth (Metric Dimension mode)
56#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
57pub enum BluetoothMetricDimensionMode {
58  Le = 0,
59  BrEdr = 1,
60}
61
62impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionMode {
63  fn as_event_code(&self) -> u32 {
64    *self as u32
65  }
66}
67// Alias for bt_host_adapter_event (Metric Dimension mode) which has the same event codes
68pub use BluetoothMetricDimensionMode as BtHostAdapterEventMetricDimensionMode;
69
70// Alias for bt_host_peer_bonding_event (Metric Dimension mode) which has the same event codes
71pub use BluetoothMetricDimensionMode as BtHostPeerBondingEventMetricDimensionMode;
72
73// Alias for bt_host_peer_connection_event (Metric Dimension mode) which has the same event codes
74pub use BluetoothMetricDimensionMode as BtHostPeerConnectionEventMetricDimensionMode;
75
76// Enum for bt_host_adapter_event (Metric Dimension event)
77#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
78pub enum BtHostAdapterEventMetricDimensionEvent {
79  OpenL2capChannelRequest = 0,
80  OutgoingConnectionRequest = 1,
81  PairRequest = 2,
82  RequestDiscoverable = 3,
83  RequestDiscovery = 4,
84  SetConnectableTrue = 5,
85  SetConnectableFalse = 6,
86  StartAdvertising = 7,
87  StopAdvertising = 8,
88  StartDiscovery = 9,
89}
90
91impl cobalt_client::traits::AsEventCode for BtHostAdapterEventMetricDimensionEvent {
92  fn as_event_code(&self) -> u32 {
93    *self as u32
94  }
95}
96
97// Enum for bt_host_peer_bonding_event (Metric Dimension event)
98#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
99pub enum BtHostPeerBondingEventMetricDimensionEvent {
100  Success = 0,
101  Failure = 1,
102}
103
104impl cobalt_client::traits::AsEventCode for BtHostPeerBondingEventMetricDimensionEvent {
105  fn as_event_code(&self) -> u32 {
106    *self as u32
107  }
108}
109
110// Enum for bt_host_peer_connection_event (Metric Dimension event)
111#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
112pub enum BtHostPeerConnectionEventMetricDimensionEvent {
113  Success = 0,
114  Failure = 1,
115  InterrogationComplete = 2,
116  PageTimeout = 3,
117}
118
119impl cobalt_client::traits::AsEventCode for BtHostPeerConnectionEventMetricDimensionEvent {
120  fn as_event_code(&self) -> u32 {
121    *self as u32
122  }
123}
124
125// Enum for bluetooth (Metric Dimension direction)
126#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
127pub enum BluetoothMetricDimensionDirection {
128  Unspecified = 0,
129  Incoming = 1,
130  Outgoing = 2,
131}
132
133impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionDirection {
134  fn as_event_code(&self) -> u32 {
135    *self as u32
136  }
137}
138// Alias for bt_host_peer_connection_event (Metric Dimension direction) which has the same event codes
139pub use BluetoothMetricDimensionDirection as BtHostPeerConnectionEventMetricDimensionDirection;
140
141// Enum for bluetooth (Metric Dimension remote_role)
142#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
143pub enum BluetoothMetricDimensionRemoteRole {
144  Target = 0,
145  Controller = 1,
146}
147
148impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionRemoteRole {
149  fn as_event_code(&self) -> u32 {
150    *self as u32
151  }
152}
153// Alias for avrcp_remote_peer_capabilities (Metric Dimension remote_role) which has the same event codes
154pub use BluetoothMetricDimensionRemoteRole as AvrcpRemotePeerCapabilitiesMetricDimensionRemoteRole;
155
156// Enum for bluetooth (Metric Dimension feature)
157#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
158pub enum BluetoothMetricDimensionFeature {
159  SupportsBrowsing = 0,
160  SupportsCoverArt = 1,
161}
162
163impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionFeature {
164  fn as_event_code(&self) -> u32 {
165    *self as u32
166  }
167}
168// Alias for avrcp_remote_peer_capabilities (Metric Dimension feature) which has the same event codes
169pub use BluetoothMetricDimensionFeature as AvrcpRemotePeerCapabilitiesMetricDimensionFeature;
170
171// Enum for bt_host_le_peer_disconnection_event (Metric Dimension reason)
172#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
173pub enum BtHostLePeerDisconnectionEventMetricDimensionReason {
174  Unknown = 0,
175  ExplictDisconnect = 1,
176  LinkError = 2,
177  ZeroRef = 3,
178  RemoteDisconnection = 4,
179  GattDiscoveryFailure = 5,
180}
181
182impl cobalt_client::traits::AsEventCode for BtHostLePeerDisconnectionEventMetricDimensionReason {
183  fn as_event_code(&self) -> u32 {
184    *self as u32
185  }
186}
187
188// Enum for bt_host_bredr_peer_disconnection_event (Metric Dimension reason)
189#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
190pub enum BtHostBredrPeerDisconnectionEventMetricDimensionReason {
191  Unknown = 0,
192  ApiRequest = 1,
193  InterrogationFailed = 2,
194  PairingFailed = 3,
195  AclLinkError = 4,
196  PeerDisconnection = 5,
197}
198
199impl cobalt_client::traits::AsEventCode for BtHostBredrPeerDisconnectionEventMetricDimensionReason {
200  fn as_event_code(&self) -> u32 {
201    *self as u32
202  }
203}
204
205// Enum for bluetooth (Metric Dimension capability)
206#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
207pub enum BluetoothMetricDimensionCapability {
208  Unknown = 0,
209  Basic = 1,
210  DelayReport = 2,
211  Reporting = 3,
212  Recovery = 4,
213  ContentProtection = 5,
214  HeaderCompression = 6,
215  Multiplexing = 7,
216}
217
218impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionCapability {
219  fn as_event_code(&self) -> u32 {
220    *self as u32
221  }
222}
223// Alias for a2dp_remote_peer_capabilities (Metric Dimension capability) which has the same event codes
224pub use BluetoothMetricDimensionCapability as A2dpRemotePeerCapabilitiesMetricDimensionCapability;
225
226// Enum for avrcp_target_distinct_peer_player_capabilities (Metric Dimension browsing)
227#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
228pub enum AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing {
229  Unknown = 0,
230  Unsupported = 1,
231  Supported = 2,
232  SupportedWhenAddressed = 3,
233}
234
235impl cobalt_client::traits::AsEventCode for AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing {
236  fn as_event_code(&self) -> u32 {
237    *self as u32
238  }
239}
240
241// Alias for avrcp_target_distinct_peer_player_capabilities (Metric Dimension searching) which has the same event codes
242pub use AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing as AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionSearching;
243
244// Enum for bluetooth (Metric Dimension now_playing)
245#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
246pub enum BluetoothMetricDimensionNowPlaying {
247  Unknown = 0,
248  Unsupported = 1,
249  Supported = 2,
250}
251
252impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionNowPlaying {
253  fn as_event_code(&self) -> u32 {
254    *self as u32
255  }
256}
257// Alias for avrcp_target_distinct_peer_player_capabilities (Metric Dimension now_playing) which has the same event codes
258pub use BluetoothMetricDimensionNowPlaying as AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionNowPlaying;
259
260// Enum for bluetooth (Metric Dimension codec)
261#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
262pub enum BluetoothMetricDimensionCodec {
263  Unknown = 0,
264  Sbc = 1,
265  Mpeg12 = 2,
266  Aac = 3,
267  Atrac = 4,
268  VendorSpecific = 5,
269}
270
271impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionCodec {
272  fn as_event_code(&self) -> u32 {
273    *self as u32
274  }
275}
276// Alias for a2dp_codec_availability_migrated (Metric Dimension codec) which has the same event codes
277pub use BluetoothMetricDimensionCodec as A2dpCodecAvailabilityMigratedMetricDimensionCodec;
278
279// Alias for a2dp_stream_duration_in_seconds_migrated (Metric Dimension codec) which has the same event codes
280pub use BluetoothMetricDimensionCodec as A2dpStreamDurationInSecondsMigratedMetricDimensionCodec;
281
282// Enum for bluetooth (Metric Dimension method)
283#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
284pub enum BluetoothMetricDimensionMethod {
285  Consent = 0,
286  PasskeyDisplay = 1,
287  PasskeyComparison = 2,
288  PasskeyEntry = 3,
289}
290
291impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionMethod {
292  fn as_event_code(&self) -> u32 {
293    *self as u32
294  }
295}
296// Alias for pairing_method_migrated (Metric Dimension method) which has the same event codes
297pub use BluetoothMetricDimensionMethod as PairingMethodMigratedMetricDimensionMethod;
298
299// Enum for bluetooth (Metric Dimension result)
300#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
301pub enum BluetoothMetricDimensionResult {
302  Success = 0,
303  ErrorUnknown = 1,
304  ErrorCanceled = 2,
305  ErrorInProgress = 3,
306  ErrorTimedOut = 4,
307  ErrorNotFound = 5,
308  ErrorNotSupported = 6,
309  ErrorBluetoothNotAvailable = 7,
310  ErrorBadState = 8,
311  ErrorInvalidArguments = 9,
312  ErrorAlready = 10,
313  ErrorProtocolError = 11,
314  ErrorCentralLmpTransactionCollision = 12,
315  ErrorCentralDifferentTransactionCollision = 13,
316  ErrorPeripheralLmpTransactionCollision = 14,
317  ErrorPeripheralDifferentTransactionCollision = 15,
318}
319
320impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionResult {
321  fn as_event_code(&self) -> u32 {
322    *self as u32
323  }
324}
325// Alias for pairing_result_migrated (Metric Dimension result) which has the same event codes
326pub use BluetoothMetricDimensionResult as PairingResultMigratedMetricDimensionResult;
327
328// Enum for bluetooth (Metric Dimension link_layer_type)
329#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
330pub enum BluetoothMetricDimensionLinkLayerType {
331  Acl = 0,
332  Le = 1,
333}
334
335impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionLinkLayerType {
336  fn as_event_code(&self) -> u32 {
337    *self as u32
338  }
339}
340// Alias for l2cap_open_channel_migrated (Metric Dimension link_layer_type) which has the same event codes
341pub use BluetoothMetricDimensionLinkLayerType as L2capOpenChannelMigratedMetricDimensionLinkLayerType;
342
343// Enum for bluetooth (Metric Dimension initiator)
344#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
345pub enum BluetoothMetricDimensionInitiator {
346  True = 0,
347  False = 1,
348}
349
350impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionInitiator {
351  fn as_event_code(&self) -> u32 {
352    *self as u32
353  }
354}
355// Alias for l2cap_open_channel_migrated (Metric Dimension initiator) which has the same event codes
356pub use BluetoothMetricDimensionInitiator as L2capOpenChannelMigratedMetricDimensionInitiator;
357
358#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
359pub struct BtHostAdapterEventEventCodes {
360  pub mode: BtHostAdapterEventMetricDimensionMode,
361  pub event: BtHostAdapterEventMetricDimensionEvent,
362}
363
364impl cobalt_client::traits::AsEventCodes for BtHostAdapterEventEventCodes {
365  fn as_event_codes(&self) -> Vec<u32> {
366    use cobalt_client::traits::AsEventCode;
367    vec![
368      self.mode.as_event_code(),
369      self.event.as_event_code(),
370    ]
371  }
372}
373
374#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
375pub struct BtHostPeerBondingEventEventCodes {
376  pub mode: BtHostPeerBondingEventMetricDimensionMode,
377  pub event: BtHostPeerBondingEventMetricDimensionEvent,
378}
379
380impl cobalt_client::traits::AsEventCodes for BtHostPeerBondingEventEventCodes {
381  fn as_event_codes(&self) -> Vec<u32> {
382    use cobalt_client::traits::AsEventCode;
383    vec![
384      self.mode.as_event_code(),
385      self.event.as_event_code(),
386    ]
387  }
388}
389
390#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
391pub struct BtHostPeerConnectionEventEventCodes {
392  pub mode: BtHostPeerConnectionEventMetricDimensionMode,
393  pub event: BtHostPeerConnectionEventMetricDimensionEvent,
394  pub direction: BtHostPeerConnectionEventMetricDimensionDirection,
395}
396
397impl cobalt_client::traits::AsEventCodes for BtHostPeerConnectionEventEventCodes {
398  fn as_event_codes(&self) -> Vec<u32> {
399    use cobalt_client::traits::AsEventCode;
400    vec![
401      self.mode.as_event_code(),
402      self.event.as_event_code(),
403      self.direction.as_event_code(),
404    ]
405  }
406}
407
408#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
409pub struct AvrcpRemotePeerCapabilitiesEventCodes {
410  pub remote_role: AvrcpRemotePeerCapabilitiesMetricDimensionRemoteRole,
411  pub feature: AvrcpRemotePeerCapabilitiesMetricDimensionFeature,
412}
413
414impl cobalt_client::traits::AsEventCodes for AvrcpRemotePeerCapabilitiesEventCodes {
415  fn as_event_codes(&self) -> Vec<u32> {
416    use cobalt_client::traits::AsEventCode;
417    vec![
418      self.remote_role.as_event_code(),
419      self.feature.as_event_code(),
420    ]
421  }
422}
423
424#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
425pub struct AvrcpTargetDistinctPeerPlayerCapabilitiesEventCodes {
426  pub browsing: AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing,
427  pub searching: AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionSearching,
428  pub now_playing: AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionNowPlaying,
429}
430
431impl cobalt_client::traits::AsEventCodes for AvrcpTargetDistinctPeerPlayerCapabilitiesEventCodes {
432  fn as_event_codes(&self) -> Vec<u32> {
433    use cobalt_client::traits::AsEventCode;
434    vec![
435      self.browsing.as_event_code(),
436      self.searching.as_event_code(),
437      self.now_playing.as_event_code(),
438    ]
439  }
440}
441
442#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
443pub struct L2capOpenChannelMigratedEventCodes {
444  pub link_layer_type: L2capOpenChannelMigratedMetricDimensionLinkLayerType,
445  pub initiator: L2capOpenChannelMigratedMetricDimensionInitiator,
446}
447
448impl cobalt_client::traits::AsEventCodes for L2capOpenChannelMigratedEventCodes {
449  fn as_event_codes(&self) -> Vec<u32> {
450    use cobalt_client::traits::AsEventCode;
451    vec![
452      self.link_layer_type.as_event_code(),
453      self.initiator.as_event_code(),
454    ]
455  }
456}
457