@@ -379,27 +379,30 @@ func genQueryDecoderFunc(gctx *genContext, paramType types.Type) (name string, e
379
379
w .L ("out.%s = new(%s)" , field .Name (), fieldType )
380
380
strctRef = "*" + strctRef
381
381
}
382
- w .Import ("fmt" )
383
382
switch fieldType .String () {
384
383
case "time.Duration" :
385
384
gctx .Import ("time" )
385
+ w .Import ("fmt" )
386
386
w .L ("if %s.%s, err = time.ParseDuration(q[len(q)-1]); err != nil {" , strctRef , field .Name ())
387
387
w .L (` return fmt.Errorf("failed to decode query parameter \"%s\" as %s: %%w", err)` , fieldName , fieldType )
388
388
w .L ("}" )
389
389
case "bool" :
390
390
gctx .Import ("strconv" )
391
+ w .Import ("fmt" )
391
392
w .L ("if %s.%s, err = strconv.ParseBool(q[len(q)-1]); err != nil {" , strctRef , field .Name ())
392
393
w .L (` return fmt.Errorf("failed to decode query parameter \"%s\" as %s: %%w", err)` , fieldName , fieldType )
393
394
w .L ("}" )
394
395
case "int" :
395
396
gctx .Import ("strconv" )
397
+ w .Import ("fmt" )
396
398
w .L ("if %s.%s, err = strconv.Atoi(q[len(q)-1]); err != nil {" , strctRef , field .Name ())
397
399
w .L (` return fmt.Errorf("failed to decode query parameter \"%s\" as %s: %%w", err)` , fieldName , fieldType )
398
400
w .L ("}" )
399
401
case "string" :
400
402
w .L ("%s.%s = q[len(q)-1]" , strctRef , field .Name ())
401
403
default :
402
404
if implements (field , textUnmarshalerInterface ()) {
405
+ w .Import ("fmt" )
403
406
w .L ("if err = %s.%s.UnmarshalText([]byte(q[len(q)-1])); err != nil {" , strctRef , field .Name ())
404
407
w .L (` return fmt.Errorf("failed to decode query parameter \"%s\" as %s: %%w", err)` , fieldName , fieldType )
405
408
w .L ("}" )
0 commit comments