macro_rules! func {
($f:ident :: <$($gen:ty),*>, $fn_type:ty) => { ... };
($f:expr, $fn_type:ty) => { ... };
(func_info: fn ( $f:expr ) ( $($arg_ty:ty),* ) -> $ret:ty) => { ... };
(fn ( $f:expr ) ( $($arg_ty:ty),* ) -> $ret:ty) => { ... };
(func_info: fn ( $f:expr ) ( $($arg_ty:ty),* )) => { ... };
(fn ( $f:expr ) ( $($arg_ty:ty),* )) => { ... };
(func_info: unsafe fn ( $f:expr ) ( $($arg_ty:ty),* ) -> $ret:ty) => { ... };
(unsafe{} fn ( $f:expr ) ( $($arg_ty:ty),* ) -> $ret:ty) => { ... };
(func_info: unsafe fn ( $f:expr ) ( $($arg_ty:ty),* )) => { ... };
(unsafe{} fn ( $f:expr ) ( $($arg_ty:ty),* )) => { ... };
(func_info: unsafe extern "C" fn ( $f:expr ) ( $($arg_ty:ty),* ) -> $ret:ty) => { ... };
(unsafe{} extern "C" fn ( $f:expr ) ( $($arg_ty:ty),* ) -> $ret:ty) => { ... };
(func_info: unsafe extern "C" fn ( $f:expr ) ( $($arg_ty:ty),* )) => { ... };
(unsafe{} extern "C" fn ( $f:expr ) ( $($arg_ty:ty),* )) => { ... };
(func_info: unsafe extern "system" fn ( $f:expr ) ( $($arg_ty:ty),* ) -> $ret:ty) => { ... };
(unsafe{} extern "system" fn ( $f:expr ) ( $($arg_ty:ty),* ) -> $ret:ty) => { ... };
(func_info: unsafe extern "system" fn ( $f:expr ) ( $($arg_ty:ty),* )) => { ... };
(unsafe{} extern "system" fn ( $f:expr ) ( $($arg_ty:ty),* )) => { ... };
}Expand description
Converts a function to a FuncPtr.
This macro handles both generic and non-generic functions:
- For generic functions, provide the function name and type parameters separately:
func!(function_name, fn(Type1, Type2)) - For non-generic functions, simply provide the function:
func!(function_name, fn())