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) {
var data []struct {
Name string
Type any
Anon bool
}
var data protodef.Container
err = mapstructure.Decode(dataRaw, &data)
if err != nil {
return
@@ -78,11 +74,7 @@ func BitfieldCompareTo(_ *Generator, parts []string, inExpr ast.Expr, dataRaw an
err = errors.New("expected name part")
return
}
var field struct {
Name string
Singed bool
Size int
}
var field protodef.BitFieldEntry
for _, f := range data {
if f.Name == fieldName {
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) {
var data struct {
Flags []string
Type any
}
var data protodef.BitFlags
err = mapstructure.Decode(dataRaw, &data)
if err != nil {
return
+12 -44
View File
@@ -6,6 +6,7 @@ import (
"slices"
"strconv"
"github.com/admin-else/strom/proto_generator/protodef"
"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) {
var data []struct {
Name string
Type any
Anon bool
}
var data protodef.Container
err = mapstructure.Decode(dataRaw, &data)
if err != nil {
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) {
var data struct {
CountType any
Count string
Type any
}
var data protodef.Array
lName := "l" + CamelCase(name)
err = mapstructure.Decode(dataRaw, &data)
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) {
var data struct {
Type string
}
var data protodef.TypeForward
if err = mapstructure.Decode(dataRaw, &data); err != nil {
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) {
var data struct {
CompareTo string
Fields map[string]any
Default any
}
var data protodef.Switch
err = mapstructure.Decode(dataRaw, &data)
if err != nil {
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) {
var data struct {
Mappings map[string]string
Type any
}
var data protodef.Mapper
err = mapstructure.Decode(dataRaw, &data)
if err != nil {
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) {
var data struct {
Count int
CountType any
}
var data protodef.Buffer
err = mapstructure.Decode(dataRaw, &data)
if err != nil {
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) {
var data []struct {
Name string
Signed bool
Size int
}
var data protodef.BitField
err = mapstructure.Decode(dataRaw, &data)
if err != nil {
return
@@ -423,7 +400,7 @@ func BitFieldDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string)
lShiftBy := 0
for _, field := range data {
var fieldTypeProtodef string
if field.Signed {
if field.Singed {
fieldTypeProtodef, err = BitSizeToSignedProtodefName(field.Size)
} else {
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))
if field.Signed {
if field.Singed {
s = append(s, If(
GreaterThanOrEqual(
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) {
var data struct {
Base struct {
Name string
Type any
}
Otherwise struct {
Name string
Type any
}
}
var data protodef.RegistryEntryHolderSet
err = mapstructure.Decode(dataRaw, &data)
if err != nil {
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) {
var data EntryHolderSet
var data protodef.EntryHolderSet
err = mapstructure.Decode(dataRaw, &data)
if err != nil {
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) {
var data []struct {
Name string
Type any
Anon bool
}
var data protodef.Container
err = mapstructure.Decode(dataRaw, &data)
if err != nil {
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) {
var data struct {
CountType any
Count string
Type any
}
var data protodef.Array
err = mapstructure.Decode(dataRaw, &data)
if err != nil {
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) {
var data struct {
Count int
CountType any
}
var data protodef.Buffer
err = mapstructure.Decode(dataRaw, &data)
if err != nil {
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) {
var data struct {
CompareTo string
Fields map[string]any
Default any
}
var data protodef.Switch
err = mapstructure.Decode(dataRaw, &data)
if err != nil {
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) {
var data struct {
Type string
}
var data protodef.TypeForward
if err = mapstructure.Decode(dataRaw, &data); err != nil {
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) {
var data struct {
Mappings map[string]string
Type any
}
var data protodef.Mapper
err = mapstructure.Decode(dataRaw, &data)
if err != nil {
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) {
var data EntryHolderSet
var data protodef.EntryHolderSet
err = mapstructure.Decode(dataRaw, &data)
otherwiseType, err := g.VisitType(data.Otherwise.Type)
if err != nil {
+62 -2
View File
@@ -1,7 +1,67 @@
package protodef
type BitField []struct {
type (
BitFieldEntry struct {
Name string
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
type EntryHolderSet struct {
BaseName string
Otherwise struct {
Name string
Type any
}
}