1#![deny(unsafe_op_in_unsafe_fn, missing_docs)]
7
8pub mod dispatcher;
9pub mod handle;
10pub mod shutdown_observer;
11
12pub fn dispatcher_ptr<'a>(
14 dispatcher: &'a dispatcher::DispatcherRef<'a>,
15) -> &'a core::ptr::NonNull<fdf_sys::fdf_dispatcher_t> {
16 &dispatcher.0
17}
18
19pub fn override_current_dispatcher<R>(
22 dispatcher: dispatcher::DispatcherRef<'_>,
23 f: impl FnOnce() -> R,
24) -> R {
25 dispatcher::OVERRIDE_DISPATCHER.with(|global| {
26 let previous = global.replace(Some(dispatcher.0));
27 let res = f();
28 global.replace(previous);
29 res
30 })
31}