/* * 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. * */ #pragma once #include "YGFloatOptional.h" #include "Yoga-internal.h" struct YGLayout { std::array position; std::array dimensions; std::array margin; std::array border; std::array padding; YGDirection direction; uint32_t computedFlexBasisGeneration; YGFloatOptional computedFlexBasis; bool hadOverflow; // Instead of recomputing the entire layout every single time, we // cache some information to break early when nothing changed uint32_t generationCount; YGDirection lastOwnerDirection; uint32_t nextCachedMeasurementsIndex; std::array cachedMeasurements; std::array measuredDimensions; YGCachedMeasurement cachedLayout; bool didUseLegacyFlag; bool doesLegacyStretchFlagAffectsLayout; YGLayout(); bool operator==(YGLayout layout) const; bool operator!=(YGLayout layout) const { return !(*this == layout); } };