pub struct QueryTraceBuilder { /* private fields */ }Expand description
Builder for creating and tracking query execution traces.
§Example
use fraiseql_core::runtime::query_tracing::QueryTraceBuilder;
let mut builder = QueryTraceBuilder::new("query_123", "{ user { id name } }");
// Record parse phase (2.5ms = 2500 microseconds)
builder.record_phase_success("parse", 2500);
// Record validate phase (3ms = 3000 microseconds)
builder.record_phase_success("validate", 3000);
// Record execute phase (7ms = 7000 microseconds)
builder.record_phase_success("execute", 7000);
// Finalize trace with result count
let trace = builder.finish(true, None, Some(42))?;
assert_eq!(trace.success, true);
assert_eq!(trace.result_count, Some(42));
println!("Query took {} microseconds", trace.total_duration_us);Implementations§
Source§impl QueryTraceBuilder
impl QueryTraceBuilder
Sourcepub fn new(query_id: &str, query: &str) -> Self
pub fn new(query_id: &str, query: &str) -> Self
Create new query trace builder.
§Arguments
query_id- Unique ID for query correlationquery- Query string (will be truncated if very long)
Sourcepub fn record_phase_success(&mut self, phase_name: &str, duration_us: u64)
pub fn record_phase_success(&mut self, phase_name: &str, duration_us: u64)
Record a phase that completed successfully.
§Arguments
phase_name- Name of phase (e.g., “parse”, “validate”)duration_us- Duration in microseconds
Sourcepub fn record_phase_error(
&mut self,
phase_name: &str,
duration_us: u64,
error: &str,
)
pub fn record_phase_error( &mut self, phase_name: &str, duration_us: u64, error: &str, )
Record a phase that failed.
§Arguments
phase_name- Name of phase (e.g., “parse”, “validate”)duration_us- Duration in microsecondserror- Error message
Sourcepub fn finish(
self,
success: bool,
error: Option<&str>,
result_count: Option<usize>,
) -> Result<QueryExecutionTrace>
pub fn finish( self, success: bool, error: Option<&str>, result_count: Option<usize>, ) -> Result<QueryExecutionTrace>
Sourcepub fn elapsed_us(&self) -> u64
pub fn elapsed_us(&self) -> u64
Get current elapsed time in microseconds.
Auto Trait Implementations§
impl Freeze for QueryTraceBuilder
impl RefUnwindSafe for QueryTraceBuilder
impl Send for QueryTraceBuilder
impl Sync for QueryTraceBuilder
impl Unpin for QueryTraceBuilder
impl UnsafeUnpin for QueryTraceBuilder
impl UnwindSafe for QueryTraceBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more