@@ -19,33 +19,25 @@ func New{{$StructName}}(source {{$PackageName}}.{{$InterfaceName}}) *{{$StructNa
19
19
}
20
20
21
21
{{range .Implemented.Methods -}}
22
- {{$ErrorReturn := "nil " -}}
22
+ {{$ErrorReturn := "" -}}
23
23
func (b *{{$StructName}}) {{.Name}}({{range $i, $p := .Params}}{{.Name}} {{.Type}}, {{end}}) ({{range .Results}}{{.Type}}, {{end}}) {
24
+ {{/* Find the error return */}}
25
+ {{- range .Results}}{{- if eq .Type "error" -}}{{$ErrorReturn = .Name}}{{end -}}{{- end -}}
26
+
27
+ {{- if eq $ErrorReturn "" -}}
28
+ return b.source.{{.Name}}({{- range .Params}}{{if eq .Ellipsis true}}{{.Name}}...{{else}}{{.Name}},{{end}}{{end}})
29
+ {{- else -}}
24
30
var (
25
31
{{- range .Results}}
26
32
{{.Name}} {{.Type}}
27
33
{{- end}}
28
34
)
29
- _ = b.breaker.Do(func() error {
30
- {{range $i, $r := .Results -}}
31
- {{- if $i -}}, {{end}}
32
- {{- if eq .Type "error" -}}
33
- {{$ErrorReturn = .Name}}
34
- {{- .Name -}}
35
- {{ else }}
36
- {{- .Name -}}
37
- {{ end }}
38
- {{- end}} = b.source.{{.Name}}(
39
- {{- range .Params -}}
40
- {{- if eq .Ellipsis true -}}
41
- {{- .Name -}}...
42
- {{- else -}}
43
- {{- .Name -}},
44
- {{- end -}}
45
- {{- end -}})
35
+ err := b.breaker.Do(func() error {
36
+ {{range $i, $r := .Results -}}{{- if $i -}},{{end}}{{.Name}}{{end}} = b.source.{{.Name}}({{range .Params}}{{if eq .Ellipsis true}}{{.Name}}...{{else}}{{.Name}},{{end}}{{end}})
46
37
return {{$ErrorReturn}}
47
38
})
48
- return {{range $i, $r := .Results}}{{if $i}}, {{end}}{{.Name}}{{end}}
39
+ return {{range .Results}}{{if eq .Name $ErrorReturn }}err,{{else}}{{.Name}},{{end}}{{end}}
40
+ {{- end -}}
49
41
}
50
42
51
43
{{end -}}
0 commit comments