cleanup protodef type locations

This commit is contained in:
adman
2026-03-19 21:57:05 +01:00
parent 57e78478cd
commit 8c6172dcda
6 changed files with 87 additions and 99 deletions
+3 -14
View File
@@ -39,11 +39,7 @@ func (g *Generator) VisitCompareTo(parts []string, inExpr ast.Expr, data any) (e
} }
func ContainerCompareTo(g *Generator, parts []string, inExpr ast.Expr, dataRaw any) (e ast.Expr, cet CaseExprType, err error) { func ContainerCompareTo(g *Generator, parts []string, inExpr ast.Expr, dataRaw any) (e ast.Expr, cet CaseExprType, err error) {
var data []struct { var data protodef.Container
Name string
Type any
Anon bool
}
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
if err != nil { if err != nil {
return return
@@ -78,11 +74,7 @@ func BitfieldCompareTo(_ *Generator, parts []string, inExpr ast.Expr, dataRaw an
err = errors.New("expected name part") err = errors.New("expected name part")
return return
} }
var field struct { var field protodef.BitFieldEntry
Name string
Singed bool
Size int
}
for _, f := range data { for _, f := range data {
if f.Name == fieldName { if f.Name == fieldName {
field = f field = f
@@ -100,10 +92,7 @@ func BitfieldCompareTo(_ *Generator, parts []string, inExpr ast.Expr, dataRaw an
} }
func BitflagsCompareTo(_ *Generator, parts []string, inExpr ast.Expr, dataRaw any) (e ast.Expr, cet CaseExprType, err error) { func BitflagsCompareTo(_ *Generator, parts []string, inExpr ast.Expr, dataRaw any) (e ast.Expr, cet CaseExprType, err error) {
var data struct { var data protodef.BitFlags
Flags []string
Type any
}
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
if err != nil { if err != nil {
return return
+12 -44
View File
@@ -6,6 +6,7 @@ import (
"slices" "slices"
"strconv" "strconv"
"github.com/admin-else/strom/proto_generator/protodef"
"github.com/go-viper/mapstructure/v2" "github.com/go-viper/mapstructure/v2"
) )
@@ -31,11 +32,7 @@ func UUIDDecoder(_ *Generator, varToSet ast.Expr, _ any, _ string) (s []ast.Stmt
} }
func ContainerDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func ContainerDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data []struct { var data protodef.Container
Name string
Type any
Anon bool
}
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
if err != nil { if err != nil {
return return
@@ -108,11 +105,7 @@ func OptionDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s
} }
func ArrayDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func ArrayDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data struct { var data protodef.Array
CountType any
Count string
Type any
}
lName := "l" + CamelCase(name) lName := "l" + CamelCase(name)
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
if err != nil { if err != nil {
@@ -171,9 +164,7 @@ func ArrayDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s
} }
func TypeForwardDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func TypeForwardDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data struct { var data protodef.TypeForward
Type string
}
if err = mapstructure.Decode(dataRaw, &data); err != nil { if err = mapstructure.Decode(dataRaw, &data); err != nil {
return return
} }
@@ -248,11 +239,7 @@ func MultiTypeFix(s string, t *CaseExprType) (e ast.Expr) {
} }
func SwitchDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func SwitchDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data struct { var data protodef.Switch
CompareTo string
Fields map[string]any
Default any
}
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
if err != nil { if err != nil {
return return
@@ -317,10 +304,7 @@ func ToDoDecoder(_ *Generator, _ ast.Expr, _ any, _ string) (s []ast.Stmt, err e
} }
func MapperDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func MapperDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data struct { var data protodef.Mapper
Mappings map[string]string
Type any
}
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
if err != nil { if err != nil {
return return
@@ -353,10 +337,7 @@ func MapperDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s
} }
func BufferDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func BufferDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data struct { var data protodef.Buffer
Count int
CountType any
}
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
if err != nil { if err != nil {
return return
@@ -391,11 +372,7 @@ func BufferDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s
} }
func BitFieldDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func BitFieldDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data []struct { var data protodef.BitField
Name string
Signed bool
Size int
}
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
if err != nil { if err != nil {
return return
@@ -423,7 +400,7 @@ func BitFieldDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string)
lShiftBy := 0 lShiftBy := 0
for _, field := range data { for _, field := range data {
var fieldTypeProtodef string var fieldTypeProtodef string
if field.Signed { if field.Singed {
fieldTypeProtodef, err = BitSizeToSignedProtodefName(field.Size) fieldTypeProtodef, err = BitSizeToSignedProtodefName(field.Size)
} else { } else {
fieldTypeProtodef, err = BitSizeToUnsignedProtodefName(field.Size) fieldTypeProtodef, err = BitSizeToUnsignedProtodefName(field.Size)
@@ -454,7 +431,7 @@ func BitFieldDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string)
} }
s = append(s, Assign121(fieldToSet, getDataExpr)) s = append(s, Assign121(fieldToSet, getDataExpr))
if field.Signed { if field.Singed {
s = append(s, If( s = append(s, If(
GreaterThanOrEqual( GreaterThanOrEqual(
fieldToSet, fieldToSet,
@@ -475,16 +452,7 @@ func BitFieldDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string)
} }
func RegistryEntryHolderSetDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func RegistryEntryHolderSetDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data struct { var data protodef.RegistryEntryHolderSet
Base struct {
Name string
Type any
}
Otherwise struct {
Name string
Type any
}
}
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
if err != nil { if err != nil {
return return
@@ -543,7 +511,7 @@ func RegistryEntryHolderSetDecoder(g *Generator, varToSet ast.Expr, dataRaw any,
} }
func RegistryEntryHolderDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func RegistryEntryHolderDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data EntryHolderSet var data protodef.EntryHolderSet
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
if err != nil { if err != nil {
return return
+7 -27
View File
@@ -23,11 +23,7 @@ func DefaultEncoder(_ *Generator, varToSet ast.Expr, _ any, _ string) (s []ast.S
} }
func ContainerEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func ContainerEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data []struct { var data protodef.Container
Name string
Type any
Anon bool
}
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
if err != nil { if err != nil {
return return
@@ -66,11 +62,7 @@ func SimpleTypeEncoder(_ *Generator, data ast.Expr, _ any, _ string) (s []ast.St
} }
func ArrayEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func ArrayEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data struct { var data protodef.Array
CountType any
Count string
Type any
}
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
if err != nil { if err != nil {
return return
@@ -119,10 +111,7 @@ func OptionEncoder(g *Generator, data ast.Expr, dataRaw any, name string) (s []a
} }
func BufferEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func BufferEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data struct { var data protodef.Buffer
Count int
CountType any
}
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
if err != nil { if err != nil {
return return
@@ -202,11 +191,7 @@ func BitFieldEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string)
} }
func SwitchEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func SwitchEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data struct { var data protodef.Switch
CompareTo string
Fields map[string]any
Default any
}
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
if err != nil { if err != nil {
return return
@@ -268,9 +253,7 @@ func SwitchEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s
} }
func TypeForwardEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func TypeForwardEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data struct { var data protodef.TypeForward
Type string
}
if err = mapstructure.Decode(dataRaw, &data); err != nil { if err = mapstructure.Decode(dataRaw, &data); err != nil {
return return
} }
@@ -278,10 +261,7 @@ func TypeForwardEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name strin
} }
func MapperEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func MapperEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data struct { var data protodef.Mapper
Mappings map[string]string
Type any
}
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
if err != nil { if err != nil {
return return
@@ -328,7 +308,7 @@ func UUIDEncoder(_ *Generator, varToSet ast.Expr, _ any, _ string) (s []ast.Stmt
} }
func RegistryEntryHolderEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { func RegistryEntryHolderEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) {
var data EntryHolderSet var data protodef.EntryHolderSet
err = mapstructure.Decode(dataRaw, &data) err = mapstructure.Decode(dataRaw, &data)
otherwiseType, err := g.VisitType(data.Otherwise.Type) otherwiseType, err := g.VisitType(data.Otherwise.Type)
if err != nil { if err != nil {
+65 -5
View File
@@ -1,7 +1,67 @@
package protodef package protodef
type BitField []struct { type (
Name string BitFieldEntry struct {
Singed bool Name string
Size int Singed bool
} Size int
}
BitField []BitFieldEntry
EntryHolderSet struct {
BaseName string
Otherwise struct {
Name string
Type any
}
}
Switch struct {
CompareTo string
Fields map[string]any
Default any
}
// TypeForward is not a real type, I just didn't implement it all yet, and it's just the underlying type
TypeForward struct {
Type string
}
Buffer struct {
Count int
CountType any
}
Array struct {
CountType any
Count string
Type any
}
Container []struct {
Name string
Type any
Anon bool
}
Mapper struct {
Mappings map[string]string
Type any
}
RegistryEntryHolderSet struct {
Base struct {
Name string
Type any
}
Otherwise struct {
Name string
Type any
}
}
BitFlags struct {
Flags []string
Type any
}
)
-1
View File
@@ -1 +0,0 @@
package main
-8
View File
@@ -1,9 +1 @@
package main package main
type EntryHolderSet struct {
BaseName string
Otherwise struct {
Name string
Type any
}
}