1#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
2pub enum RecoveryMode {
4 #[default]
5 BestEffort,
7 Strict,
9}
10
11#[derive(Debug, Clone, PartialEq, Eq)]
12pub struct DisassemblerOptions {
14 recovery: RecoveryMode,
15}
16
17impl Default for DisassemblerOptions {
18 fn default() -> Self {
19 Self {
20 recovery: RecoveryMode::BestEffort,
21 }
22 }
23}
24
25impl DisassemblerOptions {
26 #[must_use]
28 pub fn recovery(&self) -> RecoveryMode {
29 self.recovery
30 }
31}
32
33#[derive(Debug, Clone, Default)]
34pub struct DisassemblerBuilder {
36 options: DisassemblerOptions,
37}
38
39impl DisassemblerBuilder {
40 #[must_use]
44 pub fn recovery(mut self, recovery: RecoveryMode) -> Self {
45 self.options.recovery = recovery;
46 self
47 }
48
49 #[must_use]
51 pub fn build(self) -> Disassembler {
52 Disassembler::new(self.options)
53 }
54}
55
56use crate::Disassembler;