aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/binapi-generator/generate.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/binapi-generator/generate.go')
-rw-r--r--cmd/binapi-generator/generate.go26
1 files changed, 20 insertions, 6 deletions
diff --git a/cmd/binapi-generator/generate.go b/cmd/binapi-generator/generate.go
index 64d1071..4ffe88e 100644
--- a/cmd/binapi-generator/generate.go
+++ b/cmd/binapi-generator/generate.go
@@ -20,6 +20,7 @@ import (
"fmt"
"io"
"path/filepath"
+ "sort"
"strings"
"unicode"
)
@@ -41,6 +42,7 @@ type context struct {
includeAPIVersionCrc bool // include constant with API version CRC string
includeComments bool // include parts of original source in comments
+ includeBinapiNames bool // include binary API names as struct tag
moduleName string // name of the source VPP module
packageName string // name of the Go package being generated
@@ -606,19 +608,31 @@ func generateField(ctx *context, w io.Writer, fields []Field, i int) {
}
}
+ if ctx.includeBinapiNames {
+ fieldTags["binapi"] = field.Name
+ }
if field.Meta.Limit > 0 {
- fieldTags["binapi"] = fmt.Sprintf(",limit=%d", field.Meta.Limit)
+ fieldTags["binapi"] = fmt.Sprintf("%s,limit=%d", fieldTags["binapi"], field.Meta.Limit)
}
if len(fieldTags) > 0 {
fmt.Fprintf(w, "\t`")
- var i int
- for n, t := range fieldTags {
- if i > 0 {
+ var keys []string
+ for k := range fieldTags {
+ keys = append(keys, k)
+ }
+ sort.Strings(keys)
+ var n int
+ for _, tt := range keys {
+ t, ok := fieldTags[tt]
+ if !ok {
+ continue
+ }
+ if n > 0 {
fmt.Fprintf(w, " ")
}
- i++
- fmt.Fprintf(w, `%s:"%s"`, n, t)
+ n++
+ fmt.Fprintf(w, `%s:"%s"`, tt, t)
}
fmt.Fprintf(w, "`")
}