func (x ComplexCommented) String() string {
	if str, ok := _ComplexCommentedMap[x]; ok {
		return str
	}
	return fmt.Sprintf("ComplexCommented(%d)", x)
}
String implements the Stringer interface.
package example
import (
	"fmt"
	"strings"
)
const (
	CommentedValue1 Commented = iota
	CommentedValue2
	CommentedValue3
)
const _CommentedName = "value1value2value3"
var _CommentedMap = map[Commented]string{
	0: _CommentedName[0:6],
	1: _CommentedName[6:12],
	2: _CommentedName[12:18],
}
func (x Commented) String() string {
	if str, ok := _CommentedMap[x]; ok {
		return str
	}
	return fmt.Sprintf("Commented(%d)", x)
}
var _CommentedValue = map[string]Commented{
	_CommentedName[0:6]:                    0,
	strings.ToLower(_CommentedName[0:6]):   0,
	_CommentedName[6:12]:                   1,
	strings.ToLower(_CommentedName[6:12]):  1,
	_CommentedName[12:18]:                  2,
	strings.ToLower(_CommentedName[12:18]): 2,
}
func ParseCommented(name string) (Commented, error) {
	if x, ok := _CommentedValue[name]; ok {
		return x, nil
	}
	return Commented(0), fmt.Errorf("%s is not a valid Commented", name)
}
func (x Commented) MarshalText() ([]byte, error) {
	return []byte(x.String()), nil
}
func (x *Commented) UnmarshalText(text []byte) error {
	name := string(text)
	tmp, err := ParseCommented(name)
	if err != nil {
		return err
	}
	*x = tmp
	return nil
}
const (
	_ ComplexCommented = iota
	ComplexCommentedValue1
	ComplexCommentedValue2
	ComplexCommentedValue3
)
const _ComplexCommentedName = "value1value2value3"
var _ComplexCommentedMap = map[ComplexCommented]string{
	1: _ComplexCommentedName[0:6],
	2: _ComplexCommentedName[6:12],
	3: _ComplexCommentedName[12:18],
}