用途:按 Go 模块化架构约定生成类型安全的字符串枚举,适用于需要统一枚举写法与校验逻辑的 Go 项目。
主要能力:生成枚举文件,包含每个取值的字符串常量、用于 O(1) 查找的校验映射、枚举结构体、带校验的构造函数 New<Type>Enum、String() 方法以及私有校验函数 validate<Type>;同时新增错误常量并在 locales/en.json 及其他已有语言文件中补充对应翻译键。
使用方式:先确定枚举名称、取值列表和目标模块;在 internal/modules/<module>/errs/errs.go 添加 ErrInvalid<EnumName> = errors.New("invalid <enum_name>"),并在 locales/en.json 及所有其他语言文件添加翻译;再创建 internal/modules/<module>/enum/<snake_case_enum_name>_enum.go,包名为 enum,导入模块 errs 包,按约定定义常量、校验映射、结构体、构造函数、String 方法与私有校验函数。调用方通过构造函数创建枚举,校验自动完成,例如 contactType, err := enum.NewContactTypeEnum(input);编译期已知取值时可直接使用常量。
命名约定:文件为 <snake_case>_enum.go;常量为 <EnumName><Value>;校验映射为 valid<EnumName>s;结构体为 <EnumName>Enum;构造函数为 New<EnumName>Enum;校验函数为 validate<EnumName>;错误为模块 errs 包中的 ErrInvalid<EnumName>。
限制:每个新增的枚举校验错误都必须在 locales/en.json 和所有其他已有语言文件中添加对应条目;具体安装命令、平台与收费信息暂未提供。