nx_archive/formats/cnmt/
extended_header.rs1
2use binrw::prelude::*;
13
14#[derive(Debug, Clone)]
16pub enum ExtendedHeader {
17 Application(ApplicationMetaExtendedHeader),
18 Patch(PatchMetaExtendedHeader),
19 Addon(AddonContentMetaExtendedHeader),
20 Delta(DeltaMetaExtendedHeader),
21 SystemUpdate(SystemUpdateMetaExtendedHeader),
22 DataPatch(DataPatchMetaExtendedHeader),
23 Unknown(Vec<u8>),
24}
25
26#[binrw]
28#[brw(little)]
29#[derive(Debug, Clone)]
30pub struct SystemUpdateMetaExtendedHeader {
31 pub extended_data_size: u32,
33}
34
35#[binrw]
37#[brw(little)]
38#[derive(Debug, Clone)]
39pub struct ApplicationMetaExtendedHeader {
40 pub patch_id: u64,
42 pub required_system_version: u32,
44 pub required_application_version: u32,
46}
47
48#[binrw]
50#[brw(little)]
51#[derive(Debug, Clone)]
52pub struct PatchMetaExtendedHeader {
53 pub application_id: u64,
55 pub required_system_version: u32,
57 pub extended_data_size: u32,
59 pub _reserved: u64,
61}
62
63#[binrw]
65#[brw(little)]
66#[derive(Debug, Clone)]
67pub struct AddonContentMetaExtendedHeader {
68 pub application_id: u64,
70 pub required_application_version: u32,
72 pub content_accessibilities: u8,
74 pub _reserved: [u8; 3],
76 pub data_patch_id: u64,
78}
79
80#[binrw]
82#[brw(little)]
83#[derive(Debug, Clone)]
84pub struct DeltaMetaExtendedHeader {
85 pub application_id: u64,
87 pub extended_data_size: u32,
89 pub _reserved: u32,
91}
92
93#[binrw]
94#[brw(little)]
95#[derive(Debug, Clone)]
96pub struct DataPatchMetaExtendedHeader {
97 pub application_id: u64,
99 pub required_application_version: u32,
101 pub extended_data_size: u32,
102 pub _reserved: u64,
103}