pub struct JvmClass {
pub name: String,
pub superclass: String,
pub interfaces: Vec<String>,
pub fields: Vec<JvmField>,
pub methods: Vec<JvmMethod>,
pub access_flags: u16,
pub constant_pool: ConstantPool,
pub major_version: u16,
pub source_file: Option<String>,
}Expand description
Complete representation of a JVM class file (IR level).
Fields§
§name: StringBinary class name using / separators (e.g. "com/example/Foo").
superclass: StringSuperclass binary name ("java/lang/Object" by default).
interfaces: Vec<String>Implemented interfaces (binary names).
fields: Vec<JvmField>Instance and static fields.
methods: Vec<JvmMethod>Methods.
access_flags: u16Class-level access flags.
constant_pool: ConstantPoolConstant pool.
major_version: u16Class-file major version (e.g. 65 = Java 21).
source_file: Option<String>Source file attribute (optional).
Implementations§
Source§impl JvmClass
impl JvmClass
pub fn new(name: &str) -> Self
Sourcepub fn add_method(&mut self, method: JvmMethod)
pub fn add_method(&mut self, method: JvmMethod)
Add a method definition.
Sourcepub fn add_interface(&mut self, iface: &str)
pub fn add_interface(&mut self, iface: &str)
Add an implemented interface.
Sourcepub fn set_superclass(&mut self, super_name: &str)
pub fn set_superclass(&mut self, super_name: &str)
Set the superclass binary name.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for JvmClass
impl RefUnwindSafe for JvmClass
impl Send for JvmClass
impl Sync for JvmClass
impl Unpin for JvmClass
impl UnsafeUnpin for JvmClass
impl UnwindSafe for JvmClass
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more