32#ifndef ZYCORE_COMPARISON_H
33#define ZYCORE_COMPARISON_H
84#define ZYAN_DECLARE_EQUALITY_COMPARISON(name, type) \
85 ZyanBool name(const type* left, const type* right) \
90 return (*left == *right) ? ZYAN_TRUE : ZYAN_FALSE; \
101#define ZYAN_DECLARE_EQUALITY_COMPARISON_FOR_FIELD(name, type, field_name) \
102 ZyanBool name(const type* left, const type* right) \
105 ZYAN_ASSERT(right); \
107 return (left->field_name == right->field_name) ? ZYAN_TRUE : ZYAN_FALSE; \
120#define ZYAN_DECLARE_COMPARISON(name, type) \
121 ZyanI32 name(const type* left, const type* right) \
124 ZYAN_ASSERT(right); \
126 if (*left < *right) \
130 if (*left > *right) \
145#define ZYAN_DECLARE_COMPARISON_FOR_FIELD(name, type, field_name) \
146 ZyanI32 name(const type* left, const type* right) \
149 ZYAN_ASSERT(right); \
151 if (left->field_name < right->field_name) \
155 if (left->field_name > right->field_name) \
ZYAN_INLINE ZyanBool ZyanEqualsNumeric8(const ZyanU8 *left, const ZyanU8 *right)
Defines a default equality comparison function for 8-bit numeric values.
Definition Comparison.h:203
ZYAN_INLINE ZyanI32 ZyanCompareNumeric8(const ZyanU8 *left, const ZyanU8 *right)
Defines a default comparison function for 8-bit numeric values.
Definition Comparison.h:273
ZyanI32(* ZyanComparison)(const void *left, const void *right)
Defines the ZyanComparison function prototype.
Definition Comparison.h:68
ZYAN_INLINE ZyanBool ZyanEqualsNumeric64(const ZyanU64 *left, const ZyanU64 *right)
Defines a default equality comparison function for 64-bit numeric values.
Definition Comparison.h:236
ZYAN_INLINE ZyanBool ZyanEqualsPointer(const void *const *left, const void *const *right)
Defines a default equality comparison function for pointer values.
Definition Comparison.h:181
ZYAN_INLINE ZyanI32 ZyanComparePointer(const void *const *left, const void *const *right)
Defines a default comparison function for pointer values.
Definition Comparison.h:251
ZYAN_INLINE ZyanI32 ZyanCompareNumeric64(const ZyanU64 *left, const ZyanU64 *right)
Defines a default comparison function for 64-bit numeric values.
Definition Comparison.h:306
ZYAN_INLINE ZyanBool ZyanEqualsNumeric16(const ZyanU16 *left, const ZyanU16 *right)
Defines a default equality comparison function for 16-bit numeric values.
Definition Comparison.h:214
ZYAN_INLINE ZyanI32 ZyanCompareNumeric32(const ZyanU32 *left, const ZyanU32 *right)
Defines a default comparison function for 32-bit numeric values.
Definition Comparison.h:295
ZYAN_INLINE ZyanBool ZyanEqualsNumeric32(const ZyanU32 *left, const ZyanU32 *right)
Defines a default equality comparison function for 32-bit numeric values.
Definition Comparison.h:225
ZYAN_INLINE ZyanBool ZyanEqualsBool(const ZyanBool *left, const ZyanBool *right)
Defines a default equality comparison function for ZyanBool values.
Definition Comparison.h:192
ZYAN_INLINE ZyanI32 ZyanCompareNumeric16(const ZyanU16 *left, const ZyanU16 *right)
Defines a default comparison function for 16-bit numeric values.
Definition Comparison.h:284
#define ZYAN_DECLARE_COMPARISON(name, type)
Declares a generic comparison function for an integral data-type.
Definition Comparison.h:120
ZyanBool(* ZyanEqualityComparison)(const void *left, const void *right)
Defines the ZyanEqualityComparison function prototype.
Definition Comparison.h:55
#define ZYAN_DECLARE_EQUALITY_COMPARISON(name, type)
Declares a generic equality comparison function for an integral data-type.
Definition Comparison.h:84
ZYAN_INLINE ZyanI32 ZyanCompareBool(const ZyanBool *left, const ZyanBool *right)
Defines a default comparison function for ZyanBool values.
Definition Comparison.h:262
General helper and platform detection macros.
#define ZYAN_INLINE
Definition Defines.h:356
Includes and defines some default data types.
ZyanU8 ZyanBool
Defines the ZyanBool data-type.
Definition Types.h:296
int32_t ZyanI32
Definition Types.h:222
uint16_t ZyanU16
Definition Types.h:217
uint64_t ZyanU64
Definition Types.h:219
uint8_t ZyanU8
Definition Types.h:216
uint32_t ZyanU32
Definition Types.h:218