use crate;
use c_void;
// we use a struct to ensure that objc_autoreleasePoolPop during unwinding.
/**
Execute `f` in the context of a new autorelease pool. The pool is drained
after the execution of `f` completes.
This corresponds to `@autoreleasepool` blocks in Objective-C and Swift.
*/