В плагине C++ исключение может пройти через вызванный Rust callback. Какой ABI должен быть указан на границе, чтобы такой unwind не пересекал запрещённый контракт?
unsafe extern "C" {
fn start(cb: extern "C" fn());
fn cxx_operation();
}
extern "C" fn callback() {
unsafe { cxx_operation() }
}
fn main() {
unsafe { start(callback) }
}