[−][src]Struct elf_utilities::symbol::Symbol64
Symbol64 is a entry of symbol table section.
Symbol64 はシンボルテーブルセクションのエントリである. ELF64で用いることを想定している.
Defaultトレイトを実装しているので,
Default::default()
を呼び出すことで簡単にNULLシンボルを作成できる.
Examples
use elf_utilities::symbol::Symbol64; let null_sym : Symbol64 = Default::default(); // Symbol64::new_null_symbol() のエイリアスでも作成可能. let null_sym2 : Symbol64 = Symbol64::new_null_symbol(); assert_eq!(null_sym, null_sym2);
ELFファイルを生成する用途でこのライブラリを使用できるように, バイト列への変換もサポートしている.
Examples
use elf_utilities::symbol::Symbol64; let null_sym : Symbol64 = Default::default(); // to_le_bytes() を利用してバイト列に変換できる. let sym_bytes = null_sym.to_le_bytes(); assert_eq!(Symbol64::size(),sym_bytes.len() as elf_utilities::Elf64Xword)
Fields
st_name: Elf64Word
Symbol name index.
st_info: u8
Information that includes symbol binds and symbol types.
st_other: u8
Symbol's visibility. See symbol::VISIBILITY.
st_shndx: Elf64Section
A section table index that includes the symbol.
st_value: Elf64Addr
Symbol's value.
st_size: Elf64Xword
Symbol's size.
symbol_name: Option<String>
option member for utilities.
Implementations
impl Symbol64
[src]
pub fn new_null_symbol() -> Self
[src]
pub fn size() -> Elf64Xword
[src]
size() provides Symbol64's size used by Shdr64.sh_entsize or else.
pub fn compare_by<P>(&self, predicate: P) -> bool where
P: Fn(&Self) -> bool,
[src]
P: Fn(&Self) -> bool,
for utilities
pub fn get_type(&self) -> Type
[src]
pub fn get_bind(&self) -> Bind
[src]
pub fn get_visibility(&self) -> Visibility
[src]
pub fn set_info(&mut self, sym_type: Type, bind: Bind)
[src]
Set symbol's information to Symbol64
Examples
use elf_utilities::symbol; let mut null_sym = symbol::Symbol64::new_null_symbol(); null_sym.set_info(symbol::Type::Func, symbol::Bind::Global); assert_eq!((1 << 4) | 2, null_sym.st_info);
pub fn to_le_bytes(&self) -> Vec<u8>
[src]
Create Vec
Examples
use elf_utilities::symbol::Symbol64; let null_sym : Symbol64 = Default::default(); assert_eq!([0].repeat(Symbol64::size() as usize), null_sym.to_le_bytes());
pub fn deserialize(buf: &[u8], start: usize) -> Result<Self, Box<dyn Error>>
[src]
Trait Implementations
impl Clone for Symbol64
[src]
impl Debug for Symbol64
[src]
impl Default for Symbol64
[src]
impl<'de> Deserialize<'de> for Symbol64
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl Eq for Symbol64
[src]
impl Hash for Symbol64
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl Ord for Symbol64
[src]
fn cmp(&self, other: &Symbol64) -> Ordering
[src]
#[must_use]fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self
[src]
impl PartialEq<Symbol64> for Symbol64
[src]
impl PartialOrd<Symbol64> for Symbol64
[src]
fn partial_cmp(&self, other: &Symbol64) -> Option<Ordering>
[src]
fn lt(&self, other: &Symbol64) -> bool
[src]
fn le(&self, other: &Symbol64) -> bool
[src]
fn gt(&self, other: &Symbol64) -> bool
[src]
fn ge(&self, other: &Symbol64) -> bool
[src]
impl Serialize for Symbol64
[src]
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl StructuralEq for Symbol64
[src]
impl StructuralPartialEq for Symbol64
[src]
Auto Trait Implementations
impl RefUnwindSafe for Symbol64
impl Send for Symbol64
impl Sync for Symbol64
impl Unpin for Symbol64
impl UnwindSafe for Symbol64
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,