1 #ifndef _RIVE_PATH_SPACE_HPP_
2 #define _RIVE_PATH_SPACE_HPP_
8 enum class PathSpace : unsigned char
17 inline constexpr PathSpace operator&(PathSpace lhs, PathSpace rhs)
19 return static_cast<PathSpace>(
20 static_cast<std::underlying_type<PathSpace>::type>(lhs) &
21 static_cast<std::underlying_type<PathSpace>::type>(rhs));
24 inline constexpr PathSpace operator^(PathSpace lhs, PathSpace rhs)
26 return static_cast<PathSpace>(
27 static_cast<std::underlying_type<PathSpace>::type>(lhs) ^
28 static_cast<std::underlying_type<PathSpace>::type>(rhs));
31 inline constexpr PathSpace operator|(PathSpace lhs, PathSpace rhs)
33 return static_cast<PathSpace>(
34 static_cast<std::underlying_type<PathSpace>::type>(lhs) |
35 static_cast<std::underlying_type<PathSpace>::type>(rhs));
38 inline constexpr PathSpace operator~(PathSpace rhs)
40 return static_cast<PathSpace>(
41 ~static_cast<std::underlying_type<PathSpace>::type>(rhs));
44 inline PathSpace& operator|=(PathSpace& lhs, PathSpace rhs)
46 lhs = static_cast<PathSpace>(
47 static_cast<std::underlying_type<PathSpace>::type>(lhs) |
48 static_cast<std::underlying_type<PathSpace>::type>(rhs));
53 inline PathSpace& operator&=(PathSpace& lhs, PathSpace rhs)
55 lhs = static_cast<PathSpace>(
56 static_cast<std::underlying_type<PathSpace>::type>(lhs) &
57 static_cast<std::underlying_type<PathSpace>::type>(rhs));
62 inline PathSpace& operator^=(PathSpace& lhs, PathSpace rhs)
64 lhs = static_cast<PathSpace>(
65 static_cast<std::underlying_type<PathSpace>::type>(lhs) ^
66 static_cast<std::underlying_type<PathSpace>::type>(rhs));