Trait minhook::function::Function
[−]
[src]
pub unsafe trait Function: Sized + Copy + Sync + 'static {
type Unsafe: UnsafeFunction<Args=Self::Args, Output=Self::Output>;
type Args;
type Output;
const ARITY: usize;
unsafe fn from_ptr(ptr: FnPointer) -> Self;
fn to_ptr(&self) -> FnPointer;
fn to_unsafe(&self) -> Self::Unsafe;
}Trait representing a function that can be used as a target function or detour function for hooking.
Associated Types
type Unsafe: UnsafeFunction<Args=Self::Args, Output=Self::Output>
Unsafe version of this function.
type Args
The argument types as a tuple.
type Output
The return type.
Associated Constants
Required Methods
unsafe fn from_ptr(ptr: FnPointer) -> Self
Constructs a Function from an untyped function pointer.
Safety
This function is unsafe because it can not check if the argument points to a function of the correct type.
fn to_ptr(&self) -> FnPointer
Returns a untyped function pointer for this function.
fn to_unsafe(&self) -> Self::Unsafe
Returns this function as its unsafe variant.
Implementors
impl<Ret: 'static> Function for fn() -> Retimpl<Ret: 'static> Function for unsafe fn() -> Retimpl<Ret: 'static> Function for extern "cdecl" fn() -> Retimpl<Ret: 'static> Function for unsafe extern "cdecl" fn() -> Retimpl<Ret: 'static> Function for extern "stdcall" fn() -> Retimpl<Ret: 'static> Function for unsafe extern "stdcall" fn() -> Retimpl<Ret: 'static> Function for extern "fastcall" fn() -> Retimpl<Ret: 'static> Function for unsafe extern "fastcall" fn() -> Retimpl<Ret: 'static> Function for extern "win64" fn() -> Retimpl<Ret: 'static> Function for unsafe extern "win64" fn() -> Retimpl<Ret: 'static> Function for extern fn() -> Retimpl<Ret: 'static> Function for unsafe extern fn() -> Retimpl<Ret: 'static> Function for extern "system" fn() -> Retimpl<Ret: 'static> Function for unsafe extern "system" fn() -> Retimpl<Ret: 'static, A: 'static> Function for fn(A) -> Retimpl<Ret: 'static, A: 'static> Function for unsafe fn(A) -> Retimpl<Ret: 'static, A: 'static> Function for extern "cdecl" fn(A) -> Retimpl<Ret: 'static, A: 'static> Function for unsafe extern "cdecl" fn(A) -> Retimpl<Ret: 'static, A: 'static> Function for extern "stdcall" fn(A) -> Retimpl<Ret: 'static, A: 'static> Function for unsafe extern "stdcall" fn(A) -> Retimpl<Ret: 'static, A: 'static> Function for extern "fastcall" fn(A) -> Retimpl<Ret: 'static, A: 'static> Function for unsafe extern "fastcall" fn(A) -> Retimpl<Ret: 'static, A: 'static> Function for extern "win64" fn(A) -> Retimpl<Ret: 'static, A: 'static> Function for unsafe extern "win64" fn(A) -> Retimpl<Ret: 'static, A: 'static> Function for extern fn(A) -> Retimpl<Ret: 'static, A: 'static> Function for unsafe extern fn(A) -> Retimpl<Ret: 'static, A: 'static> Function for extern "system" fn(A) -> Retimpl<Ret: 'static, A: 'static> Function for unsafe extern "system" fn(A) -> Retimpl<Ret: 'static, A: 'static, B: 'static> Function for fn(A, B) -> Retimpl<Ret: 'static, A: 'static, B: 'static> Function for unsafe fn(A, B) -> Retimpl<Ret: 'static, A: 'static, B: 'static> Function for extern "cdecl" fn(A, B) -> Retimpl<Ret: 'static, A: 'static, B: 'static> Function for unsafe extern "cdecl" fn(A, B) -> Retimpl<Ret: 'static, A: 'static, B: 'static> Function for extern "stdcall" fn(A, B) -> Retimpl<Ret: 'static, A: 'static, B: 'static> Function for unsafe extern "stdcall" fn(A, B) -> Retimpl<Ret: 'static, A: 'static, B: 'static> Function for extern "fastcall" fn(A, B) -> Retimpl<Ret: 'static, A: 'static, B: 'static> Function for unsafe extern "fastcall" fn(A, B) -> Retimpl<Ret: 'static, A: 'static, B: 'static> Function for extern "win64" fn(A, B) -> Retimpl<Ret: 'static, A: 'static, B: 'static> Function for unsafe extern "win64" fn(A, B) -> Retimpl<Ret: 'static, A: 'static, B: 'static> Function for extern fn(A, B) -> Retimpl<Ret: 'static, A: 'static, B: 'static> Function for unsafe extern fn(A, B) -> Retimpl<Ret: 'static, A: 'static, B: 'static> Function for extern "system" fn(A, B) -> Retimpl<Ret: 'static, A: 'static, B: 'static> Function for unsafe extern "system" fn(A, B) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static> Function for fn(A, B, C) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static> Function for unsafe fn(A, B, C) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static> Function for extern "cdecl" fn(A, B, C) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static> Function for unsafe extern "cdecl" fn(A, B, C) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static> Function for extern "stdcall" fn(A, B, C) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static> Function for unsafe extern "stdcall" fn(A, B, C) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static> Function for extern "fastcall" fn(A, B, C) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static> Function for unsafe extern "fastcall" fn(A, B, C) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static> Function for extern "win64" fn(A, B, C) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static> Function for unsafe extern "win64" fn(A, B, C) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static> Function for extern fn(A, B, C) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static> Function for unsafe extern fn(A, B, C) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static> Function for extern "system" fn(A, B, C) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static> Function for unsafe extern "system" fn(A, B, C) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> Function for fn(A, B, C, D) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> Function for unsafe fn(A, B, C, D) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> Function for extern "cdecl" fn(A, B, C, D) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> Function for unsafe extern "cdecl" fn(A, B, C, D) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> Function for extern "stdcall" fn(A, B, C, D) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> Function for unsafe extern "stdcall" fn(A, B, C, D) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> Function for extern "fastcall" fn(A, B, C, D) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> Function for unsafe extern "fastcall" fn(A, B, C, D) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> Function for extern "win64" fn(A, B, C, D) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> Function for unsafe extern "win64" fn(A, B, C, D) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> Function for extern fn(A, B, C, D) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> Function for unsafe extern fn(A, B, C, D) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> Function for extern "system" fn(A, B, C, D) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static> Function for unsafe extern "system" fn(A, B, C, D) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> Function for fn(A, B, C, D, E) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> Function for unsafe fn(A, B, C, D, E) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> Function for extern "cdecl" fn(A, B, C, D, E) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> Function for unsafe extern "cdecl" fn(A, B, C, D, E) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> Function for extern "stdcall" fn(A, B, C, D, E) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> Function for unsafe extern "stdcall" fn(A, B, C, D, E) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> Function for extern "fastcall" fn(A, B, C, D, E) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> Function for unsafe extern "fastcall" fn(A, B, C, D, E) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> Function for extern "win64" fn(A, B, C, D, E) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> Function for unsafe extern "win64" fn(A, B, C, D, E) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> Function for extern fn(A, B, C, D, E) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> Function for unsafe extern fn(A, B, C, D, E) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> Function for extern "system" fn(A, B, C, D, E) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static> Function for unsafe extern "system" fn(A, B, C, D, E) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> Function for fn(A, B, C, D, E, F) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> Function for unsafe fn(A, B, C, D, E, F) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> Function for extern "cdecl" fn(A, B, C, D, E, F) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> Function for unsafe extern "cdecl" fn(A, B, C, D, E, F) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> Function for extern "stdcall" fn(A, B, C, D, E, F) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> Function for unsafe extern "stdcall" fn(A, B, C, D, E, F) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> Function for extern "fastcall" fn(A, B, C, D, E, F) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> Function for unsafe extern "fastcall" fn(A, B, C, D, E, F) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> Function for extern "win64" fn(A, B, C, D, E, F) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> Function for unsafe extern "win64" fn(A, B, C, D, E, F) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> Function for extern fn(A, B, C, D, E, F) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> Function for unsafe extern fn(A, B, C, D, E, F) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> Function for extern "system" fn(A, B, C, D, E, F) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static> Function for unsafe extern "system" fn(A, B, C, D, E, F) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static> Function for fn(A, B, C, D, E, F, G) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static> Function for unsafe fn(A, B, C, D, E, F, G) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static> Function for extern "cdecl" fn(A, B, C, D, E, F, G) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static> Function for unsafe extern "cdecl" fn(A, B, C, D, E, F, G) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static> Function for extern "stdcall" fn(A, B, C, D, E, F, G) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static> Function for unsafe extern "stdcall" fn(A, B, C, D, E, F, G) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static> Function for extern "fastcall" fn(A, B, C, D, E, F, G) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static> Function for unsafe extern "fastcall" fn(A, B, C, D, E, F, G) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static> Function for extern "win64" fn(A, B, C, D, E, F, G) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static> Function for unsafe extern "win64" fn(A, B, C, D, E, F, G) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static> Function for extern fn(A, B, C, D, E, F, G) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static> Function for unsafe extern fn(A, B, C, D, E, F, G) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static> Function for extern "system" fn(A, B, C, D, E, F, G) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static> Function for unsafe extern "system" fn(A, B, C, D, E, F, G) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static> Function for fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static> Function for unsafe fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static> Function for extern "cdecl" fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static> Function for unsafe extern "cdecl" fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static> Function for extern "stdcall" fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static> Function for unsafe extern "stdcall" fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static> Function for extern "fastcall" fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static> Function for unsafe extern "fastcall" fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static> Function for extern "win64" fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static> Function for unsafe extern "win64" fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static> Function for extern fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static> Function for unsafe extern fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static> Function for extern "system" fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static> Function for unsafe extern "system" fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static> Function for fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static> Function for unsafe fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static> Function for extern "cdecl" fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static> Function for unsafe extern "cdecl" fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static> Function for extern "stdcall" fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static> Function for unsafe extern "stdcall" fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static> Function for extern "fastcall" fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static> Function for unsafe extern "fastcall" fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static> Function for extern "win64" fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static> Function for unsafe extern "win64" fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static> Function for extern fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static> Function for unsafe extern fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static> Function for extern "system" fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static> Function for unsafe extern "system" fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static> Function for fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static> Function for unsafe fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static> Function for extern "cdecl" fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static> Function for unsafe extern "cdecl" fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static> Function for extern "stdcall" fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static> Function for unsafe extern "stdcall" fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static> Function for extern "fastcall" fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static> Function for unsafe extern "fastcall" fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static> Function for extern "win64" fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static> Function for unsafe extern "win64" fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static> Function for extern fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static> Function for unsafe extern fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static> Function for extern "system" fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static> Function for unsafe extern "system" fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static> Function for fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static> Function for unsafe fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static> Function for extern "cdecl" fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static> Function for unsafe extern "cdecl" fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static> Function for extern "stdcall" fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static> Function for unsafe extern "stdcall" fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static> Function for extern "fastcall" fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static> Function for unsafe extern "fastcall" fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static> Function for extern "win64" fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static> Function for unsafe extern "win64" fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static> Function for extern fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static> Function for unsafe extern fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static> Function for extern "system" fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static> Function for unsafe extern "system" fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static, L: 'static> Function for fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static, L: 'static> Function for unsafe fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static, L: 'static> Function for extern "cdecl" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static, L: 'static> Function for unsafe extern "cdecl" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static, L: 'static> Function for extern "stdcall" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static, L: 'static> Function for unsafe extern "stdcall" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static, L: 'static> Function for extern "fastcall" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static, L: 'static> Function for unsafe extern "fastcall" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static, L: 'static> Function for extern "win64" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static, L: 'static> Function for unsafe extern "win64" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static, L: 'static> Function for extern fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static, L: 'static> Function for unsafe extern fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static, L: 'static> Function for extern "system" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret: 'static, A: 'static, B: 'static, C: 'static, D: 'static, E: 'static, F: 'static, G: 'static, H: 'static, I: 'static, J: 'static, K: 'static, L: 'static> Function for unsafe extern "system" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret