refactor: move utility functions to dedicated util package and adjust references
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,4 +1,4 @@
|
|||||||
package main
|
package util
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"cmp"
|
"cmp"
|
||||||
Reference in New Issue
Block a user