fob_graph/memory/
graph.rs1use std::sync::Arc;
4
5use parking_lot::RwLock;
6use rustc_hash::{FxHashMap as HashMap, FxHashSet as HashSet};
7
8use super::super::external_dep::ExternalDependency;
9use super::super::{Module, ModuleId};
10
11#[derive(Debug, Clone)]
15pub struct ModuleGraph {
16 pub(super) inner: Arc<RwLock<GraphInner>>,
17}
18
19#[derive(Debug, Clone, Default)]
20pub(super) struct GraphInner {
21 pub modules: HashMap<ModuleId, Arc<Module>>,
23 pub dependencies: HashMap<ModuleId, HashSet<ModuleId>>,
25 pub dependents: HashMap<ModuleId, HashSet<ModuleId>>,
27 pub entry_points: HashSet<ModuleId>,
29 pub external_deps: HashMap<String, ExternalDependency>,
31}