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