pub struct KOSymbol {
    pub name_idx: StringIdx,
    pub value_idx: DataIdx,
    pub size: u16,
    pub sym_bind: SymBind,
    pub sym_type: SymType,
    pub sh_idx: SectionIdx,
}
Expand description

Represents a symbol in a symbol table in a Kerbal Object file

Fields§

§name_idx: StringIdx

The index into the .symstrtab that is the name of this symbol

§value_idx: DataIdx

The index into the .data section that this symbol refers to

§size: u16

The size of the data this symbol refers to in bytes

§sym_bind: SymBind

The symbol binding of this symbol

§sym_type: SymType

The symbol type

§sh_idx: SectionIdx

The section header index this symbol refers to

Implementations§

source§

impl KOSymbol

source

pub const fn new( name_idx: StringIdx, value_idx: DataIdx, size: u16, sym_bind: SymBind, sym_type: SymType, sh_idx: SectionIdx ) -> Self

Creates a new KOSymbol

source

pub const fn size_bytes() -> u32

Returns the size of a symbol table entry in bytes

source

pub fn parse(source: &mut BufferIterator<'_>) -> Result<Self, SymbolParseError>

Parses a KOSymbol from the provided buffer

source

pub fn write(&self, buf: &mut impl WritableBuffer)

Converts this KOSymbol to its binary representation and appends it to the provided buffer

Trait Implementations§

source§

impl Clone for KOSymbol

source§

fn clone(&self) -> KOSymbol

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for KOSymbol

source§

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

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

impl Hash for KOSymbol

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<KOSymbol> for KOSymbol

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for KOSymbol

source§

impl Eq for KOSymbol

source§

impl StructuralEq for KOSymbol

source§

impl StructuralPartialEq for KOSymbol

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

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 Twhere U: TryFrom<T>,

§

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.