fob_graph/
external_dep.rs1use serde::{Deserialize, Serialize};
2
3use super::ModuleId;
4
5#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
7pub struct ExternalDependency {
8 pub specifier: String,
9 pub importers: Vec<ModuleId>,
10}
11
12impl ExternalDependency {
13 pub fn new(specifier: impl Into<String>) -> Self {
14 Self {
15 specifier: specifier.into(),
16 importers: Vec::new(),
17 }
18 }
19
20 pub fn push_importer(&mut self, module_id: ModuleId) {
21 self.importers.push(module_id);
22 }
23
24 pub fn extend_importers<I>(&mut self, iter: I)
25 where
26 I: IntoIterator<Item = ModuleId>,
27 {
28 self.importers.extend(iter);
29 }
30}