| data_directory.rs | 
           | 
          7915 | 
        
        
          | export.rs | 
           | 
          11889 | 
        
        
          | file.rs | 
           | 
          30232 | 
        
        
          | import.rs | 
           | 
          12682 | 
        
        
          | mod.rs | 
           Support for reading PE files.
 Traits are used to abstract over the difference between PE32 and PE32+.
 The primary trait for this is [`ImageNtHeaders`].
 ## High level API
 [`PeFile`] implements the [`Object`](crate::read::Object) trait for
 PE files. [`PeFile`] is parameterised by [`ImageNtHeaders`] to allow
 reading both PE32 and PE32+. There are type aliases for these parameters
 ([`PeFile32`] and [`PeFile64`]).
 ## Low level API
 The [`ImageNtHeaders`] trait can be directly used to parse both
 [`pe::ImageNtHeaders32`] and [`pe::ImageNtHeaders64`].
 ### Example for low level API
  ```no_run
 use object::pe;
 use object::read::pe::ImageNtHeaders;
 use std::error::Error;
 use std::fs;
 /// Reads a file and displays the name of each section.
 fn main() -> Result<(), Box<dyn Error>> {
 #   #[cfg(feature = "std")] {
     let data = fs::read("path/to/binary")?;
     let dos_header = pe::ImageDosHeader::parse(&*data)?;
     let mut offset = dos_header.nt_headers_offset().into();
     let (nt_headers, data_directories) = pe::ImageNtHeaders64::parse(&*data, &mut offset)?;
     let sections = nt_headers.sections(&*data, offset)?;
     let symbols = nt_headers.symbols(&*data)?;
     for section in sections.iter() {
         println!("{}", String::from_utf8_lossy(section.name(symbols.strings())?));
     }
 #   }
     Ok(())
 }
 ``` | 
          1830 | 
        
        
          | relocation.rs | 
           | 
          3223 | 
        
        
          | resource.rs | 
           | 
          6296 | 
        
        
          | rich.rs | 
           PE rich header handling | 
          3442 | 
        
        
          | section.rs | 
           | 
          14423 |