Skip to main content

TraceEvent

Trait TraceEvent 

pub trait TraceEvent {
    type Ref<'a>;

    // Required methods
    fn event_name() -> &'static str;
    fn field_defs() -> Vec<FieldDef>;
    fn timestamp(&self) -> u64;
    fn encode_fields<W>(
        &self,
        enc: &mut EventEncoder<'_, W>,
    ) -> Result<(), Error>
       where W: Write;
    fn decode<'a>(
        timestamp_ns: Option<u64>,
        fields: &[FieldValueRef<'a>],
        field_defs: &[FieldDef],
    ) -> Option<Self::Ref<'a>>;

    // Provided methods
    fn has_timestamp() -> bool { ... }
    fn schema_entry() -> SchemaEntry { ... }
}
Available on crate feature dial9 only.
Expand description

Trait implemented by #[derive(TraceEvent)] for compile-time event types.

Required Associated Types§

type Ref<'a>

Decoded form of this event, potentially borrowing from the input buffer.

Required Methods§

fn event_name() -> &'static str

The event type name (used in schema registration).

fn field_defs() -> Vec<FieldDef>

Field definitions for schema registration. When has_timestamp() is true, the timestamp is NOT included here — it is encoded in the event frame header.

fn timestamp(&self) -> u64

Return the event’s timestamp in nanoseconds.

fn encode_fields<W>(&self, enc: &mut EventEncoder<'_, W>) -> Result<(), Error>
where W: Write,

Encode this event’s non-timestamp fields into the encoder.

fn decode<'a>( timestamp_ns: Option<u64>, fields: &[FieldValueRef<'a>], field_defs: &[FieldDef], ) -> Option<Self::Ref<'a>>

Decode from field values using field definitions for name resolution. timestamp_ns is the absolute timestamp from the event header (if present).

Provided Methods§

fn has_timestamp() -> bool

Whether this event type carries a packed timestamp in the event header.

fn schema_entry() -> SchemaEntry

Build a SchemaEntry for this event type.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

§

impl TraceEvent for AllocEvent

§

type Ref<'a> = AllocEventRef<'a>

§

impl TraceEvent for DnsLookupResolved

§

impl TraceEvent for DnsLookupStarted

§

type Ref<'a> = DnsLookupStartedRef<'a>

§

impl TraceEvent for FreeEvent

§

type Ref<'a> = FreeEventRef<'a>

§

impl TraceEvent for IoForwardBridgeClosed

§

impl TraceEvent for IoForwardBridgeOpened

§

impl TraceEvent for PollEndEvent

§

type Ref<'a> = PollEndEventRef<'a>

§

impl TraceEvent for PollStartEvent

§

type Ref<'a> = PollStartEventRef<'a>

§

impl TraceEvent for ProcessResourceUsageEvent

§

type Ref<'a> = ProcessResourceUsageEventRef<'a>

§

impl TraceEvent for Socks5HandshakeAuth

§

impl TraceEvent for Socks5HandshakeConnect

§

impl TraceEvent for TaskSpawnEvent

§

type Ref<'a> = TaskSpawnEventRef<'a>

§

impl TraceEvent for rama::tls::boring::dial9::TlsHandshakeCompleted

§

impl TraceEvent for rama::tls::rustls::dial9::TlsHandshakeCompleted

§

impl TraceEvent for rama::tls::boring::dial9::TlsHandshakeFailed

§

impl TraceEvent for rama::tls::rustls::dial9::TlsHandshakeFailed

§

impl TraceEvent for rama::tls::boring::dial9::TlsHandshakeStarted

§

impl TraceEvent for rama::tls::rustls::dial9::TlsHandshakeStarted

§

impl TraceEvent for WakeEventEvent

§

type Ref<'a> = WakeEventEventRef<'a>

§

impl TraceEvent for WorkerParkEvent

§

type Ref<'a> = WorkerParkEventRef<'a>

§

impl TraceEvent for WorkerUnparkEvent

§

type Ref<'a> = WorkerUnparkEventRef<'a>