/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the LICENSE * file in the root directory of this source tree. */ #include "YGStyle.h" #include "Utils.h" // Yoga specific properties, not compatible with flexbox specification bool operator==(const YGStyle& lhs, const YGStyle& rhs) { bool areNonFloatValuesEqual = lhs.direction == rhs.direction && lhs.flexDirection == rhs.flexDirection && lhs.justifyContent == rhs.justifyContent && lhs.alignContent == rhs.alignContent && lhs.alignItems == rhs.alignItems && lhs.alignSelf == rhs.alignSelf && lhs.positionType == rhs.positionType && lhs.flexWrap == rhs.flexWrap && lhs.overflow == rhs.overflow && lhs.display == rhs.display && YGValueEqual(lhs.flexBasis, rhs.flexBasis) && lhs.margin == rhs.margin && lhs.position == rhs.position && lhs.padding == rhs.padding && lhs.border == rhs.border && lhs.dimensions == rhs.dimensions && lhs.minDimensions == rhs.minDimensions && lhs.maxDimensions == rhs.maxDimensions; areNonFloatValuesEqual = areNonFloatValuesEqual && lhs.flex.isUndefined() == rhs.flex.isUndefined(); if (areNonFloatValuesEqual && !lhs.flex.isUndefined() && !rhs.flex.isUndefined()) { areNonFloatValuesEqual = areNonFloatValuesEqual && lhs.flex == rhs.flex; } areNonFloatValuesEqual = areNonFloatValuesEqual && lhs.flexGrow.isUndefined() == rhs.flexGrow.isUndefined(); if (areNonFloatValuesEqual && !lhs.flexGrow.isUndefined()) { areNonFloatValuesEqual = areNonFloatValuesEqual && lhs.flexGrow == rhs.flexGrow; } areNonFloatValuesEqual = areNonFloatValuesEqual && lhs.flexShrink.isUndefined() == rhs.flexShrink.isUndefined(); if (areNonFloatValuesEqual && !rhs.flexShrink.isUndefined()) { areNonFloatValuesEqual = areNonFloatValuesEqual && lhs.flexShrink == rhs.flexShrink; } if (!(lhs.aspectRatio.isUndefined() && rhs.aspectRatio.isUndefined())) { areNonFloatValuesEqual = areNonFloatValuesEqual && lhs.aspectRatio == rhs.aspectRatio; } return areNonFloatValuesEqual; }