• David Reiss's avatar
    [Go] Make enums into real types, add String() (#5235) · 718ddea5
    David Reiss authored
    * [Go] Make enums into real types, add String()
    
    This changes the generated code for enums: instead of type aliases,
    they're now distinct types, allowing for better type-checking. Some
    client code may have to be changed to add casts.
    
    Enum types now have a String() method, so they implement fmt.Stringer.
    
    An EnumValues map is now generated, in addition to the existing
    EnumNames map, to easily map strings to values.
    
    Generated enum files are now gofmt-clean.
    
    Fixes #5207
    
    * use example.ColorGreen explicitly
    
    * use valid enum value in mutation test, add new test for "invalid" enum
    
    * add length check and comment
    718ddea5
EnumInNestedNS.go 673 Bytes
// Code generated by the FlatBuffers compiler. DO NOT EDIT.

package NamespaceB

import "strconv"

type EnumInNestedNS int8

const (
	EnumInNestedNSA EnumInNestedNS = 0
	EnumInNestedNSB EnumInNestedNS = 1
	EnumInNestedNSC EnumInNestedNS = 2
)

var EnumNamesEnumInNestedNS = map[EnumInNestedNS]string{
	EnumInNestedNSA: "A",
	EnumInNestedNSB: "B",
	EnumInNestedNSC: "C",
}

var EnumValuesEnumInNestedNS = map[string]EnumInNestedNS{
	"A": EnumInNestedNSA,
	"B": EnumInNestedNSB,
	"C": EnumInNestedNSC,
}

func (v EnumInNestedNS) String() string {
	if s, ok := EnumNamesEnumInNestedNS[v]; ok {
		return s
	}
	return "EnumInNestedNS(" + strconv.FormatInt(int64(v), 10) + ")"
}