1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
pub unsafe trait Function: Sized + Copy + Sync + 'static {
type Arguments;
type Output;
unsafe fn from_ptr(ptr: *const ()) -> Self;
fn to_ptr(&self) -> *const ();
}
pub unsafe trait HookableWith<D: Function>: Function {}
unsafe impl<T: Function> HookableWith<T> for T {}
impl_hookable! {
__arg_0: A, __arg_1: B, __arg_2: C, __arg_3: D, __arg_4: E, __arg_5: F, __arg_6: G,
__arg_7: H, __arg_8: I, __arg_9: J, __arg_10: K, __arg_11: L, __arg_12: M, __arg_13: N
}