diff options
author | Ondrej Fabry <ofabry@cisco.com> | 2019-09-09 09:56:59 +0200 |
---|---|---|
committer | Ondrej Fabry <ofabry@cisco.com> | 2019-09-09 09:56:59 +0200 |
commit | ccb7b913d54fafdf08b36ac7eb36e462b1ecc9eb (patch) | |
tree | 1cf8f9fa125e577a0887519f0c0c436891e0983a /cmd/binapi-generator/generate.go | |
parent | d06548e4f4492c181f04a5fc9bf994764278e68b (diff) |
Fix compatibility with latest master (20.01-rc0)
- fixed generator for new string types
- update simple client example
- regenerate examples binapi for VPP 19.08
Change-Id: If4fe78c130d95641f35f75cd0262b35b032acaf8
Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Diffstat (limited to 'cmd/binapi-generator/generate.go')
-rw-r--r-- | cmd/binapi-generator/generate.go | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/cmd/binapi-generator/generate.go b/cmd/binapi-generator/generate.go index e386f8d..cb1f470 100644 --- a/cmd/binapi-generator/generate.go +++ b/cmd/binapi-generator/generate.go @@ -568,26 +568,31 @@ func generateField(ctx *context, w io.Writer, fields []Field, i int) { fieldName := strings.TrimPrefix(field.Name, "_") fieldName = camelCaseName(fieldName) + dataType := convertToGoType(ctx, field.Type) + fieldType := dataType + // generate length field for strings - if field.Type == "string" { + if field.Type == "string" && field.Length == 0 { fmt.Fprintf(w, "\tXXX_%sLen uint32 `struc:\"sizeof=%s\"`\n", fieldName, fieldName) } - dataType := convertToGoType(ctx, field.Type) - fieldType := dataType - // check if it is array if field.Length > 0 || field.SizeFrom != "" { if dataType == "uint8" { dataType = "byte" } - fieldType = "[]" + dataType + if dataType == "string" && field.SpecifiedLen { + fieldType = "string" + dataType = "byte" + } else { + fieldType = "[]" + dataType + } } fmt.Fprintf(w, "\t%s %s", fieldName, fieldType) fieldTags := map[string]string{} - if field.Length > 0 { + if field.Length > 0 && field.SpecifiedLen { // fixed size array fieldTags["struc"] = fmt.Sprintf("[%d]%s", field.Length, dataType) } else { |