linkrs-query 0.1.0

Query engine, parser, and executor for Linkrs
Documentation
#[derive(Debug, Default, Clone)]
pub struct TraversalStats {
    pub vertices_visited: u64,
    pub edges_scanned: u64,
    pub paths_emitted: u64,
    pub max_depth_reached: u32,
    pub max_frontier_size: usize,
    pub storage_calls: u64,
}

impl TraversalStats {
    pub fn record_vertex_visit(&mut self) {
        self.vertices_visited += 1;
    }

    pub fn record_edge_scan(&mut self, count: usize) {
        self.edges_scanned += count as u64;
    }

    pub fn record_path_emitted(&mut self) {
        self.paths_emitted += 1;
    }

    pub fn record_storage_call(&mut self) {
        self.storage_calls += 1;
    }

    pub fn update_depth(&mut self, depth: u32) {
        if depth > self.max_depth_reached {
            self.max_depth_reached = depth;
        }
    }

    pub fn update_frontier(&mut self, size: usize) {
        if size > self.max_frontier_size {
            self.max_frontier_size = size;
        }
    }
}