FerroBabe 0.1.0

A lightweight Rust library for disassembling Java class files without a JVM.
Documentation
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub enum RecoveryMode {
    #[default]
    BestEffort,
    Strict,
}

#[derive(Debug, Clone, PartialEq, Eq)]
pub struct DisassemblerOptions {
    recovery: RecoveryMode,
}

impl Default for DisassemblerOptions {
    fn default() -> Self {
        Self {
            recovery: RecoveryMode::BestEffort,
        }
    }
}

impl DisassemblerOptions {
    #[must_use]
    pub fn recovery(&self) -> RecoveryMode {
        self.recovery
    }
}

#[derive(Debug, Clone, Default)]
pub struct DisassemblerBuilder {
    options: DisassemblerOptions,
}

impl DisassemblerBuilder {
    #[must_use]
    pub fn recovery(mut self, recovery: RecoveryMode) -> Self {
        self.options.recovery = recovery;
        self
    }

    #[must_use]
    pub fn build(self) -> Disassembler {
        Disassembler::new(self.options)
    }
}

use crate::Disassembler;