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}
180
181impl cobalt_client::traits::AsEventCode for BtHostLePeerDisconnectionEventMetricDimensionReason {
182  fn as_event_code(&self) -> u32 {
183    *self as u32
184  }
185}
186
187// Enum for bt_host_bredr_peer_disconnection_event (Metric Dimension reason)
188#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
189pub enum BtHostBredrPeerDisconnectionEventMetricDimensionReason {
190  Unknown = 0,
191  ApiRequest = 1,
192  InterrogationFailed = 2,
193  PairingFailed = 3,
194  AclLinkError = 4,
195  PeerDisconnection = 5,
196}
197
198impl cobalt_client::traits::AsEventCode for BtHostBredrPeerDisconnectionEventMetricDimensionReason {
199  fn as_event_code(&self) -> u32 {
200    *self as u32
201  }
202}
203
204// Enum for bluetooth (Metric Dimension capability)
205#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
206pub enum BluetoothMetricDimensionCapability {
207  Unknown = 0,
208  Basic = 1,
209  DelayReport = 2,
210  Reporting = 3,
211  Recovery = 4,
212  ContentProtection = 5,
213  HeaderCompression = 6,
214  Multiplexing = 7,
215}
216
217impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionCapability {
218  fn as_event_code(&self) -> u32 {
219    *self as u32
220  }
221}
222// Alias for a2dp_remote_peer_capabilities (Metric Dimension capability) which has the same event codes
223pub use BluetoothMetricDimensionCapability as A2dpRemotePeerCapabilitiesMetricDimensionCapability;
224
225// Enum for avrcp_target_distinct_peer_player_capabilities (Metric Dimension browsing)
226#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
227pub enum AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing {
228  Unknown = 0,
229  Unsupported = 1,
230  Supported = 2,
231  SupportedWhenAddressed = 3,
232}
233
234impl cobalt_client::traits::AsEventCode for AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing {
235  fn as_event_code(&self) -> u32 {
236    *self as u32
237  }
238}
239
240// Alias for avrcp_target_distinct_peer_player_capabilities (Metric Dimension searching) which has the same event codes
241pub use AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing as AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionSearching;
242
243// Enum for bluetooth (Metric Dimension now_playing)
244#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
245pub enum BluetoothMetricDimensionNowPlaying {
246  Unknown = 0,
247  Unsupported = 1,
248  Supported = 2,
249}
250
251impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionNowPlaying {
252  fn as_event_code(&self) -> u32 {
253    *self as u32
254  }
255}
256// Alias for avrcp_target_distinct_peer_player_capabilities (Metric Dimension now_playing) which has the same event codes
257pub use BluetoothMetricDimensionNowPlaying as AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionNowPlaying;
258
259// Enum for bluetooth (Metric Dimension codec)
260#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
261pub enum BluetoothMetricDimensionCodec {
262  Unknown = 0,
263  Sbc = 1,
264  Mpeg12 = 2,
265  Aac = 3,
266  Atrac = 4,
267  VendorSpecific = 5,
268}
269
270impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionCodec {
271  fn as_event_code(&self) -> u32 {
272    *self as u32
273  }
274}
275// Alias for a2dp_codec_availability_migrated (Metric Dimension codec) which has the same event codes
276pub use BluetoothMetricDimensionCodec as A2dpCodecAvailabilityMigratedMetricDimensionCodec;
277
278// Alias for a2dp_stream_duration_in_seconds_migrated (Metric Dimension codec) which has the same event codes
279pub use BluetoothMetricDimensionCodec as A2dpStreamDurationInSecondsMigratedMetricDimensionCodec;
280
281// Enum for bluetooth (Metric Dimension method)
282#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
283pub enum BluetoothMetricDimensionMethod {
284  Consent = 0,
285  PasskeyDisplay = 1,
286  PasskeyComparison = 2,
287  PasskeyEntry = 3,
288}
289
290impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionMethod {
291  fn as_event_code(&self) -> u32 {
292    *self as u32
293  }
294}
295// Alias for pairing_method_migrated (Metric Dimension method) which has the same event codes
296pub use BluetoothMetricDimensionMethod as PairingMethodMigratedMetricDimensionMethod;
297
298// Enum for bluetooth (Metric Dimension result)
299#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
300pub enum BluetoothMetricDimensionResult {
301  Success = 0,
302  ErrorUnknown = 1,
303  ErrorCanceled = 2,
304  ErrorInProgress = 3,
305  ErrorTimedOut = 4,
306  ErrorNotFound = 5,
307  ErrorNotSupported = 6,
308  ErrorBluetoothNotAvailable = 7,
309  ErrorBadState = 8,
310  ErrorInvalidArguments = 9,
311  ErrorAlready = 10,
312  ErrorProtocolError = 11,
313}
314
315impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionResult {
316  fn as_event_code(&self) -> u32 {
317    *self as u32
318  }
319}
320// Alias for pairing_result_migrated (Metric Dimension result) which has the same event codes
321pub use BluetoothMetricDimensionResult as PairingResultMigratedMetricDimensionResult;
322
323// Enum for bluetooth (Metric Dimension link_layer_type)
324#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
325pub enum BluetoothMetricDimensionLinkLayerType {
326  Acl = 0,
327  Le = 1,
328}
329
330impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionLinkLayerType {
331  fn as_event_code(&self) -> u32 {
332    *self as u32
333  }
334}
335// Alias for l2cap_open_channel_migrated (Metric Dimension link_layer_type) which has the same event codes
336pub use BluetoothMetricDimensionLinkLayerType as L2capOpenChannelMigratedMetricDimensionLinkLayerType;
337
338// Enum for bluetooth (Metric Dimension initiator)
339#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
340pub enum BluetoothMetricDimensionInitiator {
341  True = 0,
342  False = 1,
343}
344
345impl cobalt_client::traits::AsEventCode for BluetoothMetricDimensionInitiator {
346  fn as_event_code(&self) -> u32 {
347    *self as u32
348  }
349}
350// Alias for l2cap_open_channel_migrated (Metric Dimension initiator) which has the same event codes
351pub use BluetoothMetricDimensionInitiator as L2capOpenChannelMigratedMetricDimensionInitiator;
352
353#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
354pub struct BtHostAdapterEventEventCodes {
355  pub mode: BtHostAdapterEventMetricDimensionMode,
356  pub event: BtHostAdapterEventMetricDimensionEvent,
357}
358
359impl cobalt_client::traits::AsEventCodes for BtHostAdapterEventEventCodes {
360  fn as_event_codes(&self) -> Vec<u32> {
361    use cobalt_client::traits::AsEventCode;
362    vec![
363      self.mode.as_event_code(),
364      self.event.as_event_code(),
365    ]
366  }
367}
368
369#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
370pub struct BtHostPeerBondingEventEventCodes {
371  pub mode: BtHostPeerBondingEventMetricDimensionMode,
372  pub event: BtHostPeerBondingEventMetricDimensionEvent,
373}
374
375impl cobalt_client::traits::AsEventCodes for BtHostPeerBondingEventEventCodes {
376  fn as_event_codes(&self) -> Vec<u32> {
377    use cobalt_client::traits::AsEventCode;
378    vec![
379      self.mode.as_event_code(),
380      self.event.as_event_code(),
381    ]
382  }
383}
384
385#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
386pub struct BtHostPeerConnectionEventEventCodes {
387  pub mode: BtHostPeerConnectionEventMetricDimensionMode,
388  pub event: BtHostPeerConnectionEventMetricDimensionEvent,
389  pub direction: BtHostPeerConnectionEventMetricDimensionDirection,
390}
391
392impl cobalt_client::traits::AsEventCodes for BtHostPeerConnectionEventEventCodes {
393  fn as_event_codes(&self) -> Vec<u32> {
394    use cobalt_client::traits::AsEventCode;
395    vec![
396      self.mode.as_event_code(),
397      self.event.as_event_code(),
398      self.direction.as_event_code(),
399    ]
400  }
401}
402
403#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
404pub struct AvrcpRemotePeerCapabilitiesEventCodes {
405  pub remote_role: AvrcpRemotePeerCapabilitiesMetricDimensionRemoteRole,
406  pub feature: AvrcpRemotePeerCapabilitiesMetricDimensionFeature,
407}
408
409impl cobalt_client::traits::AsEventCodes for AvrcpRemotePeerCapabilitiesEventCodes {
410  fn as_event_codes(&self) -> Vec<u32> {
411    use cobalt_client::traits::AsEventCode;
412    vec![
413      self.remote_role.as_event_code(),
414      self.feature.as_event_code(),
415    ]
416  }
417}
418
419#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
420pub struct AvrcpTargetDistinctPeerPlayerCapabilitiesEventCodes {
421  pub browsing: AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionBrowsing,
422  pub searching: AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionSearching,
423  pub now_playing: AvrcpTargetDistinctPeerPlayerCapabilitiesMetricDimensionNowPlaying,
424}
425
426impl cobalt_client::traits::AsEventCodes for AvrcpTargetDistinctPeerPlayerCapabilitiesEventCodes {
427  fn as_event_codes(&self) -> Vec<u32> {
428    use cobalt_client::traits::AsEventCode;
429    vec![
430      self.browsing.as_event_code(),
431      self.searching.as_event_code(),
432      self.now_playing.as_event_code(),
433    ]
434  }
435}
436
437#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
438pub struct L2capOpenChannelMigratedEventCodes {
439  pub link_layer_type: L2capOpenChannelMigratedMetricDimensionLinkLayerType,
440  pub initiator: L2capOpenChannelMigratedMetricDimensionInitiator,
441}
442
443impl cobalt_client::traits::AsEventCodes for L2capOpenChannelMigratedEventCodes {
444  fn as_event_codes(&self) -> Vec<u32> {
445    use cobalt_client::traits::AsEventCode;
446    vec![
447      self.link_layer_type.as_event_code(),
448      self.initiator.as_event_code(),
449    ]
450  }
451}
452