Skip to main content

bctx_conductor/graph/
mod.rs

1pub mod edge;
2pub mod node;
3pub mod scorer;
4pub mod updater;
5
6use std::collections::HashMap;
7
8#[derive(Debug, Default)]
9pub struct SignalGraph {
10    pub nodes: Vec<node::GraphNode>,
11    pub edges: Vec<edge::GraphEdge>,
12    pub skill_tokens: HashMap<String, usize>,
13}
14
15impl SignalGraph {
16    pub fn new() -> Self {
17        Self::default()
18    }
19
20    pub fn record_skill_outcome(&mut self, skill_id: &str, tokens: usize) {
21        *self.skill_tokens.entry(skill_id.to_string()).or_insert(0) += tokens;
22    }
23
24    pub fn node_count(&self) -> usize {
25        self.nodes.len()
26    }
27}