go vet fixup

This commit is contained in:
adman
2026-03-20 18:51:17 +01:00
parent 29baf8da9f
commit fbf9bacd05
9 changed files with 496 additions and 508 deletions
+4 -8
View File
@@ -263,7 +263,7 @@ func SwitchDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s
s1 := VarStmt(tName, tType)
s3 := Assign121(varToSet, Ident(tName))
var caseDecodeValueStmts []ast.Stmt
caseDecodeValueStmts, err = g.VisitDecoder(Ident(tName), fType, name)
caseDecodeValueStmts, err = g.VisitDecoder(Ident(tName), fType, tName)
if err != nil {
return
}
@@ -381,7 +381,7 @@ func BitFieldDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string)
for _, field := range data {
totalSize += field.Size
}
packedTypeProtodef, err := BitSizeToUnsignedProtodefName(totalSize)
packedTypeProtodef, err := BitSizeToProtodef(totalSize, false)
if err != nil {
return
}
@@ -400,11 +400,7 @@ func BitFieldDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string)
lShiftBy := 0
for _, field := range data {
var fieldTypeProtodef string
if field.Singed {
fieldTypeProtodef, err = BitSizeToSignedProtodefName(field.Size)
} else {
fieldTypeProtodef, err = BitSizeToUnsignedProtodefName(field.Size)
}
fieldTypeProtodef, err = BitSizeToProtodef(field.Size, field.Signed)
if err != nil {
return
}
@@ -431,7 +427,7 @@ func BitFieldDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string)
}
s = append(s, Assign121(fieldToSet, getDataExpr))
if field.Singed {
if field.Signed {
s = append(s, If(
GreaterThanOrEqual(
fieldToSet,
+17 -32
View File
@@ -5,6 +5,7 @@ import (
"fmt"
"go/ast"
"github.com/admin-else/strom/proto_generator/protodef"
"github.com/go-viper/mapstructure/v2"
)
@@ -94,32 +95,24 @@ func VisitOptionType(g *Generator, dataRaw any) (e ast.Expr, err error) {
return
}
func BitSizeToSignedProtodefName(totalSize int) (e string, err error) {
if totalSize <= 8 {
e = "i8"
} else if totalSize <= 16 {
e = "i16"
} else if totalSize <= 32 {
e = "i32"
} else if totalSize <= 64 {
e = "i64"
} else {
err = errors.New("bitfield size too large")
}
return
}
func BitSizeToUnsignedProtodefName(totalSize int) (e string, err error) {
if totalSize == 1 {
func BitSizeToProtodef(totalSize int, singed bool) (e string, err error) {
if !singed && totalSize == 1 {
e = "bool"
} else if totalSize <= 8 {
e = "u8"
return
}
if singed {
e = "i"
} else {
e = "u"
}
if totalSize <= 8 {
e += "8"
} else if totalSize <= 16 {
e = "u16"
e += "16"
} else if totalSize <= 32 {
e = "u32"
e += "32"
} else if totalSize <= 64 {
e = "u64"
e += "64"
} else {
err = errors.New("bitfield size too large")
}
@@ -127,11 +120,7 @@ func BitSizeToUnsignedProtodefName(totalSize int) (e string, err error) {
}
func VisitBitFieldType(g *Generator, dataRaw any) (e ast.Expr, err error) {
var data []struct {
Name string
Signed bool
Size int
}
var data protodef.BitField
err = mapstructure.Decode(dataRaw, &data)
if err != nil {
return
@@ -139,11 +128,7 @@ func VisitBitFieldType(g *Generator, dataRaw any) (e ast.Expr, err error) {
ret := NewStruct()
for _, field := range data {
var p string
if field.Signed {
p, err = BitSizeToSignedProtodefName(field.Size)
} else {
p, err = BitSizeToUnsignedProtodefName(field.Size)
}
p, err = BitSizeToProtodef(field.Size, field.Signed)
if err != nil {
return
}
+1 -1
View File
@@ -3,7 +3,7 @@ package protodef
type (
BitFieldEntry struct {
Name string
Singed bool
Signed bool
Size int
}