36template<ParamCategory Category,
typename T>
struct ParamTag {
79 : interface_type_(interface_type), data_type_(data_type)
120 return interface_type_;
127 switch (interface_type_) {
138 switch (interface_type_) {
165 return interface_type_ ==
Output;
#define BLI_assert_unreachable()
#define BLI_STRUCT_EQUALITY_OPERATORS_2(Type, m1, m2)
static DataType ForVector()
Category category() const
static DataType ForSingle()
bool is_input_or_mutable() const
static ParamType ForVectorInput(const CPPType &base_type)
const DataType & data_type() const
bool is_output_or_mutable() const
static ParamType ForSingleOutput(const CPPType &type)
static ParamType ForVectorOutput(const CPPType &base_type)
InterfaceType interface_type() const
ParamType(InterfaceType interface_type, DataType data_type)
static ParamType ForMutableSingle(const CPPType &type)
static ParamType ForMutableVector(const CPPType &base_type)
ParamCategory category() const
static ParamType ForSingleInput(const CPPType &type)
static constexpr ParamCategory category