use crate::BundleOutput;
use crate::analysis::AnalyzedBundle;
use fob_graph::{AnalysisResult, CacheAnalysis, TransformationTrace};
use fob_graph::{GraphStatistics, ModuleGraph, ModuleId};
pub struct Bundle {
inner: AnalyzedBundle,
}
impl From<AnalyzedBundle> for Bundle {
fn from(inner: AnalyzedBundle) -> Self {
Self { inner }
}
}
impl Bundle {
pub fn output(&self) -> &BundleOutput {
&self.inner.bundle
}
pub fn analysis(&self) -> &AnalysisResult {
&self.inner.analysis
}
pub fn module_graph(&self) -> &ModuleGraph {
&self.inner.analysis.graph
}
pub fn entry_points(&self) -> &[ModuleId] {
&self.inner.analysis.entry_points
}
pub fn stats(&self) -> &GraphStatistics {
&self.inner.analysis.stats
}
pub fn cache(&self) -> &CacheAnalysis {
&self.inner.cache
}
pub fn trace(&self) -> Option<&TransformationTrace> {
self.inner.trace.as_ref()
}
pub fn analysis_warnings(&self) -> &[String] {
&self.inner.analysis.warnings
}
pub fn analysis_errors(&self) -> &[String] {
&self.inner.analysis.errors
}
pub fn into_inner(self) -> AnalyzedBundle {
self.inner
}
}