12345678910111213141516171819202122232425262728293031 |
- package sql_mapping
- import (
- "git.sxidc.com/go-tools/utils/reflectutils"
- "github.com/pkg/errors"
- "reflect"
- )
- type OnParsedFieldTagFunc func(fieldName string, entityFieldElemValue reflect.Value, tag *Tag) error
- func UseTag(e any, onParsedFieldTagFunc OnParsedFieldTagFunc) error {
- if e == nil {
- return nil
- }
- entityValue := reflect.ValueOf(e)
- // 类型校验
- if !reflectutils.IsValueStructOrStructPointer(entityValue) {
- return errors.New("参数不是结构或结构指针")
- }
- entityElemValue := reflectutils.PointerValueElem(entityValue)
- err := parseTag(entityElemValue, onParsedFieldTagFunc)
- if err != nil {
- return err
- }
- return nil
- }
|