8#ifndef SkEnumBitMask_DEFINED
9#define SkEnumBitMask_DEFINED
68#define SK_MAKE_BITMASK_OPS(E) \
69 [[maybe_unused]] constexpr SkEnumBitMask<E> operator|(E a, E b) { \
70 return SkEnumBitMask<E>(a) | b; \
72 [[maybe_unused]] constexpr SkEnumBitMask<E> operator&(E a, E b) { \
73 return SkEnumBitMask<E>(a) & b; \
75 [[maybe_unused]] constexpr SkEnumBitMask<E> operator^(E a, E b) { \
76 return SkEnumBitMask<E>(a) ^ b; \
78 [[maybe_unused]] constexpr SkEnumBitMask<E> operator~(E e) { \
79 return ~SkEnumBitMask<E>(e); \
82#define SK_DECL_BITMASK_OPS_FRIENDS(E) \
83 friend constexpr SkEnumBitMask<E> operator|(E, E); \
84 friend constexpr SkEnumBitMask<E> operator&(E, E); \
85 friend constexpr SkEnumBitMask<E> operator^(E, E); \
86 friend constexpr SkEnumBitMask<E> operator~(E);
SK_ALWAYS_INLINE constexpr SkEnumBitMask operator|(SkEnumBitMask m) const
SK_ALWAYS_INLINE constexpr SkEnumBitMask operator~() const
SK_ALWAYS_INLINE SkEnumBitMask & operator&=(SkEnumBitMask m)
SK_ALWAYS_INLINE constexpr int value() const
SK_ALWAYS_INLINE constexpr bool operator!=(SkEnumBitMask m) const
SK_ALWAYS_INLINE SkEnumBitMask & operator|=(SkEnumBitMask m)
SK_ALWAYS_INLINE constexpr SkEnumBitMask(E e)
SK_ALWAYS_INLINE constexpr bool operator==(SkEnumBitMask m) const
SK_ALWAYS_INLINE SkEnumBitMask & operator^=(SkEnumBitMask m)
SK_ALWAYS_INLINE constexpr SkEnumBitMask operator^(SkEnumBitMask m) const
SK_ALWAYS_INLINE constexpr SkEnumBitMask operator&(SkEnumBitMask m) const