CoffReader

Trait CoffReader 

Source
pub trait CoffReader<R: Read + Seek> {
    // Required methods
    fn get_viewer(&mut self) -> &mut BinaryReader<R, LittleEndian>;
    fn add_diagnostics(&mut self, error: impl Into<GaiaError>);
    fn get_cached_section_headers(&self) -> Option<&Vec<SectionHeader>>;
    fn set_cached_section_headers(&mut self, headers: Vec<SectionHeader>);
    fn read_header_once(&mut self) -> Result<&CoffHeader, GaiaError>;
    fn read_object_once(&mut self) -> Result<&CoffObject, GaiaError>;

    // Provided methods
    fn read_header_force(&mut self) -> Result<CoffHeader, GaiaError> { ... }
    fn read_section_headers(&mut self) -> Result<Vec<SectionHeader>, GaiaError> { ... }
    fn read_section_from_header(
        &mut self,
        header: &SectionHeader,
    ) -> Result<CoffSection, GaiaError> { ... }
    fn read_symbols(&mut self) -> Result<Vec<CoffSymbol>, GaiaError> { ... }
    fn create_coff_info(&mut self) -> Result<CoffInfo, GaiaError> { ... }
    fn read_object_force(&mut self) -> Result<CoffObject, GaiaError> { ... }
}
Expand description

COFF 文件读取器的通用 trait

Required Methods§

Source

fn get_viewer(&mut self) -> &mut BinaryReader<R, LittleEndian>

获取二进制读取器的可变引用

Source

fn add_diagnostics(&mut self, error: impl Into<GaiaError>)

获取诊断信息的可变引用

Source

fn get_cached_section_headers(&self) -> Option<&Vec<SectionHeader>>

获取缓存的节头信息

Source

fn set_cached_section_headers(&mut self, headers: Vec<SectionHeader>)

设置缓存的节头信息

Source

fn read_header_once(&mut self) -> Result<&CoffHeader, GaiaError>

读取 COFF 头部信息(通用实现)

Source

fn read_object_once(&mut self) -> Result<&CoffObject, GaiaError>

强制读取完整的 COFF 对象,并缓存结果

Provided Methods§

Source

fn read_header_force(&mut self) -> Result<CoffHeader, GaiaError>

强制读取 COFF 头部(通用实现)

Source

fn read_section_headers(&mut self) -> Result<Vec<SectionHeader>, GaiaError>

读取节头信息(通用实现)

Source

fn read_section_from_header( &mut self, header: &SectionHeader, ) -> Result<CoffSection, GaiaError>

从节头读取节数据(通用实现)

Source

fn read_symbols(&mut self) -> Result<Vec<CoffSymbol>, GaiaError>

读取符号表(通用实现)

Source

fn create_coff_info(&mut self) -> Result<CoffInfo, GaiaError>

创建 COFF 信息视图(通用实现)

Source

fn read_object_force(&mut self) -> Result<CoffObject, GaiaError>

强制读取完整的 COFF 对象

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<W: Read + Seek> CoffReader<W> for ObjReader<W>