namespace EE::UI::LayoutInvalidation

namespace LayoutInvalidation {

// global variables

constexpr LayoutInvalidationFlags Self =   static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::SelfGeometry) |   static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::IntrinsicSize);
constexpr LayoutInvalidationFlags ContainerLayout =    static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::Style) |  static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::SelfGeometry) |   static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::NormalFlowChild) |    static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::IntrinsicSize);
constexpr LayoutInvalidationFlags ParentChildChange =  static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::NormalFlowChild) |    static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::IntrinsicSize);
constexpr LayoutInvalidationFlags TextFormatting =     static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::FormattingContext) |  static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::IntrinsicSize);
constexpr LayoutInvalidationFlags ReplacedContent =    static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::SelfGeometry) |   static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::IntrinsicSize);
constexpr LayoutInvalidationFlags ParentReplacedFormatting =   static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::NormalFlowChild) |    static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::IntrinsicSize) |  static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::FormattingContext);
constexpr LayoutInvalidationFlags OutOfFlow =  static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::OutOfFlowChild) |     static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::SelfGeometry);
constexpr LayoutInvalidationFlags Document =   static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::DocumentExtent) |     static_cast<LayoutInvalidationFlags>(LayoutInvalidationReason::Viewport);

} // namespace LayoutInvalidation