30 hi::margins
margins = hi::margins{},
32 minimum(minimum), preferred(preferred), maximum(maximum),
margins(
margins), baseline(baseline)
34 hi_axiom(holds_invariant());
37 [[nodiscard]]
constexpr bool holds_invariant()
noexcept
39 return minimum <= preferred and preferred <= maximum;
44 return widget_constraints{lhs.minimum + rhs, lhs.preferred + rhs, lhs.maximum + rhs, lhs.margins, lhs.baseline};
47 [[nodiscard]]
friend constexpr bool
53 max(lhs.minimum, rhs.minimum),
54 max(lhs.preferred, rhs.preferred),
55 max(lhs.maximum, rhs.maximum),
56 max(lhs.margins, rhs.margins),
57 std::max(lhs.baseline, rhs.baseline)};
62 return widget_constraints{max(lhs.minimum, rhs), max(lhs.preferred, rhs), max(lhs.maximum, rhs), lhs.margins, lhs.baseline};
65 template<
typename... Args>
67 requires(
sizeof...(Args) >= 2)
69 return max(first, max(args...));