use zerocopy::{FromBytes, Immutable, KnownLayout};
#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
#[repr(C)]
pub struct RawObjCClass64 {
pub isa: u64,
pub superclass: u64,
pub cache: u64,
pub vtable: u64,
pub data: u64, }
#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
#[repr(C)]
pub struct RawClassRoT64 {
pub flags: u32,
pub instance_start: u32,
pub instance_size: u32,
pub reserved: u32,
pub ivar_layout: u64,
pub name: u64,
pub base_methods: u64,
pub base_protocols: u64,
pub ivars: u64,
pub weak_ivar_layout: u64,
pub base_properties: u64,
}
#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
#[repr(C)]
pub struct RawMethodListHeader {
pub entsize_and_flags: u32,
pub count: u32,
}
#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
#[repr(C)]
pub struct RawMethodT {
pub name: u64,
pub types: u64,
pub imp: u64,
}
#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
#[repr(C)]
pub struct RawRelativeMethodT {
pub name_offset: i32,
pub types_offset: i32,
pub imp_offset: i32,
}
#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
#[repr(C)]
pub struct RawIvarT64 {
pub offset_ptr: u64,
pub name: u64,
pub type_encoding: u64,
pub alignment: u32,
pub size: u32,
}
#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
#[repr(C)]
pub struct RawPropertyT {
pub name: u64,
pub attributes: u64,
}
#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
#[repr(C)]
pub struct RawProtocolT64 {
pub isa: u64,
pub name: u64,
pub protocols: u64,
pub instance_methods: u64,
pub class_methods: u64,
pub optional_instance_methods: u64,
pub optional_class_methods: u64,
pub instance_properties: u64,
pub size: u32,
pub flags: u32,
}
#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
#[repr(C)]
pub struct RawCategoryT64 {
pub name: u64,
pub cls: u64,
pub instance_methods: u64,
pub class_methods: u64,
pub protocols: u64,
}