1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use crate::common::{
ChunkId, ChunkName, ModuleId, ModuleIdentifier, ModuleName, RelativeModulePath, SizeBytes,
};
use crate::v5::module::Module;
use crate::v5::reason::Reason;
use crate::v5::source::SourceFilePath;
use serde::Deserialize;
use std::borrow::Cow;
#[derive(Deserialize, Debug, Default)]
#[serde(rename_all = "camelCase", default)]
pub struct Chunk<'a> {
pub id: u32,
pub entry: bool,
pub initial: bool,
#[serde(borrow)]
pub modules: Vec<Module<'a>>,
pub files: Vec<SourceFilePath<'a>>,
#[serde(borrow)]
pub names: Vec<ChunkName<'a>>,
#[serde(borrow)]
pub origins: Vec<Origin<'a>>,
pub parents: Vec<ChunkId>,
pub rendered: bool,
pub size: SizeBytes,
}
#[derive(Deserialize, Debug, Default)]
#[serde(rename_all = "camelCase", default)]
pub struct Origin<'a> {
#[serde(borrow)]
pub loc: Cow<'a, str>,
pub module_identifier: ModuleIdentifier<'a>,
pub module_id: Option<ModuleId>,
pub module_name: RelativeModulePath<'a>,
pub reasons: Vec<Reason<'a>>,
}