use crate::error::Error; pub trait UnwindRule: Copy + core::fmt::Debug { type UnwindRegs; fn exec( self, is_first_frame: bool, regs: &mut Self::UnwindRegs, read_stack: &mut F, ) -> Result, Error> where F: FnMut(u64) -> Result; fn rule_for_stub_functions() -> Self; fn rule_for_function_start() -> Self; fn fallback_rule() -> Self; }