Implementation of `operator==` for YGValue

Summary:
@public
It's very useful sometimes for product code to compare `YGValue`s (e.g. in Fabric).

Reviewed By: priteshrnandgaonkar

Differential Revision: D8937594

fbshipit-source-id: b93e1ab4a6419ada6746f233b587e8c9cb32c6d4
This commit is contained in:
Valentin Shergin 2018-07-23 13:24:21 -07:00 committed by Facebook Github Bot
parent fab5fffbb3
commit 6bf9024107
2 changed files with 20 additions and 0 deletions

View File

@ -48,6 +48,19 @@ const YGValue YGValueZero = {0, YGUnitPoint};
const YGValue YGValueUndefined = {YGUndefined, YGUnitUndefined};
const YGValue YGValueAuto = {YGUndefined, YGUnitAuto};
bool operator==(const YGValue& lhs, const YGValue& rhs) {
if ((lhs.unit == YGUnitUndefined && rhs.unit == YGUnitUndefined) ||
(lhs.unit == YGUnitAuto && rhs.unit == YGUnitAuto)) {
return true;
}
return lhs.unit == rhs.unit && lhs.value == rhs.value;
}
bool operator!=(const YGValue& lhs, const YGValue& rhs) {
return !(lhs == rhs);
}
#ifdef ANDROID
#include <android/log.h>
static int YGAndroidLog(

View File

@ -45,6 +45,13 @@ typedef struct YGValue {
extern const YGValue YGValueUndefined;
extern const YGValue YGValueAuto;
#ifdef __cplusplus
extern bool operator==(const YGValue& lhs, const YGValue& rhs);
extern bool operator!=(const YGValue& lhs, const YGValue& rhs);
#endif
typedef struct YGConfig* YGConfigRef;
typedef struct YGNode* YGNodeRef;