fob_graph/analysis/
trace.rs1use serde::{Deserialize, Serialize};
2
3use crate::{ModuleId, SourceSpan};
4
5#[derive(Debug, Clone, Serialize, Deserialize, Default)]
6pub struct TransformationTrace {
7 pub renames: Vec<RenameEvent>,
8 pub imports: Vec<ImportResolution>,
9 pub warnings: Vec<String>,
10}
11
12#[derive(Debug, Clone, Serialize, Deserialize)]
13pub struct RenameEvent {
14 pub module: ModuleId,
15 pub phase: RenamePhase,
16 pub original: String,
17 pub renamed: String,
18 pub span: SourceSpan,
19}
20
21#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
22pub enum RenamePhase {
23 ScopeHoisting,
24 Deconflicting,
25 Minification,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
29pub struct ImportResolution {
30 pub module: ModuleId,
31 pub specifier: String,
32 pub local: Option<String>,
33 pub renamed: Option<String>,
34 pub outcome: ImportOutcome,
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize)]
38pub enum ImportOutcome {
39 Internal(ModuleId),
40 External(String),
41 Missing,
42}