package rule import ( "reflect" ) type Field struct { FieldName string ColumnName string Type string } func DefaultUsage(e any) ([]Field, error) { fields := make([]Field, 0) err := UseTag(e, defaultCallback(&fields)) if err != nil { return nil, err } return fields, nil } func defaultCallback(fields *[]Field) OnParsedFieldTagFunc { return func(fieldName string, entityFieldElemValue reflect.Value, tag *Tag) error { field := Field{ FieldName: fieldName, ColumnName: tag.ColumnName, Type: tag.Type, } *fields = append(*fields, field) return nil } }