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