refactor: move utility functions to dedicated util package and adjust references

This commit is contained in:
adman
2026-05-06 16:51:45 +02:00
parent 12005df68b
commit 0600315e69
5 changed files with 18 additions and 18 deletions
+9 -9
View File
@@ -198,7 +198,7 @@ func FixPointerReceivers(e ast.Expr) (td ast.Expr, ret ast.Expr) {
func (g *Generator) GenerateTypes(prefix string, types Types) (err error) { func (g *Generator) GenerateTypes(prefix string, types Types) (err error) {
g.CurrentlyGeneratingTypes = types g.CurrentlyGeneratingTypes = types
g.CurrentlyGeneratingTypesPrefix = prefix g.CurrentlyGeneratingTypesPrefix = prefix
for _, k := range OrderedKeys(types.Types) { for _, k := range util.OrderedKeys(types.Types) {
v := types.Types[k] v := types.Types[k]
g.Depth = 0 g.Depth = 0
e, err2 := g.VisitType(v) e, err2 := g.VisitType(v)
@@ -267,11 +267,11 @@ func (g *Generator) GenerateProtocol(protocol Protocol, version string) (err err
} }
// Move common packet to their own areas to make packets more identifiable // Move common packet to their own areas to make packets more identifiable
for _, k := range OrderedKeys(protocol.Types.Types) { for _, k := range util.OrderedKeys(protocol.Types.Types) {
v := protocol.Types.Types[k] v := protocol.Types.Types[k]
if strings.Contains(k, "packet") { if strings.Contains(k, "packet") {
delete(protocol.Types.Types, k) delete(protocol.Types.Types, k)
for _, prefix := range OrderedKeys(prefixTypeMap) { for _, prefix := range util.OrderedKeys(prefixTypeMap) {
types := prefixTypeMap[prefix] types := prefixTypeMap[prefix]
if prefix == "" { if prefix == "" {
continue continue
@@ -281,18 +281,18 @@ func (g *Generator) GenerateProtocol(protocol Protocol, version string) (err err
} }
} }
for _, prefix := range OrderedKeys(prefixTypeMap) { for _, prefix := range util.OrderedKeys(prefixTypeMap) {
types := prefixTypeMap[prefix] types := prefixTypeMap[prefix]
for _, k := range OrderedKeys(types.Types.Types) { for _, k := range util.OrderedKeys(types.Types.Types) {
typeData := types.Types.Types[k] typeData := types.Types.Types[k]
if k != "packet" { if k != "packet" {
continue continue
} }
packetIds := typeData.([]any)[1].([]any)[0].(map[string]any)["type"].([]any)[1].(map[string]any)["mappings"].(map[string]any) packetIds := typeData.([]any)[1].([]any)[0].(map[string]any)["type"].([]any)[1].(map[string]any)["mappings"].(map[string]any)
packetIdsStrings := AssertAndConvertMapValues[string](packetIds) packetIdsStrings := util.AssertAndConvertMapValues[string](packetIds)
packetIdsRev := ReverseMap(packetIdsStrings) packetIdsRev := util.ReverseMap(packetIdsStrings)
v := typeData.([]any)[1].([]any)[1].(map[string]any)["type"].([]any)[1].(map[string]any)["fields"].(map[string]any) v := typeData.([]any)[1].([]any)[1].(map[string]any)["type"].([]any)[1].(map[string]any)["fields"].(map[string]any)
for _, k2 := range OrderedKeys(v) { for _, k2 := range util.OrderedKeys(v) {
v2 := v[k2].(string) v2 := v[k2].(string)
typeName := prefix + util.CamelCase(v2) typeName := prefix + util.CamelCase(v2)
g.packetInfos = append(g.packetInfos, PacketInfo{ g.packetInfos = append(g.packetInfos, PacketInfo{
@@ -309,7 +309,7 @@ func (g *Generator) GenerateProtocol(protocol Protocol, version string) (err err
} }
} }
for _, prefix := range OrderedKeys(prefixTypeMap) { for _, prefix := range util.OrderedKeys(prefixTypeMap) {
types := prefixTypeMap[prefix] types := prefixTypeMap[prefix]
err = g.GenerateTypes(prefix, types.Types) err = g.GenerateTypes(prefix, types.Types)
if err != nil { if err != nil {
+4 -4
View File
@@ -21,7 +21,7 @@ func (g *Generator) ParseCompareTo(compareTo string) (e ast.Expr, cet CaseExprTy
} }
parts = parts[downPrefixCount:] parts = parts[downPrefixCount:]
startingPoint := g.ContainerStack[len(g.ContainerStack)-downPrefixCount-1] startingPoint := g.ContainerStack[len(g.ContainerStack)-downPrefixCount-1]
e, cet, err = g.VisitCompareTo(parts, startingPoint.VarToSet, CombineNamAndData("container", startingPoint.Data)) e, cet, err = g.VisitCompareTo(parts, startingPoint.VarToSet, util.CombineNamAndData("container", startingPoint.Data))
// return ParseCompareToLegacy(compareTo, varToSet) // return ParseCompareToLegacy(compareTo, varToSet)
return return
} }
@@ -46,7 +46,7 @@ func ContainerCompareTo(g *Generator, parts []string, inExpr ast.Expr, dataRaw a
return return
} }
name, parts, ok := PopFront(parts) name, parts, ok := util.PopFront(parts)
if !ok { if !ok {
err = errors.New("expected name part") err = errors.New("expected name part")
return return
@@ -70,7 +70,7 @@ func BitfieldCompareTo(_ *Generator, parts []string, inExpr ast.Expr, dataRaw an
if err != nil { if err != nil {
return return
} }
fieldName, parts, found := PopFront(parts) fieldName, parts, found := util.PopFront(parts)
if !found { if !found {
err = errors.New("expected name part") err = errors.New("expected name part")
return return
@@ -98,7 +98,7 @@ func BitflagsCompareTo(_ *Generator, parts []string, inExpr ast.Expr, dataRaw an
if err != nil { if err != nil {
return return
} }
name, parts, ok := PopFront(parts) name, parts, ok := util.PopFront(parts)
if !ok { if !ok {
err = errors.New("expected name part") err = errors.New("expected name part")
return return
+2 -2
View File
@@ -249,7 +249,7 @@ func SwitchDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s
if err != nil { if err != nil {
return return
} }
for _, fName := range OrderedKeys(data.Fields) { for _, fName := range util.OrderedKeys(data.Fields) {
fType := data.Fields[fName] fType := data.Fields[fName]
e := MultiTypeFix(fName, &cet) e := MultiTypeFix(fName, &cet)
if e == nil { if e == nil {
@@ -324,7 +324,7 @@ func MapperDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s
mName := name + "Map" mName := name + "Map"
expressions := Exprs() expressions := Exprs()
for _, k := range OrderedKeys(data.Mappings) { for _, k := range util.OrderedKeys(data.Mappings) {
v := data.Mappings[k] v := data.Mappings[k]
expressions = append(expressions, KeyValueExpr(NumLitStr(k), StrLit(v))) expressions = append(expressions, KeyValueExpr(NumLitStr(k), StrLit(v)))
} }
+2 -2
View File
@@ -201,7 +201,7 @@ func SwitchEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s
if err != nil { if err != nil {
return return
} }
for _, fName := range OrderedKeys(data.Fields) { for _, fName := range util.OrderedKeys(data.Fields) {
fType := data.Fields[fName] fType := data.Fields[fName]
e := MultiTypeFix(fName, &cet) e := MultiTypeFix(fName, &cet)
if e == nil { if e == nil {
@@ -275,7 +275,7 @@ func MapperEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s
mName := name + "ReverseMap" mName := name + "ReverseMap"
exprs := Exprs() exprs := Exprs()
for _, k := range OrderedKeys(data.Mappings) { for _, k := range util.OrderedKeys(data.Mappings) {
v := data.Mappings[k] v := data.Mappings[k]
exprs = append(exprs, KeyValueExpr(StrLit(v), NumLitStr(k))) exprs = append(exprs, KeyValueExpr(StrLit(v), NumLitStr(k)))
} }
+1 -1
View File
@@ -1,4 +1,4 @@
package main package util
import ( import (
"cmp" "cmp"