Section

Enum Section 

Source
pub enum Section {
Show 26 variants NOP, Code(Code), RunAtOffset(u16, u16), SectionSwitch(SectionSwitch), BSS(u32), Patch(Patch), XDEF(XDEF), XREF(XREF), LNKHeader(LNKHeader), LocalSymbol(LocalSymbol), GroupSymbol(GroupSymbol), Filename(Filename), SetMXInfo(SetMXInfo), CPU(u8), XBSS(XBSS), IncSLDLineNum(u16), IncSLDLineNumByte(u16, u8), SetSLDLineNum(SetSLDLineNum), SetSLDLineNumFile(SetSLDLineNumFile), EndSLDInfo(u16), FunctionStart(FunctionStart), FunctionEnd(FunctionEnd), BlockStart(BlockStart), BlockEnd(BlockEnd), Def(Def), Def2(Def2),
}
Expand description

A section within an OBJ file.

Sections can contain code, data, relocations, symbols, or debug information. The section list is terminated by a NOP entry.

§Section Types

  • Code: Executable machine code
  • BSS: Uninitialized data
  • XDEF/XREF: Symbol exports and imports
  • Patch: Relocation information
  • Debug sections: Line numbers, function info, etc.

Variants§

§

NOP

End of file marker (tag 0).

§

Code(Code)

Machine code (tag 2).

§

RunAtOffset(u16, u16)

Run at offset (tag 4)

§

SectionSwitch(SectionSwitch)

Switch to different section (tag 6).

§

BSS(u32)

Uninitialized data (BSS) with size in bytes (tag 8).

§

Patch(Patch)

Relocation patch (tag 10).

§

XDEF(XDEF)

External symbol definition (tag 12).

§

XREF(XREF)

External symbol reference (tag 14).

§

LNKHeader(LNKHeader)

Section header (tag 16).

§

LocalSymbol(LocalSymbol)

Local symbol (tag 18).

§

GroupSymbol(GroupSymbol)

Group symbol (tag 20).

§

Filename(Filename)

File name reference (tag 28).

§

SetMXInfo(SetMXInfo)

Set MX info (tag 44).

§

CPU(u8)

CPU type specification (tag 46).

§

XBSS(XBSS)

External BSS symbol (tag 48).

§

IncSLDLineNum(u16)

Increment line number (tag 50).

§

IncSLDLineNumByte(u16, u8)

Increment line number by byte amount (tag 52).

§

SetSLDLineNum(SetSLDLineNum)

Set line number (tag 56).

§

SetSLDLineNumFile(SetSLDLineNumFile)

Set line number with file (tag 58).

§

EndSLDInfo(u16)

End of SLD info (tag 60).

§

FunctionStart(FunctionStart)

Function start marker (tag 74).

§

FunctionEnd(FunctionEnd)

Function end marker (tag 76).

§

BlockStart(BlockStart)

Block start marker (tag 78).

§

BlockEnd(BlockEnd)

Block end marker (tag 80).

§

Def(Def)

Variable/type definition (tag 82).

§

Def2(Def2)

Extended definition with tag (tag 84).

Trait Implementations§

Source§

impl BinRead for Section

Source§

type Args<'__binrw_generated_args_lifetime> = ()

The type used for the args parameter of read_args() and read_options(). Read more
Source§

fn read_options<R: Read + Seek>( __binrw_generated_var_reader: &mut R, __binrw_generated_var_endian: Endian, __binrw_generated_var_arguments: Self::Args<'_>, ) -> BinResult<Self>

Read Self from the reader using the given Endian and arguments. Read more
Source§

fn read<R>(reader: &mut R) -> Result<Self, Error>
where R: Read + Seek, Self: ReadEndian, Self::Args<'a>: for<'a> Required,

Read Self from the reader using default arguments. Read more
Source§

fn read_be<R>(reader: &mut R) -> Result<Self, Error>
where R: Read + Seek, Self::Args<'a>: for<'a> Required,

Read Self from the reader using default arguments and assuming big-endian byte order. Read more
Source§

fn read_le<R>(reader: &mut R) -> Result<Self, Error>
where R: Read + Seek, Self::Args<'a>: for<'a> Required,

Read Self from the reader using default arguments and assuming little-endian byte order. Read more
Source§

fn read_ne<R>(reader: &mut R) -> Result<Self, Error>
where R: Read + Seek, Self::Args<'a>: for<'a> Required,

Read T from the reader assuming native-endian byte order. Read more
Source§

fn read_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
where R: Read + Seek, Self: ReadEndian,

Read Self from the reader using the given arguments. Read more
Source§

fn read_be_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
where R: Read + Seek,

Read Self from the reader, assuming big-endian byte order, using the given arguments. Read more
Source§

fn read_le_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
where R: Read + Seek,

Read Self from the reader, assuming little-endian byte order, using the given arguments. Read more
Source§

fn read_ne_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
where R: Read + Seek,

Read T from the reader, assuming native-endian byte order, using the given arguments. Read more
Source§

impl BinWrite for Section

Source§

type Args<'__binrw_generated_args_lifetime> = ()

The type used for the args parameter of write_args() and write_options(). Read more
Source§

fn write_options<W: Write + Seek>( &self, __binrw_generated_var_writer: &mut W, __binrw_generated_var_endian: Endian, __binrw_generated_var_arguments: Self::Args<'_>, ) -> BinResult<()>

Write Self to the writer using the given Endian and arguments. Read more
Source§

fn write<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write + Seek, Self: WriteEndian, Self::Args<'a>: for<'a> Required,

Write Self to the writer using default arguments. Read more
Source§

fn write_be<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write + Seek, Self::Args<'a>: for<'a> Required,

Write Self to the writer assuming big-endian byte order. Read more
Source§

fn write_le<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write + Seek, Self::Args<'a>: for<'a> Required,

Write Self to the writer assuming little-endian byte order. Read more
Source§

fn write_ne<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write + Seek, Self::Args<'a>: for<'a> Required,

Write Self to the writer assuming native-endian byte order. Read more
Source§

fn write_args<W>( &self, writer: &mut W, args: Self::Args<'_>, ) -> Result<(), Error>
where W: Write + Seek, Self: WriteEndian,

Write Self to the writer using the given arguments. Read more
Source§

fn write_be_args<W>( &self, writer: &mut W, args: Self::Args<'_>, ) -> Result<(), Error>
where W: Write + Seek,

Write Self to the writer, assuming big-endian byte order, using the given arguments. Read more
Source§

fn write_le_args<W>( &self, writer: &mut W, args: Self::Args<'_>, ) -> Result<(), Error>
where W: Write + Seek,

Write Self to the writer, assuming little-endian byte order, using the given arguments. Read more
Source§

fn write_ne_args<W>( &self, writer: &mut W, args: Self::Args<'_>, ) -> Result<(), Error>
where W: Write + Seek,

Write Self to the writer, assuming native-endian byte order, using the given arguments. Read more
Source§

impl Clone for Section

Source§

fn clone(&self) -> Section

Returns a duplicate 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 Section

Source§

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

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

impl Display for Section

Source§

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

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

impl DisplayWithOptions for Section

Source§

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

Source§

impl PartialEq for Section

Source§

fn eq(&self, other: &Section) -> 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 ReadEndian for Section

Source§

const ENDIAN: EndianKind

The endianness of the type.
Source§

impl WriteEndian for Section

Source§

const ENDIAN: EndianKind

The endianness of the type.
Source§

impl StructuralPartialEq for Section

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> CustomError for T
where T: Display + Debug + Send + Sync + 'static,

Source§

fn as_any(&self) -> &(dyn Any + Sync + Send + 'static)

Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + Sync + Send + 'static)

Source§

fn as_box_any(self: Box<T>) -> Box<dyn Any + Sync + Send>

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> ToOwned for T
where T: Clone,

Source§

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
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.