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§
Sourcefn get_viewer(&mut self) -> &mut BinaryReader<R, LittleEndian>
fn get_viewer(&mut self) -> &mut BinaryReader<R, LittleEndian>
获取二进制读取器的可变引用
Sourcefn add_diagnostics(&mut self, error: impl Into<GaiaError>)
fn add_diagnostics(&mut self, error: impl Into<GaiaError>)
获取诊断信息的可变引用
Sourcefn get_cached_section_headers(&self) -> Option<&Vec<SectionHeader>>
fn get_cached_section_headers(&self) -> Option<&Vec<SectionHeader>>
获取缓存的节头信息
Sourcefn set_cached_section_headers(&mut self, headers: Vec<SectionHeader>)
fn set_cached_section_headers(&mut self, headers: Vec<SectionHeader>)
设置缓存的节头信息
Sourcefn read_header_once(&mut self) -> Result<&CoffHeader, GaiaError>
fn read_header_once(&mut self) -> Result<&CoffHeader, GaiaError>
读取 COFF 头部信息(通用实现)
Sourcefn read_object_once(&mut self) -> Result<&CoffObject, GaiaError>
fn read_object_once(&mut self) -> Result<&CoffObject, GaiaError>
强制读取完整的 COFF 对象,并缓存结果
Provided Methods§
Sourcefn read_header_force(&mut self) -> Result<CoffHeader, GaiaError>
fn read_header_force(&mut self) -> Result<CoffHeader, GaiaError>
强制读取 COFF 头部(通用实现)
Sourcefn read_section_headers(&mut self) -> Result<Vec<SectionHeader>, GaiaError>
fn read_section_headers(&mut self) -> Result<Vec<SectionHeader>, GaiaError>
读取节头信息(通用实现)
Sourcefn read_section_from_header(
&mut self,
header: &SectionHeader,
) -> Result<CoffSection, GaiaError>
fn read_section_from_header( &mut self, header: &SectionHeader, ) -> Result<CoffSection, GaiaError>
从节头读取节数据(通用实现)
Sourcefn read_symbols(&mut self) -> Result<Vec<CoffSymbol>, GaiaError>
fn read_symbols(&mut self) -> Result<Vec<CoffSymbol>, GaiaError>
读取符号表(通用实现)
Sourcefn create_coff_info(&mut self) -> Result<CoffInfo, GaiaError>
fn create_coff_info(&mut self) -> Result<CoffInfo, GaiaError>
创建 COFF 信息视图(通用实现)
Sourcefn read_object_force(&mut self) -> Result<CoffObject, GaiaError>
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.