| 107 | } |
| 108 | |
| 109 | func getWshMethodDataParamsAndExpr(methodDecl *wshrpc.WshRpcMethodDecl) (string, string) { |
| 110 | dataTypes := methodDecl.GetCommandDataTypes() |
| 111 | if len(dataTypes) == 0 { |
| 112 | return "", "nil" |
| 113 | } |
| 114 | if len(dataTypes) == 1 { |
| 115 | return ", data " + dataTypes[0].String(), "data" |
| 116 | } |
| 117 | var paramBuilder strings.Builder |
| 118 | var argBuilder strings.Builder |
| 119 | for idx, dataType := range dataTypes { |
| 120 | argName := fmt.Sprintf("arg%d", idx+1) |
| 121 | paramBuilder.WriteString(", ") |
| 122 | paramBuilder.WriteString(argName) |
| 123 | paramBuilder.WriteString(" ") |
| 124 | paramBuilder.WriteString(dataType.String()) |
| 125 | if idx > 0 { |
| 126 | argBuilder.WriteString(", ") |
| 127 | } |
| 128 | argBuilder.WriteString(argName) |
| 129 | } |
| 130 | return paramBuilder.String(), fmt.Sprintf("wshrpc.MultiArg{Args: []any{%s}}", argBuilder.String()) |
| 131 | } |