27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
|
#import "OFSerialization.h"
#import "OFJSONRepresentation.h"
/**
* \brief The type of a number.
*/
typedef enum of_number_type_t {
OF_NUMBER_BOOL,
OF_NUMBER_CHAR,
OF_NUMBER_SHORT,
OF_NUMBER_INT,
OF_NUMBER_LONG,
OF_NUMBER_UCHAR,
OF_NUMBER_USHORT,
OF_NUMBER_UINT,
OF_NUMBER_ULONG,
OF_NUMBER_INT8,
OF_NUMBER_INT16,
OF_NUMBER_INT32,
OF_NUMBER_INT64,
OF_NUMBER_UINT8,
OF_NUMBER_UINT16,
OF_NUMBER_UINT32,
OF_NUMBER_UINT64,
OF_NUMBER_SIZE,
OF_NUMBER_SSIZE,
OF_NUMBER_INTMAX,
OF_NUMBER_UINTMAX,
OF_NUMBER_PTRDIFF,
OF_NUMBER_INTPTR,
OF_NUMBER_BOOL = 0x01,
OF_NUMBER_UCHAR = 0x02,
OF_NUMBER_USHORT = 0x03,
OF_NUMBER_UINT = 0x04,
OF_NUMBER_ULONG = 0x05,
OF_NUMBER_SIZE = 0x06,
OF_NUMBER_UINT8 = 0x07,
OF_NUMBER_UINT16 = 0x08,
OF_NUMBER_UINT32 = 0x09,
OF_NUMBER_UINT64 = 0x0A,
OF_NUMBER_UINTPTR = 0x0B,
OF_NUMBER_UINTMAX = 0x0C,
OF_NUMBER_SIGNED = 0x10,
OF_NUMBER_CHAR = OF_NUMBER_UCHAR | OF_NUMBER_SIGNED,
OF_NUMBER_SHORT = OF_NUMBER_USHORT | OF_NUMBER_SIGNED,
OF_NUMBER_INT = OF_NUMBER_UINT | OF_NUMBER_SIGNED,
OF_NUMBER_LONG = OF_NUMBER_ULONG | OF_NUMBER_SIGNED,
OF_NUMBER_INT8 = OF_NUMBER_UINT8 | OF_NUMBER_SIGNED,
OF_NUMBER_INT16 = OF_NUMBER_UINT16 | OF_NUMBER_SIGNED,
OF_NUMBER_INT32 = OF_NUMBER_UINT32 | OF_NUMBER_SIGNED,
OF_NUMBER_INT64 = OF_NUMBER_UINT64 | OF_NUMBER_SIGNED,
OF_NUMBER_SSIZE = OF_NUMBER_SIZE | OF_NUMBER_SIGNED,
OF_NUMBER_INTMAX = OF_NUMBER_UINTMAX | OF_NUMBER_SIGNED,
OF_NUMBER_PTRDIFF = 0x0D | OF_NUMBER_SIGNED,
OF_NUMBER_INTPTR = 0x0E | OF_NUMBER_SIGNED,
OF_NUMBER_UINTPTR,
OF_NUMBER_FLOAT,
OF_NUMBER_DOUBLE,
OF_NUMBER_FLOAT = 0x20,
OF_NUMBER_DOUBLE = 0x40 | OF_NUMBER_FLOAT,
} of_number_type_t;
/**
* \brief Provides a way to store a number in an object.
*/
@interface OFNumber: OFObject <OFCopying, OFSerialization, OFJSONRepresentation>
{
|