/// A general purpose closure type defined in C code which can be created in Rust.
typedef struct Closure Closure;
/// Calls the inner code. The return value of this may have come from
/// Rust, meaning you can not free it. However it must be freed. When
/// you're done with the return value, pass it back to Rust with
/// `closure_release_return_value` so that the memory isn't leaked. If you won't be
/// using the return value, instead call `closure_call_with_no_return`.
void *;
/// Cleans up the value returned by calling this Closure. Do not attempt
/// to free the returned pointer yourself.
void ;
/// Calls the inner code and cleans up the returned value, if any.
void ;
/// Release data associated with this closure, must be called when done with
/// Closure to avoid memory leaking.
void ;