Struct VersionIndex

Source
pub struct VersionIndex(pub u16);
Expand description

The special GNU extension section .gnu.version has a section type of SHT_GNU_VERSYM. This section shall have the same number of entries as the Dynamic Symbol Table in the .dynsym section. The .gnu.version section shall contain an array of elements of type Elfxx_Half (both of which are 16-bit unsigned integers).

The .gnu.version section and VersionIndex values act as a lookup table for specifying the version defined for or required by the corresponding symbol in the Dynamic Symbol Table.

For example, the symbol at index N in the .dynsym Symbol Table will have a VersionIndex value located in the versym table at .gnu.version[N] which identifies structures in the .gnu.version_d and .gnu.version_r sections. These values are located in identifiers provided by the the vna_other member of the VerNeedAux structure or the vd_ndx member of the VerDef structure.

Tuple Fields§

§0: u16

Implementations§

Source§

impl VersionIndex

Source

pub fn index(&self) -> u16

Source

pub fn is_local(&self) -> bool

Source

pub fn is_global(&self) -> bool

Source

pub fn is_hidden(&self) -> bool

Trait Implementations§

Source§

impl Debug for VersionIndex

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl ParseAt for VersionIndex

Source§

fn parse_at<E: EndianParse>( endian: E, _class: Class, offset: &mut usize, data: &[u8], ) -> Result<Self, ParseError>

Parse this type by using the given endian-awareness and ELF class layout. This is generic on EndianParse in order to allow users to optimize for their expectations of data layout. See EndianParse for more details.
Source§

fn size_for(_class: Class) -> usize

Returns the expected size of the type being parsed for the given ELF class
Source§

fn validate_entsize(class: Class, entsize: usize) -> Result<usize, ParseError>

Checks whether the given entsize matches what we need to parse this type Read more
Source§

impl PartialEq for VersionIndex

Source§

fn eq(&self, other: &VersionIndex) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for VersionIndex

Source§

impl StructuralPartialEq for VersionIndex

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.