Skip to content

Commit cd7cd4e

Browse files
committed
Cleanup, renames and docs
1 parent 1fc1cd9 commit cd7cd4e

21 files changed

+182
-138
lines changed

core/metadata/param.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ type FuncParam struct {
1313
}
1414

1515
func (v FuncParam) Reduce(ctx ReductionContext) (definitions.FuncParam, error) {
16-
typeMeta, err := v.Type.Resolve(ctx)
16+
typeMeta, err := v.Type.Reduce(ctx)
1717
if err != nil {
1818
return definitions.FuncParam{}, err
1919
}

core/metadata/retval.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ type FuncReturnValue struct {
1313
}
1414

1515
func (v FuncReturnValue) Reduce(ctx ReductionContext) (definitions.FuncReturnValue, error) {
16-
typeMeta, err := v.Type.Resolve(ctx)
16+
typeMeta, err := v.Type.Reduce(ctx)
1717
if err != nil {
1818
return definitions.FuncReturnValue{}, err
1919
}

core/metadata/sym.node.go

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,26 @@ import (
88
"github.com/gopher-fleece/gleece/gast"
99
)
1010

11+
// A symbol's general properties
12+
//
13+
// This struct serves as the HIR's backbone and the basis for nearly all symbols; They all have a name, an associated AST node/s, a kind and so forth.
1114
type SymNodeMeta struct {
12-
Name string
13-
Node ast.Node
14-
SymbolKind common.SymKind
15-
PkgPath string
15+
// The symbol's name.
16+
// May be empty for anonymous fields like return types.
17+
Name string
18+
// The AST node associated with this symbol. Common examples are Fields, Structs, Funcs and so forth.
19+
Node ast.Node
20+
SymbolKind common.SymKind
21+
// The package path in which this symbol resides
22+
PkgPath string
23+
// Any Gleece annotations decorating this symbol
1624
Annotations *annotations.AnnotationHolder
1725
// The node's resolved range in the file.
18-
// Note this information may or may not be available
19-
Range common.ResolvedRange
26+
Range common.ResolvedRange
27+
28+
// The FileVersion for the file in which this symbol is located.
29+
//
30+
// Currently, this field is only partially used (though fully populated).
31+
// Its purpose is mostly to allow tracking file changes to perform graph prunes and incremental rebuilds.
2032
FVersion *gast.FileVersion
2133
}

core/metadata/type.param.go

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,23 @@
11
package metadata
22

3-
type TypeParamMeta struct {
4-
Name string
3+
// Represents a generic parameter declaration
4+
// e.g.,
5+
//
6+
// TValue
7+
//
8+
// in
9+
//
10+
// SomeStruct[TValue]
11+
type TypeParamDeclMeta struct {
12+
// The parameter's name, as determined by the symbol key, e.g.,
13+
// "typeparam:TValue#0"
14+
Name string
15+
16+
// The parameter's index at the declaration,
17+
// Example - In
18+
//
19+
// SomeStruct[TA, TB]
20+
//
21+
// TA has index 0 and TB has index 1
522
Index int
623
}

core/metadata/type.usage.go

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,21 @@ import (
1010
"github.com/gopher-fleece/gleece/graphs"
1111
)
1212

13+
// Represents a type usage site's metadata.
14+
//
15+
// Example:
16+
// The type usage for:
17+
//
18+
// m := map[string]int
19+
//
20+
// is
21+
//
22+
// map[string]int
23+
//
24+
// Metadata includes the usage's location in code, how it's imported and any modifiers like pointers/slices.
25+
//
26+
// This structure is part of the HIR in that it's linked to the source AST but also also serves as a high level abstraction that can be reduced
27+
// to a flatter, simpler IR that's used by the downstream generators to emit routing and schema code.
1328
type TypeUsageMeta struct {
1429
SymNodeMeta
1530
Import common.ImportType
@@ -18,7 +33,12 @@ type TypeUsageMeta struct {
1833
Root TypeRef
1934
}
2035

21-
func (t TypeUsageMeta) Resolve(ctx ReductionContext) (definitions.TypeMetadata, error) {
36+
// Reduce returns the IR for the type usage.
37+
// This IR is a simpler and flatter TypeMetadata that can be used by downstream generators to emit the final code.
38+
func (t TypeUsageMeta) Reduce(ctx ReductionContext) (definitions.TypeMetadata, error) {
39+
// First, we need to get the cache key for this usage. This allows us to better understand
40+
// what we're looking at and pull off related info from the graph.
41+
// Not an ideal situation but good enough for now.
2242
symKey, err := t.Root.CacheLookupKey(t.FVersion)
2343
if err != nil {
2444
return definitions.TypeMetadata{}, fmt.Errorf(
@@ -28,6 +48,8 @@ func (t TypeUsageMeta) Resolve(ctx ReductionContext) (definitions.TypeMetadata,
2848
)
2949
}
3050

51+
// The Symbol Key is the easiest way to tell whether something is a 'universe' or 'builtin' type.
52+
// Universe are a special case as they never have PkgPath, imports, annotations etc.
3153
if symKey.IsUniverse {
3254
return definitions.TypeMetadata{
3355
Name: t.Root.SimpleTypeString(),
@@ -52,16 +74,19 @@ func (t TypeUsageMeta) Resolve(ctx ReductionContext) (definitions.TypeMetadata,
5274
}, nil
5375
}
5476

77+
// IsContext returns a boolean indicating whether this usage is of Go's context.Context.
78+
// Context is a special object and has specific treatment at both visitation and validation layers.
5579
func (t TypeUsageMeta) IsContext() bool {
5680
return t.Name == "Context" && t.PkgPath == "context"
5781
}
5882

83+
// IsIterable returns a boolean indicating whether this usage is of a slice or an array
5984
func (t TypeUsageMeta) IsIterable() bool {
6085
return t.Root.Kind() == TypeRefKindSlice || t.Root.Kind() == TypeRefKindArray
6186
}
6287

63-
// getAliasMeta attempts to retrieve Alias metadata for the given type.
64-
// Alias metadata is relevant for enums and true aliases. For other kinds, it'll remain empty.
88+
// getAliasMeta attempts to retrieve alias metadata for the given type.
89+
// Returns a populated AliasMetadata, if the type is an enum or alias, otherwise returns an empty AliasMetadata
6590
func getAliasMeta(
6691
ctx ReductionContext,
6792
typeSymKey graphs.SymbolKey,

core/validators/receiver.validator.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ func (v ReceiverValidator) validateParams(receiver *metadata.ReceiverMeta) ([]di
9393

9494
if passedIn == nil {
9595
// If we couldn't process the passedIn portion, no reason in continuing.
96-
// An error or error diagnostic will have been added, at this point.
96+
// An error or error diagnostic will have been added, at this point
97+
// or later on by the annotation link validator.
9798
continue
9899
}
99100

generator/routes/template.helpers.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,14 @@ func splitSliceBracket(input string) (brackets string, name string) {
3232
}
3333

3434
func registerHandlebarsHelpers() {
35-
raymond.RegisterHelper("SlicePrefix", func(arg string) string {
35+
// Given a string like '[][][]something' returns '[][][]'
36+
raymond.RegisterHelper("GetArrayPrefixes", func(arg string) string {
3637
brackets, _ := splitSliceBracket(arg)
3738
return brackets
3839
})
3940

40-
raymond.RegisterHelper("SliceSlice", func(arg string) string {
41+
// Given a string like '[][][]something' returns 'something'
42+
raymond.RegisterHelper("StripArrayPrefixes", func(arg string) string {
4143
_, name := splitSliceBracket(arg)
4244
return name
4345
})

generator/templates/chi/partials/request.args.parsing.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
{{/equal}}
99

1010
{{#equal PassedIn "Query"}}
11-
var {{ToLowerCamel Name}}RawPtr *{{SlicePrefix TypeMeta.Name}}{{#if TypeMeta.PkgPath}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{/if}}{{SliceSlice TypeMeta.Name}} = nil
11+
var {{ToLowerCamel Name}}RawPtr *{{GetArrayPrefixes TypeMeta.Name}}{{#if TypeMeta.PkgPath}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{/if}}{{StripArrayPrefixes TypeMeta.Name}} = nil
1212

1313
{{ToLowerCamel Name}}Raw{{#if (IsArray TypeMeta.Name)}}Array{{/if}} := req.URL.Query(){{#if (IsArray TypeMeta.Name)}}["{{{NameInSchema}}}"]{{else}}.Get("{{{NameInSchema}}}"){{/if}}
1414
is{{Name}}Exists := req.URL.Query().Has("{{{NameInSchema}}}")
@@ -43,7 +43,7 @@
4343
{{/equal}}
4444

4545
{{#equal PassedIn "Body"}}
46-
var {{ToLowerCamel Name}}RawPtr *{{SlicePrefix TypeMeta.Name}}{{#if TypeMeta.PkgPath}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{/if}}{{SliceSlice TypeMeta.Name}} = nil
46+
var {{ToLowerCamel Name}}RawPtr *{{GetArrayPrefixes TypeMeta.Name}}{{#if TypeMeta.PkgPath}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{/if}}{{StripArrayPrefixes TypeMeta.Name}} = nil
4747
conversionErr = bindAndValidateBody(req, "{{{ResponseContentType}}}", "{{Validator}}",&{{ToLowerCamel Name}}RawPtr)
4848
if conversionErr != nil {
4949
{{> JsonBodyValidationErrorResponse }}

generator/templates/chi/partials/request.switch.param.type.hbs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
if is{{Name}}Exists {
22

33
{{#if (IsArray TypeMeta.Name)}}
4-
{{ToLowerCamel Name}} := make({{SlicePrefix TypeMeta.Name}}{{#ifEqual TypeMeta.SymbolKind "Builtin"}}{{else}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{/ifEqual}}{{SliceSlice TypeMeta.Name}}, 0, len({{ToLowerCamel Name}}RawArray))
4+
{{ToLowerCamel Name}} := make({{GetArrayPrefixes TypeMeta.Name}}{{#ifEqual TypeMeta.SymbolKind "Builtin"}}{{else}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{/ifEqual}}{{StripArrayPrefixes TypeMeta.Name}}, 0, len({{ToLowerCamel Name}}RawArray))
55
for _, {{ToLowerCamel Name}}Raw := range {{ToLowerCamel Name}}RawArray {
66
{{/if}}
77

8-
{{#if (OrEqual (SliceSlice TypeMeta.Name) "string" (SliceSlice TypeMeta.AliasMetadata.AliasType) "string")}}
8+
{{#if (OrEqual (StripArrayPrefixes TypeMeta.Name) "string" (StripArrayPrefixes TypeMeta.AliasMetadata.AliasType) "string")}}
99
{{ToLowerCamel Name}}{{#if (IsArray TypeMeta.Name)}}Item{{/if}} := {{ToLowerCamel Name}}Raw
1010
{{/if}}
1111

12-
{{#if (OrEqual (SliceSlice TypeMeta.Name) "int" (SliceSlice TypeMeta.AliasMetadata.AliasType) "int")}}
12+
{{#if (OrEqual (StripArrayPrefixes TypeMeta.Name) "int" (StripArrayPrefixes TypeMeta.AliasMetadata.AliasType) "int")}}
1313
{{ToLowerCamel Name}}Uint64, conversionErr := strconv.Atoi({{ToLowerCamel Name}}Raw)
1414
if conversionErr != nil {
1515
{{> ParamsValidationErrorResponse }}
1616
}
1717
{{ToLowerCamel Name}}{{#if (IsArray TypeMeta.Name)}}Item{{/if}} := int({{ToLowerCamel Name}}Uint64)
1818
{{/if}}
1919

20-
{{#if (OrEqual (SliceSlice TypeMeta.Name) "int8" (SliceSlice TypeMeta.AliasMetadata.AliasType) "int8")}}
20+
{{#if (OrEqual (StripArrayPrefixes TypeMeta.Name) "int8" (StripArrayPrefixes TypeMeta.AliasMetadata.AliasType) "int8")}}
2121
{{ToLowerCamel Name}}Uint64, conversionErr := strconv.ParseInt({{ToLowerCamel Name}}Raw, 10, 8)
2222
if conversionErr != nil {
2323
{{> ParamsValidationErrorResponse }}
@@ -26,7 +26,7 @@ if is{{Name}}Exists {
2626

2727
{{/if}}
2828

29-
{{#if (OrEqual (SliceSlice TypeMeta.Name) "int16" (SliceSlice TypeMeta.AliasMetadata.AliasType) "int16")}}
29+
{{#if (OrEqual (StripArrayPrefixes TypeMeta.Name) "int16" (StripArrayPrefixes TypeMeta.AliasMetadata.AliasType) "int16")}}
3030
{{ToLowerCamel Name}}Uint64, conversionErr := strconv.ParseInt({{ToLowerCamel Name}}Raw, 10, 16)
3131
if conversionErr != nil {
3232
{{> ParamsValidationErrorResponse }}
@@ -35,7 +35,7 @@ if is{{Name}}Exists {
3535

3636
{{/if}}
3737

38-
{{#if (OrEqual (SliceSlice TypeMeta.Name) "int32" (SliceSlice TypeMeta.AliasMetadata.AliasType) "int32")}}
38+
{{#if (OrEqual (StripArrayPrefixes TypeMeta.Name) "int32" (StripArrayPrefixes TypeMeta.AliasMetadata.AliasType) "int32")}}
3939
{{ToLowerCamel Name}}Uint64, conversionErr := strconv.ParseInt({{ToLowerCamel Name}}Raw, 10, 32)
4040
if conversionErr != nil {
4141
{{> ParamsValidationErrorResponse }}
@@ -44,7 +44,7 @@ if is{{Name}}Exists {
4444

4545
{{/if}}
4646

47-
{{#if (OrEqual (SliceSlice TypeMeta.Name) "int64" (SliceSlice TypeMeta.AliasMetadata.AliasType) "int64")}}
47+
{{#if (OrEqual (StripArrayPrefixes TypeMeta.Name) "int64" (StripArrayPrefixes TypeMeta.AliasMetadata.AliasType) "int64")}}
4848
{{ToLowerCamel Name}}Uint64, conversionErr := strconv.ParseInt({{ToLowerCamel Name}}Raw, 10, 64)
4949
if conversionErr != nil {
5050
{{> ParamsValidationErrorResponse }}
@@ -53,7 +53,7 @@ if is{{Name}}Exists {
5353

5454
{{/if}}
5555

56-
{{#if (OrEqual (SliceSlice TypeMeta.Name) "uint" (SliceSlice TypeMeta.AliasMetadata.AliasType) "uint")}}
56+
{{#if (OrEqual (StripArrayPrefixes TypeMeta.Name) "uint" (StripArrayPrefixes TypeMeta.AliasMetadata.AliasType) "uint")}}
5757
{{ToLowerCamel Name}}Uint64, conversionErr := strconv.ParseUint({{ToLowerCamel Name}}Raw, 10, 32)
5858
if conversionErr != nil {
5959
{{> ParamsValidationErrorResponse }}
@@ -62,7 +62,7 @@ if is{{Name}}Exists {
6262

6363
{{/if}}
6464

65-
{{#if (OrEqual (SliceSlice TypeMeta.Name) "uint8" (SliceSlice TypeMeta.AliasMetadata.AliasType) "uint8")}}
65+
{{#if (OrEqual (StripArrayPrefixes TypeMeta.Name) "uint8" (StripArrayPrefixes TypeMeta.AliasMetadata.AliasType) "uint8")}}
6666
{{ToLowerCamel Name}}Uint64, conversionErr := strconv.ParseUint({{ToLowerCamel Name}}Raw, 10, 8)
6767
if conversionErr != nil {
6868
{{> ParamsValidationErrorResponse }}
@@ -71,7 +71,7 @@ if is{{Name}}Exists {
7171

7272
{{/if}}
7373

74-
{{#if (OrEqual (SliceSlice TypeMeta.Name) "uint16" (SliceSlice TypeMeta.AliasMetadata.AliasType) "uint16")}}
74+
{{#if (OrEqual (StripArrayPrefixes TypeMeta.Name) "uint16" (StripArrayPrefixes TypeMeta.AliasMetadata.AliasType) "uint16")}}
7575
{{ToLowerCamel Name}}Uint64, conversionErr := strconv.ParseUint({{ToLowerCamel Name}}Raw, 10, 16)
7676
if conversionErr != nil {
7777
{{> ParamsValidationErrorResponse }}
@@ -80,7 +80,7 @@ if is{{Name}}Exists {
8080

8181
{{/if}}
8282

83-
{{#if (OrEqual (SliceSlice TypeMeta.Name) "uint32" (SliceSlice TypeMeta.AliasMetadata.AliasType) "uint32")}}
83+
{{#if (OrEqual (StripArrayPrefixes TypeMeta.Name) "uint32" (StripArrayPrefixes TypeMeta.AliasMetadata.AliasType) "uint32")}}
8484
{{ToLowerCamel Name}}Uint64, conversionErr := strconv.ParseUint({{ToLowerCamel Name}}Raw, 10, 32)
8585
if conversionErr != nil {
8686
{{> ParamsValidationErrorResponse }}
@@ -89,7 +89,7 @@ if is{{Name}}Exists {
8989

9090
{{/if}}
9191

92-
{{#if (OrEqual (SliceSlice TypeMeta.Name) "uint64" (SliceSlice TypeMeta.AliasMetadata.AliasType) "uint64")}}
92+
{{#if (OrEqual (StripArrayPrefixes TypeMeta.Name) "uint64" (StripArrayPrefixes TypeMeta.AliasMetadata.AliasType) "uint64")}}
9393
{{ToLowerCamel Name}}Uint64, conversionErr := strconv.ParseUint({{ToLowerCamel Name}}Raw, 10, 64)
9494
if conversionErr != nil {
9595
{{> ParamsValidationErrorResponse }}
@@ -98,7 +98,7 @@ if is{{Name}}Exists {
9898

9999
{{/if}}
100100

101-
{{#if (OrEqual (SliceSlice TypeMeta.Name) "bool" (SliceSlice TypeMeta.AliasMetadata.AliasType) "bool")}}
101+
{{#if (OrEqual (StripArrayPrefixes TypeMeta.Name) "bool" (StripArrayPrefixes TypeMeta.AliasMetadata.AliasType) "bool")}}
102102
{{ToLowerCamel Name}}Bool, conversionErr := strconv.ParseBool({{ToLowerCamel Name}}Raw)
103103
if conversionErr != nil {
104104
{{> ParamsValidationErrorResponse }}
@@ -107,7 +107,7 @@ if is{{Name}}Exists {
107107

108108
{{/if}}
109109

110-
{{#if (OrEqual (SliceSlice TypeMeta.Name) "float32" (SliceSlice TypeMeta.AliasMetadata.AliasType) "float32")}}
110+
{{#if (OrEqual (StripArrayPrefixes TypeMeta.Name) "float32" (StripArrayPrefixes TypeMeta.AliasMetadata.AliasType) "float32")}}
111111
{{ToLowerCamel Name}}Float64, conversionErr := strconv.ParseFloat({{ToLowerCamel Name}}Raw, 32)
112112
if conversionErr != nil {
113113
{{> ParamsValidationErrorResponse }}
@@ -116,7 +116,7 @@ if is{{Name}}Exists {
116116

117117
{{/if}}
118118

119-
{{#if (OrEqual (SliceSlice TypeMeta.Name) "float64" (SliceSlice TypeMeta.AliasMetadata.AliasType) "float64")}}
119+
{{#if (OrEqual (StripArrayPrefixes TypeMeta.Name) "float64" (StripArrayPrefixes TypeMeta.AliasMetadata.AliasType) "float64")}}
120120
{{ToLowerCamel Name}}Float64, conversionErr := strconv.ParseFloat({{ToLowerCamel Name}}Raw, 64)
121121
if conversionErr != nil {
122122
{{> ParamsValidationErrorResponse }}
@@ -132,7 +132,7 @@ if is{{Name}}Exists {
132132
{{#if (IsArray TypeMeta.Name)}}
133133
break
134134
{{else}}
135-
{{ToLowerCamel Name}}Var := Param{{{UniqueImportSerial}}}{{{Name}}}.{{SliceSlice TypeMeta.Name}}({{ToLowerCamel Name}})
135+
{{ToLowerCamel Name}}Var := Param{{{UniqueImportSerial}}}{{{Name}}}.{{StripArrayPrefixes TypeMeta.Name}}({{ToLowerCamel Name}})
136136
{{ToLowerCamel Name}}RawPtr = &{{ToLowerCamel Name}}Var
137137
{{/if}}
138138
default:
@@ -143,7 +143,7 @@ if is{{Name}}Exists {
143143
{{/ifEqual}}
144144

145145
{{#if (IsArray TypeMeta.Name)}}
146-
{{ToLowerCamel Name}} = append({{ToLowerCamel Name}}, {{#if TypeMeta.PkgPath}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{/if}}{{SliceSlice TypeMeta.Name}}({{ToLowerCamel Name}}Item))
146+
{{ToLowerCamel Name}} = append({{ToLowerCamel Name}}, {{#if TypeMeta.PkgPath}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{/if}}{{StripArrayPrefixes TypeMeta.Name}}({{ToLowerCamel Name}}Item))
147147
}
148148
{{ToLowerCamel Name}}RawPtr = &{{ToLowerCamel Name}}
149149
{{/if}}
@@ -154,13 +154,13 @@ if is{{Name}}Exists {
154154
{{!--The ValidateTopLevelOnlyEnum section alredy put the nessesary vars --}}
155155
{{else}}
156156
{{!-- Enum without validation --}}
157-
{{ToLowerCamel Name}}Var := {{SlicePrefix TypeMeta.Name}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{SliceSlice TypeMeta.Name}}({{ToLowerCamel Name}})
157+
{{ToLowerCamel Name}}Var := {{GetArrayPrefixes TypeMeta.Name}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{StripArrayPrefixes TypeMeta.Name}}({{ToLowerCamel Name}})
158158
{{ToLowerCamel Name}}RawPtr = &{{ToLowerCamel Name}}Var
159159
{{/if}}
160160
{{else}}
161161
{{!-- Case of Alias --}}
162162
{{#ifEqual TypeMeta.SymbolKind "Alias"}}
163-
{{ToLowerCamel Name}}Var := {{SlicePrefix TypeMeta.Name}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{SliceSlice TypeMeta.Name}}({{ToLowerCamel Name}})
163+
{{ToLowerCamel Name}}Var := {{GetArrayPrefixes TypeMeta.Name}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{StripArrayPrefixes TypeMeta.Name}}({{ToLowerCamel Name}})
164164
{{ToLowerCamel Name}}RawPtr = &{{ToLowerCamel Name}}Var
165165
{{else}}
166166
{{!-- Default case for primitive types --}}

generator/templates/echo/partials/request.args.parsing.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
{{/equal}}
99

1010
{{#equal PassedIn "Query"}}
11-
var {{ToLowerCamel Name}}RawPtr *{{SlicePrefix TypeMeta.Name}}{{#if TypeMeta.PkgPath}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{/if}}{{SliceSlice TypeMeta.Name}} = nil
11+
var {{ToLowerCamel Name}}RawPtr *{{GetArrayPrefixes TypeMeta.Name}}{{#if TypeMeta.PkgPath}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{/if}}{{StripArrayPrefixes TypeMeta.Name}} = nil
1212
{{ToLowerCamel Name}}Raw{{#if (IsArray TypeMeta.Name)}}Array{{/if}} := {{#if (IsArray TypeMeta.Name)}}echoCtx.QueryParams()["{{{NameInSchema}}}"]{{else}}echoCtx.QueryParam("{{{NameInSchema}}}"){{/if}}
1313
is{{Name}}Exists := echoCtx.Request().URL.Query().Has("{{{NameInSchema}}}")
1414
{{> RequestSwitchParamType}}
@@ -42,7 +42,7 @@
4242
{{/equal}}
4343

4444
{{#equal PassedIn "Body"}}
45-
var {{ToLowerCamel Name}}RawPtr *{{SlicePrefix TypeMeta.Name}}{{#if TypeMeta.PkgPath}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{/if}}{{SliceSlice TypeMeta.Name}} = nil
45+
var {{ToLowerCamel Name}}RawPtr *{{GetArrayPrefixes TypeMeta.Name}}{{#if TypeMeta.PkgPath}}Param{{{UniqueImportSerial}}}{{{Name}}}.{{/if}}{{StripArrayPrefixes TypeMeta.Name}} = nil
4646
conversionErr = bindAndValidateBody(echoCtx, "{{{ResponseContentType}}}", "{{Validator}}",&{{ToLowerCamel Name}}RawPtr)
4747
if conversionErr != nil {
4848
{{> JsonBodyValidationErrorResponse }}

0 commit comments

Comments
 (0)