feat: tag parsing

This commit is contained in:
2025-02-13 19:21:14 +07:00
parent 5380bd109a
commit a1df30a318
7 changed files with 51 additions and 17 deletions

8
entities/field.go Normal file
View File

@@ -0,0 +1,8 @@
package entities
type Field struct {
Name string
Type string
Medatada []Medatada
}

31
entities/metadata.go Normal file
View File

@@ -0,0 +1,31 @@
package entities
import "strings"
type Medatada struct {
Name string
Values []string
}
func NewMetadata(tag string) *Medatada {
tag = strings.TrimSpace(tag)
tagName := ""
var values []string
if strings.Contains(tag, "=") {
tagName = tag[:strings.Index(tag, "=")]
if tag[strings.Index(tag, "=") + 1] == '[' {
values = append(values, strings.Split(tag[strings.Index(tag, "=") + 2:len(tag)-1], ";")...)
for i := range values {
values[i] = strings.TrimSpace(values[i])
}
} else {
values = append(values, strings.TrimSpace(tag[strings.Index(tag, "=") + 1:]))
}
} else {
tagName = tag
}
return &Medatada{
Name: strings.TrimSpace(strings.ToLower(tagName)),
Values: values,
}
}