cleanup protodef type locations
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 +0,0 @@
|
||||
package main
|
||||
@@ -1,9 +1 @@
|
||||
package main
|
||||
|
||||
type EntryHolderSet struct {
|
||||
BaseName string
|
||||
Otherwise struct {
|
||||
Name string
|
||||
Type any
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user