Skip to main content

Crate perfetto_sdk_protos_trace_processor

Crate perfetto_sdk_protos_trace_processor 

Source
Expand description

§perfetto-sdk-protos-trace-processor

Trace processor protobuf bindings for the Perfetto Rust SDK.

This crate provides auto-generated Rust types for Perfetto trace processor protobuf messages, enabling communication with trace_processor_shell serve http via its HTTP+protobuf RPC interface.

§Usage

use perfetto_sdk::heap_buffer::HeapBuffer;
use perfetto_sdk::pb_msg::{PbMsg, PbMsgWriter};
use perfetto_sdk_protos_trace_processor::protos::trace_processor
    ::trace_processor::QueryArgsFieldNumber;

/// Encode a SQL query as a QueryArgs protobuf message.
fn encode_query(sql: &str) -> Vec<u8> {
    let writer = PbMsgWriter::new();
    let hb = HeapBuffer::new(writer.stream_writer());
    let mut msg = PbMsg::new(&writer).unwrap();
    msg.append_cstr_field(QueryArgsFieldNumber::SqlQuery as u32, sql);
    msg.finalize();
    let size = writer.stream_writer().get_written_size();
    let mut buffer = vec![0u8; size];
    hb.copy_into(&mut buffer);
    buffer
}
CrateDescription
perfetto-sdkMain SDK with tracing session and track event APIs
perfetto-sdk-protos-gpuGPU event protobuf bindings

Modules§

pb_msg
Re-export pb_msg macro from this crate. Protobuf message module.
protos
Protobuf bindings module.

Macros§

pb_enum
Re-export pb_enum macro from this crate. Defines a protobuf enum.
pb_msg
Re-export pb_msg macro from this crate. Defines a protobuf message.
pb_msg_ext
Re-export pb_msg_ext macro from this crate. Defines extra fields for a protobuf message.