diff options
Diffstat (limited to 'binapigen/vppapi/parse_json.go')
-rw-r--r-- | binapigen/vppapi/parse_json.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/binapigen/vppapi/parse_json.go b/binapigen/vppapi/parse_json.go index d14865c..a2ca257 100644 --- a/binapigen/vppapi/parse_json.go +++ b/binapigen/vppapi/parse_json.go @@ -41,6 +41,7 @@ const ( fileMessages = "messages" fileUnions = "unions" fileEnums = "enums" + fileEnumflags = "enumflags" fileAliases = "aliases" fileServices = "services" fileImports = "imports" @@ -129,6 +130,20 @@ func parseJSON(data []byte) (module *File, err error) { module.EnumTypes = append(module.EnumTypes, *enum) } + // parse enumflags types + enumflagsNode := jsonRoot.Map(fileEnumflags) + module.EnumflagTypes = make([]EnumType, 0) + for i := 0; i < enumflagsNode.Len(); i++ { + enumflag, err := parseEnum(enumflagsNode.At(i)) + if err != nil { + return nil, err + } + if exists(enumflag.Name) { + continue + } + module.EnumflagTypes = append(module.EnumflagTypes, *enumflag) + } + // parse alias types aliasesNode := jsonRoot.Map(fileAliases) if aliasesNode.GetType() == jsongo.TypeMap { |