use crate::BlockingOperatorMemoryReport;
use hawdb_storage::scan::ScanPruningReport;
mod profile;
mod query;
mod report_value;
#[doc(hidden)]
pub use report_value::{
blocking_operator_memory_report_value, graph_expansion_report_value,
grouped_evidence_report_value, pipeline_memory_report_value, scan_pruning_report_value,
text_seed_execution_report_value, vector_execution_report_value,
};
#[doc(hidden)]
pub use profile::{read_execution_profile, ExecutionProfileBuilder};
#[doc(hidden)]
pub use query::{blocking_operator_kinds, QueryExecutionObserver, QueryExecutionReports};
pub trait ExecutionObserver {
#[doc(hidden)]
fn seed_graph_scoring_input(&self) -> Option<&hawdb_plan_cypher::ScoringSeedGraphInput> {
self.vector_graph_scoring_input()
}
#[doc(hidden)]
fn vector_graph_scoring_input(&self) -> Option<&hawdb_plan_cypher::ScoringVectorGraphInput> {
None
}
fn record_grouped_evidence_report(
&self,
_input: &hawdb_plan_cypher::PhysicalPlan,
_report: crate::GroupedEvidenceExecutionReport,
) {
}
fn record_scan_pruning_report(&self, _report: ScanPruningReport) {}
fn record_borrowed_node_projection_rows(&self, _rows: usize) {}
fn record_blocking_memory_report(&self, _report: BlockingOperatorMemoryReport) {}
}
#[derive(Debug, Default, Clone, Copy)]
pub struct NoopExecutionObserver;
impl ExecutionObserver for NoopExecutionObserver {}