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/06/19 13:50:57 UTC
[plc4x] 02/05: feat(plc4go/tools): add support for atomic.Pointer to plc4xgenerator
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 915b6b54089bcd157ac9103f460b85dd1e0a241d
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Mon Jun 19 15:28:07 2023 +0200
feat(plc4go/tools): add support for atomic.Pointer to plc4xgenerator
---
plc4go/tools/plc4xgenerator/gen.go | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/plc4go/tools/plc4xgenerator/gen.go b/plc4go/tools/plc4xgenerator/gen.go
index 1e4fe23f60..3644e4ceca 100644
--- a/plc4go/tools/plc4xgenerator/gen.go
+++ b/plc4go/tools/plc4xgenerator/gen.go
@@ -278,6 +278,18 @@ func (g *Generator) generate(typeName string) {
}
}
g.Printf(serializableFieldTemplate, "d."+field.name, fieldNameUntitled)
+ case *ast.IndexExpr:
+ x := fieldType.X
+ if fieldType, isxFieldSelector := x.(*ast.SelectorExpr); isxFieldSelector { // TODO: we need to refactor this so we can reuse...
+ xIdent, xIsIdent := fieldType.X.(*ast.Ident)
+ sel := fieldType.Sel
+ if xIsIdent && xIdent.Name == "atomic" && sel.Name == "Pointer" {
+ g.Printf(serializableFieldTemplate, "(*d."+field.name+".Load())", fieldNameUntitled)
+ continue
+ }
+ }
+ fmt.Printf("no support yet for %#q\n", fieldType)
+ continue
case *ast.Ident:
switch fieldType.Name {
case "byte":