micromegas_perfetto/
utils.rs

1use crate::protos::{
2    InternedData, TracePacket, TrackDescriptor, TrackEvent,
3    trace_packet::OptionalTrustedPacketSequenceId,
4};
5
6pub fn new_interned_data() -> InternedData {
7    InternedData {
8        event_categories: vec![],
9        event_names: vec![],
10        debug_annotation_names: vec![],
11        debug_annotation_value_type_names: vec![],
12        source_locations: vec![],
13        unsymbolized_source_locations: vec![],
14        log_message_body: vec![],
15        histogram_names: vec![],
16        build_ids: vec![],
17        mapping_paths: vec![],
18        source_paths: vec![],
19        function_names: vec![],
20        profiled_frame_symbols: vec![],
21        mappings: vec![],
22        frames: vec![],
23        callstacks: vec![],
24        vulkan_memory_keys: vec![],
25        graphics_contexts: vec![],
26        gpu_specifications: vec![],
27        kernel_symbols: vec![],
28        debug_annotation_string_values: vec![],
29        packet_context: vec![],
30        v8_js_function_name: vec![],
31        v8_js_function: vec![],
32        v8_js_script: vec![],
33        v8_wasm_script: vec![],
34        v8_isolate: vec![],
35        protolog_string_args: vec![],
36        protolog_stacktrace: vec![],
37        viewcapture_package_name: vec![],
38        viewcapture_window_name: vec![],
39        viewcapture_view_id: vec![],
40        viewcapture_class_name: vec![],
41    }
42}
43
44pub fn new_trace_packet() -> TracePacket {
45    TracePacket {
46        timestamp: None,
47        timestamp_clock_id: None,
48        trusted_pid: None,
49        interned_data: None,
50        sequence_flags: Some(2),
51        incremental_state_cleared: None,
52        trace_packet_defaults: None,
53        previous_packet_dropped: None,
54        first_packet_on_sequence: None,
55        machine_id: None,
56        data: None,
57        optional_trusted_uid: None,
58        optional_trusted_packet_sequence_id: Some(
59            OptionalTrustedPacketSequenceId::TrustedPacketSequenceId(1),
60        ),
61    }
62}
63
64pub fn new_track_descriptor(uuid: u64) -> TrackDescriptor {
65    TrackDescriptor {
66        uuid: Some(uuid),
67        parent_uuid: None,
68        process: None,
69        chrome_process: None,
70        thread: None,
71        chrome_thread: None,
72        counter: None,
73        disallow_merging_with_system_tracks: None,
74        static_or_dynamic_name: None,
75    }
76}
77
78#[allow(deprecated)]
79pub fn new_track_event() -> TrackEvent {
80    TrackEvent {
81        category_iids: vec![],
82        categories: vec![],
83        r#type: None,
84        track_uuid: None,
85        extra_counter_track_uuids: vec![],
86        extra_counter_values: vec![],
87        extra_double_counter_track_uuids: vec![],
88        extra_double_counter_values: vec![],
89        flow_ids_old: vec![],
90        flow_ids: vec![],
91        terminating_flow_ids_old: vec![],
92        terminating_flow_ids: vec![],
93        debug_annotations: vec![],
94        task_execution: None,
95        log_message: None,
96        cc_scheduler_state: None,
97        chrome_user_event: None,
98        chrome_keyed_service: None,
99        chrome_legacy_ipc: None,
100        chrome_histogram_sample: None,
101        chrome_latency_info: None,
102        chrome_frame_reporter: None,
103        chrome_application_state_info: None,
104        chrome_renderer_scheduler_state: None,
105        chrome_window_handle_event_info: None,
106        chrome_content_settings_event_info: None,
107        chrome_active_processes: None,
108        screenshot: None,
109        pixel_modem_event_insight: None,
110        chrome_message_pump: None,
111        chrome_mojo_event_info: None,
112        legacy_event: None,
113        name_field: None,
114        counter_value_field: None,
115        source_location_field: None,
116        timestamp: None,
117        thread_time: None,
118        thread_instruction_count: None,
119    }
120}