//! Wrap a `FnOnce` into something which behaves like a `FnMut`.
//!
//! To prevent inlining, `clear_stack_on_return` has to hide the passed
//! closure behind a borrow. However, it's not possible to move out of
//! a borrow, so `FnOnce` can't be used.
//!
//! The `FnOption` wraps the `FnOnce` with an `Option`, which can be
//! moved out of.
/// Wraps a `FnOnce` with an `Option`.