Skip to main content

Disassembler

Struct Disassembler 

Source
pub struct Disassembler { /* private fields */ }
Expand description

Parses Java class files into a structured reverse-engineering model.

The default instance uses RecoveryMode::BestEffort. It preserves a readable class-file header and records a Diagnostic when complete decoding cannot continue.

Implementations§

Source§

impl Disassembler

Source

pub fn builder() -> DisassemblerBuilder

Creates a builder for configuring a disassembler.

The builder starts with RecoveryMode::BestEffort.

Source

pub fn new(options: DisassemblerOptions) -> Self

Creates a disassembler with the supplied options.

Source

pub fn options(&self) -> &DisassemblerOptions

Returns the options used by this disassembler.

Source

pub fn parse(&self, bytes: &[u8]) -> Result<Disassembly, FerroBabeError>

Parses one complete Java class-file byte sequence.

In best-effort mode, an error after the class-file header is read returns a partial Disassembly with diagnostics. In strict mode, the same decoding failure is returned as FerroBabeError. Invalid, incomplete, or unsupported headers always return an error.

§Errors

Returns an error when the input has no readable supported class-file header, or when strict recovery is selected and decoding fails.

Source

pub fn parse_reader<R: Read>( &self, reader: R, ) -> Result<Disassembly, FerroBabeError>

Reads and parses one Java class file from reader.

The complete reader is buffered before parsing, so the returned Disassembly does not borrow from reader.

§Errors

Returns FerroBabeError::InputRead when reading fails, or any error documented by Self::parse after the bytes have been read.

Source

pub fn disassemble(&self, bytes: &[u8]) -> Result<String, FerroBabeError>

Parses bytes and renders a complete class with FerroFormatter.

§Errors

Returns parse errors, FerroBabeError::IncompleteDisassembly for a recovered partial result, or a formatting error from the default formatter.

Source

pub fn disassemble_with<F: Formatter>( &self, bytes: &[u8], formatter: &F, ) -> Result<String, FerroBabeError>

Parses bytes and renders the resulting complete class with formatter.

formatter receives the same Class view available through Disassembly::class.

§Errors

Returns parse errors, FerroBabeError::IncompleteDisassembly for a partial result, or FerroBabeError::Format when formatter cannot write its output.

Trait Implementations§

Source§

impl Clone for Disassembler

Source§

fn clone(&self) -> Disassembler

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Disassembler

Source§

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

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

impl Default for Disassembler

Source§

fn default() -> Disassembler

Returns the “default value” for a type. Read more

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> 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, 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.