From 4c1cccf48cd144414c7233f167087aff770ef67b Mon Sep 17 00:00:00 2001 From: Vladimir Lavor Date: Mon, 1 Feb 2021 14:37:26 +0100 Subject: binapigen: added enumflags type Change-Id: I2f46504bd05862e415dab518fad349d08aedf919 Signed-off-by: Vladimir Lavor --- binapigen/vppapi.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'binapigen/vppapi.go') diff --git a/binapigen/vppapi.go b/binapigen/vppapi.go index 7388ad5..c18d7fb 100644 --- a/binapigen/vppapi.go +++ b/binapigen/vppapi.go @@ -28,6 +28,9 @@ func SortFileObjectsByName(file *vppapi.File) { sort.SliceStable(file.EnumTypes, func(i, j int) bool { return file.EnumTypes[i].Name < file.EnumTypes[j].Name }) + sort.SliceStable(file.EnumflagTypes, func(i, j int) bool { + return file.EnumflagTypes[i].Name < file.EnumflagTypes[j].Name + }) sort.Slice(file.AliasTypes, func(i, j int) bool { return file.AliasTypes[i].Name < file.AliasTypes[j].Name }) @@ -151,6 +154,22 @@ func ListImportedTypes(apifiles []*vppapi.File, file *vppapi.File) []string { } } } + for _, t := range file.EnumflagTypes { + var imported bool + for _, imp := range typeFiles { + for _, at := range imp.EnumflagTypes { + if at.Name != t.Name { + continue + } + importedTypes = append(importedTypes, t.Name) + imported = true + break + } + if imported { + break + } + } + } for _, t := range file.UnionTypes { var imported bool for _, imp := range typeFiles { @@ -186,6 +205,12 @@ func RemoveImportedTypes(apifiles []*vppapi.File, apifile *vppapi.File) { enums = append(enums, enumType) } } + var enumflags []vppapi.EnumType + for _, enumflagType := range apifile.EnumflagTypes { + if !isImportedType(enumflagType.Name) { + enumflags = append(enumflags, enumflagType) + } + } var aliases []vppapi.AliasType for _, aliasType := range apifile.AliasTypes { if !isImportedType(aliasType.Name) { @@ -205,6 +230,7 @@ func RemoveImportedTypes(apifiles []*vppapi.File, apifile *vppapi.File) { } } apifile.EnumTypes = enums + apifile.EnumflagTypes = enumflags apifile.AliasTypes = aliases apifile.StructTypes = structs apifile.UnionTypes = unions -- cgit 1.2.3-korg