Module tracer

Module tracer 

Source
Expand description

Tracer trait for observing query-flow execution.

This module defines the Tracer trait and related types for observing query execution. The default NoopTracer provides zero-cost when tracing is not needed.

§Example

use query_flow::{QueryRuntime, Tracer, SpanId, TraceId, SpanContext, QueryCacheKey};

// Custom tracer implementation
struct MyTracer;

impl Tracer for MyTracer {
    fn new_span_id(&self) -> SpanId {
        SpanId(1)
    }

    fn new_trace_id(&self) -> TraceId {
        TraceId(1)
    }

    fn on_query_start(&self, ctx: &SpanContext, query: &QueryCacheKey) {
        println!("Query started: {:?} (trace={:?})", query, ctx.trace_id);
    }
}

let runtime = QueryRuntime::with_tracer(MyTracer);

Structs§

NoopTracer
Zero-cost tracer that discards all events.
SpanContext
Context for a span within a trace, providing parent-child relationships.
SpanId
Unique identifier for a query execution span.
TraceId
Unique identifier for a trace (a complete query execution tree).

Enums§

ExecutionResult
Query execution result classification.
InvalidationReason
Reason for cache invalidation.
TracerAssetState
Asset loading state for tracing.

Traits§

Tracer
Tracer trait for observing query-flow execution.