{{- /*
--------------------------------------------------------------------------------
Template file for use with tools/intrinsic-gen to generate intrinsic_type.cc

See:
* tools/cmd/intrinsic-gen/gen for structures used by this template
* https://golang.org/pkg/text/template/ for documentation on the template syntax
--------------------------------------------------------------------------------
*/ -}}

#include "src/sem/intrinsic_type.h"

namespace tint {
namespace sem {

IntrinsicType ParseIntrinsicType(const std::string& name) {
{{- range .Sem.Functions  }}
  if (name == "{{.Name}}") {
    return IntrinsicType::k{{Title .Name}};
  }
{{- end  }}
  return IntrinsicType::kNone;
}

const char* str(IntrinsicType i) {
  switch (i) {
    case IntrinsicType::kNone:
      return "<none>";
{{- range .Sem.Functions  }}
    case IntrinsicType::k{{Title .Name}}:
      return "{{.Name}}";
{{- end  }}
  }
  return "<unknown>";
}

}  // namespace sem
}  // namespace tint
