[][src]Trait pelite::Pod

pub unsafe trait Pod: 'static {
    fn zeroed() -> Self
    where
        Self: Sized
, { ... }
unsafe fn uninit() -> Self
    where
        Self: Sized
, { ... }
fn as_bytes(&self) -> &[u8] { ... }
fn as_bytes_mut(&mut self) -> &mut [u8] { ... } }

Defines types which can be safely transmuted from any bit pattern.

Types which need to be read from PE files should implement this.

Safety

It must be safe to transmute any bit pattern (with length equal to the size of the type) to this type.

The type must be annotated by #[repr(C)] or equivalent and should not have any padding between its members.

Auto derive

To help with safely implementing this trait, a proc-macro is provided to implement the Pod trait if the requirements are satisfied.

#[derive(pelite::Pod)]
#[repr(C)]
struct Foo {
	foo: i32,
}

Provided methods

fn zeroed() -> Self where
    Self: Sized

unsafe fn uninit() -> Self where
    Self: Sized

fn as_bytes(&self) -> &[u8]

fn as_bytes_mut(&mut self) -> &mut [u8]

Loading content...

Implementations on Foreign Types

impl Pod for i8[src]

impl Pod for i16[src]

impl Pod for i32[src]

impl Pod for i64[src]

impl Pod for u8[src]

impl Pod for u16[src]

impl Pod for u32[src]

impl Pod for u64[src]

impl Pod for f32[src]

impl Pod for f64[src]

impl<T: Pod> Pod for [T][src]

impl<T: Pod> Pod for [T; 0][src]

impl<T: Pod> Pod for [T; 1][src]

impl<T: Pod> Pod for [T; 2][src]

impl<T: Pod> Pod for [T; 3][src]

impl<T: Pod> Pod for [T; 4][src]

impl<T: Pod> Pod for [T; 5][src]

impl<T: Pod> Pod for [T; 6][src]

impl<T: Pod> Pod for [T; 7][src]

impl<T: Pod> Pod for [T; 8][src]

impl<T: Pod> Pod for [T; 9][src]

impl<T: Pod> Pod for [T; 10][src]

impl<T: Pod> Pod for [T; 11][src]

impl<T: Pod> Pod for [T; 12][src]

impl<T: Pod> Pod for [T; 13][src]

impl<T: Pod> Pod for [T; 14][src]

impl<T: Pod> Pod for [T; 15][src]

impl<T: Pod> Pod for [T; 16][src]

impl<T: Pod> Pod for [T; 17][src]

impl<T: Pod> Pod for [T; 18][src]

impl<T: Pod> Pod for [T; 19][src]

impl<T: Pod> Pod for [T; 20][src]

impl<T: Pod> Pod for [T; 21][src]

impl<T: Pod> Pod for [T; 22][src]

impl<T: Pod> Pod for [T; 23][src]

impl<T: Pod> Pod for [T; 24][src]

impl<T: Pod> Pod for [T; 25][src]

impl<T: Pod> Pod for [T; 26][src]

impl<T: Pod> Pod for [T; 27][src]

impl<T: Pod> Pod for [T; 28][src]

impl<T: Pod> Pod for [T; 29][src]

impl<T: Pod> Pod for [T; 30][src]

impl<T: Pod> Pod for [T; 31][src]

impl<T: Pod> Pod for [T; 32][src]

impl<T: Pod> Pod for [T; 33][src]

impl<T: Pod> Pod for [T; 34][src]

impl<T: Pod> Pod for [T; 35][src]

impl<T: Pod> Pod for [T; 36][src]

impl<T: Pod> Pod for [T; 37][src]

impl<T: Pod> Pod for [T; 38][src]

impl<T: Pod> Pod for [T; 39][src]

impl<T: Pod> Pod for [T; 40][src]

impl<T: Pod> Pod for [T; 41][src]

impl<T: Pod> Pod for [T; 42][src]

impl<T: Pod> Pod for [T; 43][src]

impl<T: Pod> Pod for [T; 44][src]

impl<T: Pod> Pod for [T; 45][src]

impl<T: Pod> Pod for [T; 46][src]

impl<T: Pod> Pod for [T; 47][src]

impl<T: Pod> Pod for [T; 48][src]

impl<T: Pod> Pod for [T; 56][src]

impl<T: Pod> Pod for [T; 64][src]

impl<T: Pod> Pod for [T; 80][src]

impl<T: Pod> Pod for [T; 100][src]

impl<T: Pod> Pod for [T; 128][src]

impl<T: Pod> Pod for [T; 160][src]

impl<T: Pod> Pod for [T; 192][src]

impl<T: Pod> Pod for [T; 256][src]

impl<T: Pod> Pod for [T; 512][src]

impl<T: Pod> Pod for [T; 768][src]

impl<T: Pod> Pod for [T; 1024][src]

impl<T: Pod> Pod for [T; 2048][src]

impl<T: Pod> Pod for [T; 4096][src]

Loading content...

Implementors

impl Pod for FPO_DATA where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    u16: Pod,
    u16: Pod,
    u8: Pod,
    u8: Pod
[src]

impl Pod for GUID where
    Self: 'static,
    u32: Pod,
    u16: Pod,
    u16: Pod,
    [u8; 8]: Pod
[src]

impl Pod for IMAGE_BASE_RELOCATION where
    Self: 'static,
    u32: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_DATA_DIRECTORY where
    Self: 'static,
    u32: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_DEBUG_CV_INFO_PDB20 where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    [u8; 0]: Pod
[src]

impl Pod for IMAGE_DEBUG_CV_INFO_PDB70 where
    Self: 'static,
    u32: Pod,
    GUID: Pod,
    u32: Pod,
    [u8; 0]: Pod
[src]

impl Pod for IMAGE_DEBUG_DIRECTORY where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    IMAGE_VERSION<u16>: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_DEBUG_MISC where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    u8: Pod,
    [u8; 3]: Pod,
    [u8; 0]: Pod
[src]

impl Pod for IMAGE_DEBUG_VC_FEATURE where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_DOS_HEADER where
    Self: 'static,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    [u16; 4]: Pod,
    u16: Pod,
    u16: Pod,
    [u16; 10]: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_DYNAMIC_RELOCATION32 where
    Self: 'static,
    u32: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_DYNAMIC_RELOCATION64 where
    Self: 'static,
    u64: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_DYNAMIC_RELOCATION_TABLE where
    Self: 'static,
    u32: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_EXPORT_DIRECTORY where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    IMAGE_VERSION<u16>: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_FILE_HEADER where
    Self: 'static,
    u16: Pod,
    u16: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u16: Pod,
    u16: Pod
[src]

impl Pod for IMAGE_GUARDCF32 where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    IMAGE_LOAD_CONFIG_CODE_INTEGRITY: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u16: Pod,
    u16: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_GUARDCF64 where
    Self: 'static,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u32: Pod,
    IMAGE_LOAD_CONFIG_CODE_INTEGRITY: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u32: Pod,
    u16: Pod,
    u16: Pod,
    u64: Pod,
    u32: Pod,
    u32: Pod,
    u64: Pod
[src]

impl Pod for IMAGE_IMPORT_DESCRIPTOR where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_LOAD_CONFIG_CODE_INTEGRITY where
    Self: 'static,
    u16: Pod,
    u16: Pod,
    u32: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_LOAD_CONFIG_DIRECTORY32 where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    IMAGE_VERSION<u16>: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u16: Pod,
    u16: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_LOAD_CONFIG_DIRECTORY64 where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    IMAGE_VERSION<u16>: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u32: Pod,
    u16: Pod,
    u16: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod
[src]

impl Pod for IMAGE_NT_HEADERS32 where
    Self: 'static,
    u32: Pod,
    IMAGE_FILE_HEADER: Pod,
    IMAGE_OPTIONAL_HEADER32: Pod
[src]

impl Pod for IMAGE_NT_HEADERS64 where
    Self: 'static,
    u32: Pod,
    IMAGE_FILE_HEADER: Pod,
    IMAGE_OPTIONAL_HEADER64: Pod
[src]

impl Pod for IMAGE_OPTIONAL_HEADER32 where
    Self: 'static,
    u16: Pod,
    IMAGE_VERSION<u8>: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    IMAGE_VERSION<u16>: Pod,
    IMAGE_VERSION<u16>: Pod,
    IMAGE_VERSION<u16>: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u16: Pod,
    u16: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    [IMAGE_DATA_DIRECTORY; 0]: Pod
[src]

impl Pod for IMAGE_OPTIONAL_HEADER64 where
    Self: 'static,
    u16: Pod,
    IMAGE_VERSION<u8>: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u64: Pod,
    u32: Pod,
    u32: Pod,
    IMAGE_VERSION<u16>: Pod,
    IMAGE_VERSION<u16>: Pod,
    IMAGE_VERSION<u16>: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u16: Pod,
    u16: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u32: Pod,
    u32: Pod,
    [IMAGE_DATA_DIRECTORY; 0]: Pod
[src]

impl Pod for IMAGE_RESOURCE_DATA_ENTRY where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_RESOURCE_DIRECTORY where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    IMAGE_VERSION<u16>: Pod,
    u16: Pod,
    u16: Pod
[src]

impl Pod for IMAGE_RESOURCE_DIRECTORY_ENTRY where
    Self: 'static,
    u32: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_SECTION_HEADER where
    Self: 'static,
    StringN<[u8; 8]>: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u16: Pod,
    u16: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_TLS_DIRECTORY32 where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod
[src]

impl Pod for IMAGE_TLS_DIRECTORY64 where
    Self: 'static,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u64: Pod,
    u32: Pod,
    u32: Pod
[src]

impl Pod for RUNTIME_FUNCTION where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    u32: Pod
[src]

impl Pod for SCOPE_RECORD where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod
[src]

impl Pod for SCOPE_TABLE where
    Self: 'static,
    u32: Pod,
    [SCOPE_RECORD; 0]: Pod
[src]

impl Pod for UNWIND_CODE where
    Self: 'static,
    u8: Pod,
    u8: Pod,
    u16: Pod
[src]

impl Pod for UNWIND_INFO where
    Self: 'static,
    u8: Pod,
    u8: Pod,
    u8: Pod,
    u8: Pod,
    [UNWIND_CODE; 0]: Pod
[src]

impl Pod for VS_FIXEDFILEINFO where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    VS_VERSION: Pod,
    VS_VERSION: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    u32: Pod
[src]

impl Pod for VS_VERSION where
    Self: 'static,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    u16: Pod
[src]

impl Pod for WIN_CERTIFICATE where
    Self: 'static,
    u32: Pod,
    u16: Pod,
    u16: Pod,
    [u8; 0]: Pod
[src]

impl Pod for CatchableType where
    Self: 'static,
    u32: Pod,
    Ptr<TypeDescriptor>: Pod,
    PMD: Pod,
    i32: Pod,
    Ptr: Pod
[src]

impl Pod for CatchableTypeArray where
    Self: 'static,
    i32: Pod,
    [Ptr<CatchableType>; 0]: Pod
[src]

impl Pod for ESTypeList where
    Self: 'static,
    i32: Pod,
    Ptr<[HandlerType]>: Pod
[src]

impl Pod for FuncInfo where
    Self: 'static,
    u32: Pod,
    i32: Pod,
    Ptr: Pod,
    u32: Pod,
    Ptr<UnwindMapEntry>: Pod,
    u32: Pod,
    Ptr: Pod,
    Ptr<ESTypeList>: Pod,
    i32: Pod
[src]

impl Pod for HandlerType where
    Self: 'static,
    u32: Pod,
    Ptr<TypeDescriptor>: Pod,
    i32: Pod,
    Ptr: Pod
[src]

impl Pod for pelite::pe32::msvc::PMD where
    Self: 'static,
    i32: Pod,
    i32: Pod,
    i32: Pod
[src]

impl Pod for pelite::pe32::msvc::RTTIBaseClassDescriptor where
    Self: 'static,
    Ptr<TypeDescriptor>: Pod,
    u32: Pod,
    PMD: Pod,
    u32: Pod
[src]

impl Pod for pelite::pe32::msvc::RTTIClassHierarchyDescriptor where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    Ptr<[Ptr<RTTIBaseClassDescriptor>]>: Pod
[src]

impl Pod for pelite::pe32::msvc::RTTICompleteObjectLocator where
    Self: 'static,
    u32: Pod,
    u32: Pod,
    u32: Pod,
    Ptr<TypeDescriptor>: Pod,
    Ptr<RTTIClassHierarchyDescriptor>: Pod
[src]

impl Pod for ThrowInfo where
    Self: 'static,
    u32: Pod,
    Ptr: Pod,
    Ptr: Pod,
    Ptr<CatchableTypeArray>: Pod
[src]

impl Pod for TryBlockMapEntry where
    Self: 'static,
    i32: Pod,
    i32: Pod,
    i32: Pod,
    i32: Pod,
    Ptr<[HandlerType]>: Pod
[src]

impl Pod for pelite::pe32::msvc::TypeDescriptor where
    Self: 'static,
    Ptr: Pod,
    Ptr<CStr>: Pod,
    [u8; 0]: Pod
[src]

impl Pod for UnwindMapEntry where
    Self: 'static,
    i32: Pod,
    Ptr: Pod
[src]

impl Pod for pelite::pe64::msvc::PMD[src]

impl Pod for pelite::pe64::msvc::RTTIBaseClassDescriptor[src]

impl Pod for pelite::pe64::msvc::RTTIClassHierarchyDescriptor[src]

impl Pod for pelite::pe64::msvc::RTTICompleteObjectLocator[src]

impl Pod for pelite::pe64::msvc::TypeDescriptor[src]

impl Pod for GRPICONDIR where
    Self: 'static,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    [GRPICONDIRENTRY; 0]: Pod
[src]

impl Pod for GRPICONDIRENTRY where
    Self: 'static,
    u8: Pod,
    u8: Pod,
    u8: Pod,
    u8: Pod,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    u16: Pod,
    u16: Pod
[src]

impl Pod for Language where
    Self: 'static,
    u16: Pod,
    u16: Pod
[src]

impl<A: Pod> Pod for StringN<A>[src]

impl<T: Pod> Pod for IMAGE_VERSION<T>[src]

impl<T: ?Sized> Pod for pelite::pe32::Ptr<T> where
    Ptr<T>: 'static, 
[src]

impl<T: ?Sized> Pod for pelite::pe64::Ptr<T> where
    Ptr<T>: 'static, 
[src]

impl<T: ?Sized> Pod for Pir<T> where
    Pir<T>: 'static, 
[src]

Loading content...