17 #ifndef __STDC_LIMIT_MACROS
18 # define __STDC_LIMIT_MACROS
20 #ifndef __STDC_CONSTANT_MACROS
21 # define __STDC_CONSTANT_MACROS
24 #include <sys/types.h>
27 #import "OFSerialization.h"
28 #import "OFJSONRepresentation.h"
29 #import "OFMessagePackRepresentation.h"
31 OF_ASSUME_NONNULL_BEGIN
65 OF_NUMBER_TYPE_SIGNED = 0x10,
68 OF_NUMBER_TYPE_SIGNED,
71 OF_NUMBER_TYPE_SIGNED,
74 OF_NUMBER_TYPE_SIGNED,
77 OF_NUMBER_TYPE_SIGNED,
80 OF_NUMBER_TYPE_SIGNED,
83 OF_NUMBER_TYPE_SIGNED,
86 OF_NUMBER_TYPE_SIGNED,
89 OF_NUMBER_TYPE_SIGNED,
92 OF_NUMBER_TYPE_SIGNED,
95 OF_NUMBER_TYPE_SIGNED,
98 OF_NUMBER_TYPE_SIGNED,
117 union of_number_value {
123 signed long long slonglong;
125 unsigned short ushort;
128 unsigned long long ulonglong;
150 #ifdef OF_HAVE_PROPERTIES
160 + (instancetype)numberWithBool: (
bool)bool_;
168 + (instancetype)numberWithChar: (
signed char)schar;
176 + (instancetype)numberWithShort: (
signed short)sshort;
184 + (instancetype)numberWithInt: (
signed int)sint;
192 + (instancetype)numberWithLong: (
signed long)slong;
200 + (instancetype)numberWithLongLong: (
signed long long)slonglong;
208 + (instancetype)numberWithUnsignedChar: (
unsigned char)uchar;
216 + (instancetype)numberWithUnsignedShort: (
unsigned short)ushort;
224 + (instancetype)numberWithUnsignedInt: (
unsigned int)uint;
232 + (instancetype)numberWithUnsignedLong: (
unsigned long)ulong;
240 + (instancetype)numberWithUnsignedLongLong: (
unsigned long long)ulonglong;
248 + (instancetype)numberWithInt8: (int8_t)int8;
256 + (instancetype)numberWithInt16: (int16_t)int16;
264 + (instancetype)numberWithInt32: (int32_t)int32;
272 + (instancetype)numberWithInt64: (int64_t)int64;
280 + (instancetype)numberWithUInt8: (uint8_t)uint8;
288 + (instancetype)numberWithUInt16: (uint16_t)uint16;
296 + (instancetype)numberWithUInt32: (uint32_t)uint32;
304 + (instancetype)numberWithUInt64: (uint64_t)uint64;
312 + (instancetype)numberWithSize: (
size_t)size;
320 + (instancetype)numberWithSSize: (ssize_t)ssize;
328 + (instancetype)numberWithIntMax: (intmax_t)intmax;
336 + (instancetype)numberWithUIntMax: (uintmax_t)uintmax;
344 + (instancetype)numberWithPtrDiff: (ptrdiff_t)ptrdiff;
352 + (instancetype)numberWithIntPtr: (intptr_t)intptr;
360 + (instancetype)numberWithUIntPtr: (uintptr_t)uintptr;
368 + (instancetype)numberWithFloat: (
float)float_;
376 + (instancetype)numberWithDouble: (
double)double_;
384 - initWithBool: (
bool)bool_;
393 - initWithChar: (
signed char)schar;
402 - initWithShort: (
signed short)sshort;
411 - initWithInt: (
signed int)sint;
420 - initWithLong: (
signed long)slong;
429 - initWithLongLong: (
signed long long)slonglong;
438 - initWithUnsignedChar: (
unsigned char)uchar;
447 - initWithUnsignedShort: (
unsigned short)ushort;
456 - initWithUnsignedInt: (
unsigned int)uint;
465 - initWithUnsignedLong: (
unsigned long)ulong;
474 - initWithUnsignedLongLong: (
unsigned long long)ulonglong;
482 - initWithInt8: (int8_t)int8;
490 - initWithInt16: (int16_t)int16;
498 - initWithInt32: (int32_t)int32;
506 - initWithInt64: (int64_t)int64;
514 - initWithUInt8: (uint8_t)uint8;
522 - initWithUInt16: (uint16_t)uint16;
530 - initWithUInt32: (uint32_t)uint32;
538 - initWithUInt64: (uint64_t)uint64;
546 - initWithSize: (
size_t)size;
554 - initWithSSize: (ssize_t)ssize;
562 - initWithIntMax: (intmax_t)intmax;
571 - initWithUIntMax: (uintmax_t)uintmax;
580 - initWithPtrDiff: (ptrdiff_t)ptrdiff;
588 - initWithIntPtr: (intptr_t)intptr;
597 - initWithUIntPtr: (uintptr_t)uintptr;
605 - initWithFloat: (
float)float_;
613 - initWithDouble: (
double)double_;
634 - (
signed char)charValue;
641 - (
signed short)shortValue;
648 - (
signed int)intValue;
655 - (
signed long)longValue;
662 - (
signed long long)longLongValue;
669 - (
unsigned char)unsignedCharValue;
676 - (
unsigned short)unsignedShortValue;
683 - (
unsigned int)unsignedIntValue;
690 - (
unsigned long)unsignedLongValue;
697 - (
unsigned long long)unsignedLongLongValue;
711 - (int16_t)int16Value;
718 - (int32_t)int32Value;
725 - (int64_t)int64Value;
732 - (uint8_t)uInt8Value;
739 - (uint16_t)uInt16Value;
746 - (uint32_t)uInt32Value;
753 - (uint64_t)uInt64Value;
767 - (ssize_t)sSizeValue;
774 - (intmax_t)intMaxValue;
781 - (uintmax_t)uIntMaxValue;
788 - (ptrdiff_t)ptrDiffValue;
795 - (intptr_t)intPtrValue;
802 - (uintptr_t)uIntPtrValue;
816 - (double)doubleValue;
819 OF_ASSUME_NONNULL_END
821 #ifndef NSINTEGER_DEFINED
823 @compatibility_alias NSNumber
OFNumber;
A protocol for serializing objects.
Definition: OFSerialization.h:30
Definition: OFNumber.h:42
Definition: OFNumber.h:64
Definition: OFNumber.h:58
A protocol for comparing objects.
Definition: OFObject.h:933
Definition: OFNumber.h:106
The root class for all other classes inside ObjFW.
Definition: OFObject.h:364
Definition: OFNumber.h:54
Definition: OFNumber.h:104
Definition: OFNumber.h:52
Definition: OFNumber.h:67
Definition: OFNumber.h:73
Definition: OFNumber.h:40
Definition: OFNumber.h:48
Definition: OFNumber.h:100
A protocol implemented by classes that support encoding to a JSON representation. ...
Definition: OFJSONRepresentation.h:38
Definition: OFNumber.h:91
Definition: OFNumber.h:62
Definition: OFNumber.h:76
A protocol implemented by classes that support encoding to a MessagePack representation.
Definition: OFMessagePackRepresentation.h:30
Provides a way to store a number in an object.
Definition: OFNumber.h:114
Definition: OFNumber.h:44
Definition: OFNumber.h:82
Definition: OFNumber.h:70
Definition: OFNumber.h:85
Definition: OFNumber.h:94
A protocol for the creation of copies.
Definition: OFObject.h:896
Definition: OFNumber.h:88
of_number_type_t
The C type of a number stored in an OFNumber.
Definition: OFNumber.h:38
Definition: OFNumber.h:60
Definition: OFNumber.h:102
Definition: OFNumber.h:50
Definition: OFNumber.h:46
Definition: OFNumber.h:56
Definition: OFNumber.h:97
Definition: OFNumber.h:79