pub trait Section: Debug + Pod {
type Word: Into<u64>;
type Endian: Endian;
Show 19 methods
// Required methods
fn sectname(&self) -> &[u8; 16];
fn segname(&self) -> &[u8; 16];
fn addr(&self, endian: Self::Endian) -> Self::Word;
fn size(&self, endian: Self::Endian) -> Self::Word;
fn offset(&self, endian: Self::Endian) -> u32;
fn align(&self, endian: Self::Endian) -> u32;
fn reloff(&self, endian: Self::Endian) -> u32;
fn nreloc(&self, endian: Self::Endian) -> u32;
fn flags(&self, endian: Self::Endian) -> u32;
fn reserved1(&self, endian: Self::Endian) -> u32;
fn reserved2(&self, endian: Self::Endian) -> u32;
// Provided methods
fn name(&self) -> &[u8] ⓘ { ... }
fn segment_name(&self) -> &[u8] ⓘ { ... }
fn section_type(&self, endian: Self::Endian) -> u32 { ... }
fn file_range(&self, endian: Self::Endian) -> Option<(u64, u64)> { ... }
fn data<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<&'data [u8], ()> { ... }
fn relocations<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<&'data [Relocation<Self::Endian>]> { ... }
fn symbol_stub_size(&self, endian: Self::Endian) -> u32 { ... }
fn indirect_symbols<'data>(
&self,
endian: Self::Endian,
indirect_symbols: &'data [U32<Self::Endian>],
) -> Result<&'data [U32<Self::Endian>]> { ... }
}Expand description
A trait for generic access to macho::Section32 and macho::Section64.
Required Associated Types§
Required Methods§
fn sectname(&self) -> &[u8; 16]
fn segname(&self) -> &[u8; 16]
fn addr(&self, endian: Self::Endian) -> Self::Word
fn size(&self, endian: Self::Endian) -> Self::Word
fn offset(&self, endian: Self::Endian) -> u32
fn align(&self, endian: Self::Endian) -> u32
fn reloff(&self, endian: Self::Endian) -> u32
fn nreloc(&self, endian: Self::Endian) -> u32
fn flags(&self, endian: Self::Endian) -> u32
fn reserved1(&self, endian: Self::Endian) -> u32
fn reserved2(&self, endian: Self::Endian) -> u32
Provided Methods§
Sourcefn segment_name(&self) -> &[u8] ⓘ
fn segment_name(&self) -> &[u8] ⓘ
Return the segname bytes up until the null terminator.
Sourcefn section_type(&self, endian: Self::Endian) -> u32
fn section_type(&self, endian: Self::Endian) -> u32
Return the section type from the flags field.
Sourcefn file_range(&self, endian: Self::Endian) -> Option<(u64, u64)>
fn file_range(&self, endian: Self::Endian) -> Option<(u64, u64)>
Return the offset and size of the section in the file.
Returns None for sections that have no data in the file.
Sourcefn data<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<&'data [u8], ()>
fn data<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<&'data [u8], ()>
Return the section data.
Returns Ok(&[]) if the section has no data.
Returns Err for invalid values.
Sourcefn relocations<'data, R: ReadRef<'data>>(
&self,
endian: Self::Endian,
data: R,
) -> Result<&'data [Relocation<Self::Endian>]>
fn relocations<'data, R: ReadRef<'data>>( &self, endian: Self::Endian, data: R, ) -> Result<&'data [Relocation<Self::Endian>]>
Return the relocation array.
Returns Err for invalid values.
Sourcefn symbol_stub_size(&self, endian: Self::Endian) -> u32
fn symbol_stub_size(&self, endian: Self::Endian) -> u32
Return the size of symbol stubs in this section.
Returns 0 if this section does not contain symbol stubs.
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.