type EnumSupport … func NewEnumSupport(toString map[uint]string) EnumSupport { … } func (es EnumSupport) String(e uint) string { … } func (es EnumSupport) UnmarshJSON(b []byte) (uint, error) { … } func (es EnumSupport) MarshJSON(e uint) ([]byte, error) { … }