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) {
|
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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -1,7 +1,67 @@
|
|||||||
package protodef
|
package protodef
|
||||||
|
|
||||||
type BitField []struct {
|
type (
|
||||||
|
BitFieldEntry struct {
|
||||||
Name string
|
Name string
|
||||||
Singed bool
|
Singed bool
|
||||||
Size int
|
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
|
package main
|
||||||
|
|
||||||
type EntryHolderSet struct {
|
|
||||||
BaseName string
|
|
||||||
Otherwise struct {
|
|
||||||
Name string
|
|
||||||
Type any
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user