1 | #ifndef NSVALUE_BOXED_EXPRESSIONS_SUPPORT_H |
2 | #define NSVALUE_BOXED_EXPRESSIONS_SUPPORT_H |
3 | |
4 | #define BOXABLE __attribute__((objc_boxable)) |
5 | |
6 | typedef unsigned long NSUInteger; |
7 | typedef double CGFloat; |
8 | |
9 | typedef struct BOXABLE _NSRange { |
10 | NSUInteger location; |
11 | NSUInteger length; |
12 | } NSRange; |
13 | |
14 | typedef struct BOXABLE _NSPoint { |
15 | CGFloat x; |
16 | CGFloat y; |
17 | } NSPoint; |
18 | |
19 | typedef struct BOXABLE _NSSize { |
20 | CGFloat width; |
21 | CGFloat height; |
22 | } NSSize; |
23 | |
24 | typedef struct BOXABLE _NSRect { |
25 | NSPoint origin; |
26 | NSSize size; |
27 | } NSRect; |
28 | |
29 | struct CGPoint { |
30 | CGFloat x; |
31 | CGFloat y; |
32 | }; |
33 | typedef struct BOXABLE CGPoint CGPoint; |
34 | |
35 | struct CGSize { |
36 | CGFloat width; |
37 | CGFloat height; |
38 | }; |
39 | typedef struct BOXABLE CGSize CGSize; |
40 | |
41 | struct CGRect { |
42 | CGPoint origin; |
43 | CGSize size; |
44 | }; |
45 | typedef struct BOXABLE CGRect CGRect; |
46 | |
47 | struct NSEdgeInsets { |
48 | CGFloat top; |
49 | CGFloat left; |
50 | CGFloat bottom; |
51 | CGFloat right; |
52 | }; |
53 | typedef struct BOXABLE NSEdgeInsets NSEdgeInsets; |
54 | |
55 | @interface NSValue |
56 | |
57 | + (NSValue *)valueWithBytes:(const void *)value objCType:(const char *)type; |
58 | |
59 | @end |
60 | |
61 | NSRange getRange(); |
62 | |
63 | #endif // NSVALUE_BOXED_EXPRESSIONS_SUPPORT_H |
64 | |