You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2023/08/01 19:35:24 UTC
[plc4x] 03/03: fix(plc4go): fix issue with generator
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit aff77887f2b76979a7c47115dff53836bf99f2dd
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue Aug 1 21:35:13 2023 +0200
fix(plc4go): fix issue with generator
---
plc4go/internal/cbus/Subscriber_plc4xgen.go | 2 +-
plc4go/internal/opcua/Subscriber_plc4xgen.go | 2 +-
plc4go/tools/plc4xgenerator/gen.go | 11 +++++++----
3 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/plc4go/internal/cbus/Subscriber_plc4xgen.go b/plc4go/internal/cbus/Subscriber_plc4xgen.go
index d76c87cf19..4db417c08c 100644
--- a/plc4go/internal/cbus/Subscriber_plc4xgen.go
+++ b/plc4go/internal/cbus/Subscriber_plc4xgen.go
@@ -46,7 +46,7 @@ func (d *Subscriber) SerializeWithWriteBuffer(ctx context.Context, writeBuffer u
return err
}
for _name, elem := range d.consumers {
- name := fmt.Sprintf("%v", _name)
+ name := fmt.Sprintf("%v", &_name)
var elem any = elem
if serializable, ok := elem.(utils.Serializable); ok {
diff --git a/plc4go/internal/opcua/Subscriber_plc4xgen.go b/plc4go/internal/opcua/Subscriber_plc4xgen.go
index 48ffad27dd..c96d7ddfa4 100644
--- a/plc4go/internal/opcua/Subscriber_plc4xgen.go
+++ b/plc4go/internal/opcua/Subscriber_plc4xgen.go
@@ -46,7 +46,7 @@ func (d *Subscriber) SerializeWithWriteBuffer(ctx context.Context, writeBuffer u
return err
}
for _name, elem := range d.consumers {
- name := fmt.Sprintf("%v", _name)
+ name := fmt.Sprintf("%v", &_name)
var elem any = elem
if serializable, ok := elem.(utils.Serializable); ok {
diff --git a/plc4go/tools/plc4xgenerator/gen.go b/plc4go/tools/plc4xgenerator/gen.go
index de4f403d89..156215a9ed 100644
--- a/plc4go/tools/plc4xgenerator/gen.go
+++ b/plc4go/tools/plc4xgenerator/gen.go
@@ -350,15 +350,18 @@ func (g *Generator) generate(typeName string) {
g.Printf("if err := writeBuffer.PushContext(%s, utils.WithRenderAsList(true)); err != nil {\n\t\treturn err\n\t}\n", fieldNameUntitled)
// TODO: we use serializable or strings as we don't want to over-complex this
g.Printf("for _name, elem := range d.%s {\n", fieldName)
- if ident, ok := fieldType.Key.(*ast.Ident); !ok || ident.Name != "string" {
- switch ident.Name {
+ switch keyType := fieldType.Key.(type) {
+ case *ast.Ident:
+ switch keyType.Name {
case "uint", "uint8", "uint16", "uint32", "uint64", "int", "int8", "int16", "int32", "int64": // TODO: add other types
g.Printf("\t\tname := fmt.Sprintf(\"%s\", _name)\n", "%v")
+ case "string":
+ g.Printf("\t\tname := _name\n")
default:
g.Printf("\t\tname := fmt.Sprintf(\"%s\", &_name)\n", "%v")
}
- } else {
- g.Printf("\t\tname := _name\n")
+ default:
+ g.Printf("\t\tname := fmt.Sprintf(\"%s\", &_name)\n", "%v")
}
switch eltType := fieldType.Value.(type) {
case *ast.StarExpr, *ast.SelectorExpr: