From 8c6172dcdaf67842a74e22a4c5d6b329dc6c6eaf Mon Sep 17 00:00:00 2001 From: adman Date: Thu, 19 Mar 2026 21:57:05 +0100 Subject: [PATCH] cleanup protodef type locations --- proto_generator/native_compare_to.go | 17 ++----- proto_generator/native_decoder.go | 56 +++++----------------- proto_generator/native_encoder.go | 34 +++----------- proto_generator/protodef/types.go | 70 ++++++++++++++++++++++++++-- proto_generator/protodef_data.go | 1 - proto_generator/protodef_types.go | 8 ---- 6 files changed, 87 insertions(+), 99 deletions(-) delete mode 100644 proto_generator/protodef_data.go diff --git a/proto_generator/native_compare_to.go b/proto_generator/native_compare_to.go index c4d7528..8fd5555 100644 --- a/proto_generator/native_compare_to.go +++ b/proto_generator/native_compare_to.go @@ -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 diff --git a/proto_generator/native_decoder.go b/proto_generator/native_decoder.go index 20430c2..e066058 100644 --- a/proto_generator/native_decoder.go +++ b/proto_generator/native_decoder.go @@ -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 diff --git a/proto_generator/native_encoder.go b/proto_generator/native_encoder.go index 656991f..fdf4bdc 100644 --- a/proto_generator/native_encoder.go +++ b/proto_generator/native_encoder.go @@ -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 { diff --git a/proto_generator/protodef/types.go b/proto_generator/protodef/types.go index 068208f..ccf40da 100644 --- a/proto_generator/protodef/types.go +++ b/proto_generator/protodef/types.go @@ -1,7 +1,67 @@ package protodef -type BitField []struct { - Name string - Singed bool - Size int -} +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 + } +) diff --git a/proto_generator/protodef_data.go b/proto_generator/protodef_data.go deleted file mode 100644 index 06ab7d0..0000000 --- a/proto_generator/protodef_data.go +++ /dev/null @@ -1 +0,0 @@ -package main diff --git a/proto_generator/protodef_types.go b/proto_generator/protodef_types.go index ade2fb5..06ab7d0 100644 --- a/proto_generator/protodef_types.go +++ b/proto_generator/protodef_types.go @@ -1,9 +1 @@ package main - -type EntryHolderSet struct { - BaseName string - Otherwise struct { - Name string - Type any - } -}