pelite/
lib.rs

1/*!
2Your adventure starts with a choice:
3
4Do you wish to inspect 64-bit PE binares? ⟶ [continue](pe64/index.html)
5
6Do you wish to inspect 32-bit PE binaries? ⟶ [continue](pe32/index.html)
7
8The `pelite::pe` module is aliased to the target of the compiled crate.
9Use it if you want to work with modules in your own process.
10Evidently this is only available on Windows targets.
11
12Due to small but incompatible differences the two formats are not unified.
13*/
14
15#![recursion_limit = "128"]
16#![allow(ellipsis_inclusive_range_patterns)]
17#![cfg_attr(not(feature = "std"), no_std)]
18extern crate no_std_compat as std;
19
20#[macro_use]
21pub mod util;
22
23pub mod image;
24
25pub mod stringify;
26
27pub mod pattern;
28
29pub use pelite_macros::pattern;
30
31mod error;
32pub use self::error::{Error, Result};
33
34#[cfg(feature = "mmap")]
35mod mmap;
36#[cfg(feature = "mmap")]
37pub use self::mmap::*;
38
39pub mod pe64;
40pub mod pe32;
41pub(crate) mod wrap;
42pub use self::wrap::*;
43
44#[cfg(feature = "unstable")]
45mod pir;
46#[cfg(feature = "unstable")]
47pub use self::pir::Pir;
48
49pub use dataview::Pod;
50
51/// Defaults to the current platform if it is available.
52#[cfg(all(windows, target_pointer_width = "32"))]
53pub use self::pe32 as pe;
54/// Defaults to the current platform if it is available.
55#[cfg(all(windows, target_pointer_width = "64"))]
56pub use self::pe64 as pe;
57
58pub mod base_relocs;
59
60#[cfg(any(feature = "std", feature = "resources_nostd"))]
61pub mod resources;
62pub mod rich_structure;
63pub mod security;
64pub mod strings;
65
66#[cfg(test)]
67mod tests;