Skip to content

Latest commit

 

History

History
48 lines (32 loc) · 1.3 KB

File metadata and controls

48 lines (32 loc) · 1.3 KB

v0.3.2 Release Notes

Bug 修复

validategen: 修复 @oneof_enum 对 string 类型字段和跨包导入的支持

问题描述:

  1. @oneof_enum 注解之前仅支持自定义枚举类型字段,不支持 string 类型字段
  2. 当枚举类型定义在其他包时,生成的验证代码和测试代码缺少必要的 import 语句

修复内容:

  1. 支持 string 类型字段使用 @oneof_enum

    现在可以对 string 类型字段使用 @oneof_enum 注解:

    // validategen:@validate
    type Config struct {
        // validategen:@oneof_enum(Status)
        StatusStr string  // 验证值必须是 Status 枚举的有效字符串
    }
  2. 支持跨包枚举类型

    当引用其他包的枚举类型时,生成的代码会自动添加正确的 import:

    import "myapp/common"
    
    // validategen:@validate
    type Order struct {
        // validategen:@oneof_enum(common.Priority)
        Priority string  // 引用 common 包的 Priority 枚举
    }
  3. 测试代码跨包导入修复

    生成的 *_validate_test.go 文件现在会正确导入跨包类型。

新增示例:

  • cmd/validategen/examples/common/ - 跨包枚举类型示例
    • types.go - 定义 Status 枚举
    • common_enum.go - 生成的枚举辅助方法