1
+ [ StructLayout ( LayoutKind . Sequential ) ]
2
+ public unsafe struct pointer
3
+ {
4
+ public pointer ( nint address ) => Address = address ;
5
+
6
+ public nint Address ;
7
+
8
+ public static implicit operator pointer ( nint address ) => new ( address ) ;
9
+ public static implicit operator pointer ( void * pointer ) => new ( ( nint ) pointer ) ;
10
+ public static implicit operator pointer ( void * * pointer ) => new ( ( nint ) pointer ) ;
11
+ public static implicit operator pointer ( void * * * pointer ) => new ( ( nint ) pointer ) ;
12
+ public static implicit operator pointer ( delegate * unmanaged< void > ptr ) => new ( ( nint ) ptr ) ;
13
+
14
+ public static implicit operator nint ( pointer pointer ) => pointer . Address ;
15
+
16
+ public static implicit operator void * ( pointer pointer ) => ( void * ) pointer . Address ;
17
+ public static implicit operator void * * ( pointer pointer ) => ( void * * ) pointer . Address ;
18
+ public static implicit operator void * * * ( pointer Sudden_Reference_To_Bocchi_The_Rock ) => ( void * * * ) Sudden_Reference_To_Bocchi_The_Rock . Address ;
19
+
20
+ public static implicit operator byte * ( pointer pointer ) => ( byte * ) pointer . Address ;
21
+ public static implicit operator sbyte * ( pointer pointer ) => ( sbyte * ) pointer . Address ;
22
+ public static implicit operator short * ( pointer pointer ) => ( short * ) pointer . Address ;
23
+ public static implicit operator ushort * ( pointer pointer ) => ( ushort * ) pointer . Address ;
24
+ public static implicit operator int * ( pointer pointer ) => ( int * ) pointer . Address ;
25
+ public static implicit operator uint * ( pointer pointer ) => ( uint * ) pointer . Address ;
26
+ public static implicit operator long * ( pointer pointer ) => ( long * ) pointer . Address ;
27
+ public static implicit operator ulong * ( pointer pointer ) => ( ulong * ) pointer . Address ;
28
+ public static implicit operator nint * ( pointer pointer ) => ( nint * ) pointer . Address ;
29
+ public static implicit operator nuint * ( pointer pointer ) => ( nuint * ) pointer . Address ;
30
+
31
+ public static implicit operator delegate * unmanaged< void > ( pointer pointer ) => ( delegate * unmanaged< void > ) pointer ;
32
+ }
0 commit comments