<% @enums.each do |enum| -%>
type <%= enum[:name] %> string

const(
<% enum[:values].each do |value| -%>
  <%= enum[:name] %>_<%= enum_constant(value) %> <%= enum[:name] %> = "<%= value %>"
<% end -%>
)

func (e <%= enum[:name] %>) String() string {
	switch e {
  <%- enum[:values].each do |value| -%>
  case <%= enum[:name] %>_<%= enum_constant(value) %>:
    return "<%= value %>"
  <%- end -%>
	default:
		panic("Bad enum value for <%= enum[:name] %>")
	}
}

<% end -%>
