pub mod edge;
pub mod node;
pub mod scorer;
pub mod updater;
use std::collections::HashMap;
#[derive(Debug, Default)]
pub struct SignalGraph {
pub nodes: Vec<node::GraphNode>,
pub edges: Vec<edge::GraphEdge>,
pub skill_tokens: HashMap<String, usize>,
}
impl SignalGraph {
pub fn new() -> Self {
Self::default()
}
pub fn record_skill_outcome(&mut self, skill_id: &str, tokens: usize) {
*self.skill_tokens.entry(skill_id.to_string()).or_insert(0) += tokens;
}
pub fn node_count(&self) -> usize {
self.nodes.len()
}
}