Skip to main content

ds_rom/rom/
build_info.rs

1use serde::{Deserialize, Serialize};
2
3use super::raw;
4
5/// Build info for the ARM9 program.
6#[derive(Serialize, Deserialize)]
7pub struct BuildInfo {
8    /// Start of the uninitialized section.
9    pub bss_start: u32,
10    /// End of the uninitialized section.
11    pub bss_end: u32,
12    /// SDK version? See [`super::raw::BuildInfo::sdk_version`].
13    pub sdk_version: u32,
14}
15
16impl From<raw::BuildInfo> for BuildInfo {
17    fn from(raw: raw::BuildInfo) -> Self {
18        Self { bss_start: raw.bss_start, bss_end: raw.bss_end, sdk_version: raw.sdk_version }
19    }
20}
21
22impl BuildInfo {
23    /// Assigns values in this build info to a raw build info.
24    pub fn assign_to_raw(&self, build_info: &mut raw::BuildInfo) {
25        build_info.bss_start = self.bss_start;
26        build_info.bss_end = self.bss_end;
27        build_info.sdk_version = self.sdk_version;
28    }
29}