message: doc(runtime-core) Improve documentation of `func!`.
  This patch explains that `func!` can consume closures.
diff: @@ -45,6 +45,44 @@ macro_rules! trace {
  }
  /// Helper macro to create a new `Func` object using the provided function pointer.
  +///
  +/// # Usage
  +///
  +/// Function pointers or closures are supported. Closures can capture
  +/// their environment (with `move). The first parameter is likely to
  +/// be of kind `vm::Ctx`, though it can be optional.
  +///
  +/// ```
  +/// # use wasmer_runtime_core::{imports, func};
  +/// # use wasmer_runtime_core::vm;
  +///
  +/// // A function that has access to `vm::Ctx`.
  +/// fn func_with_vmctx(_: &mut vm::Ctx, n: i32) -> i32 {
  +/// n
  +/// }
  +///
  +/// // A function that cannot access `vm::Ctx`.
  +/// fn func(n: i32) -> i32 {
  +/// n
  +/// }
  +///
  +/// let i = 7;
  +///
  +/// let import_object = imports! {
  +/// "env" => {
  +/// "foo" => func!(func_with_vmctx),
  +/// "bar" => func!(func),
  +/// // A closure with a captured environment, and an access to `vm::Ctx`.
  +/// "baz" => func!(move |_: &mut vm::Ctx, n: i32| -> i32 {
  +/// n + i
  +/// }),
  +/// // A closure without a captured environment, and no access to `vm::Ctx`.
  +/// "qux" => func!(|n: i32| -> i32 {
  +/// n
  +/// }),
  +/// },
  +/// };
  +/// ```
  #[macro_export]
  macro_rules! func {
  ($func:expr) => {{
  