Skip to main content

jvm_assembler/formats/class/view/
mod.rs

1#![doc = include_str!("readme.md")]
2
3use crate::program::{JvmAccessFlags, JvmVersion};
4
5/// Information about a JVM class file
6#[derive(Clone, Debug)]
7pub struct ClassInfo {
8    /// Magic number (should be 0xCAFEBABE)
9    pub magic: u32,
10    /// JVM version information
11    pub version: JvmVersion,
12    /// Class access flags
13    pub access_flags: JvmAccessFlags,
14    /// Current class name
15    pub this_class: String,
16    /// Super class name (if any)
17    pub super_class: Option<String>,
18}
19
20impl Default for ClassInfo {
21    fn default() -> Self {
22        Self {
23            magic: 0xCAFEBABE,
24            version: JvmVersion { major: 52, minor: 0 },
25            access_flags: JvmAccessFlags::default(),
26            this_class: "DefaultClass".to_string(),
27            super_class: Some("java/lang/Object".to_string()),
28        }
29    }
30}