Skip to content

Commit 51ea6b8

Browse files
committed
traits can be any type
1 parent 453d552 commit 51ea6b8

File tree

3 files changed

+14
-156
lines changed

3 files changed

+14
-156
lines changed

gen/errorStruct.tmpl

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
type {{ .ErrName }} struct {
33
err error
44
op string
5-
traits map[grr.Trait]string
5+
traits map[grr.Trait]any
66

77
{{- range .Vars }}
88
{{ .Name }} {{ .Type }}
@@ -35,18 +35,18 @@ func (e *{{ .ErrName }}) AsGrr(err grr.Error) (grr.Error, bool) {
3535
return grr.AsGrr(e, err)
3636
}
3737

38-
func (e *{{ .ErrName }}) AddTrait(trait grr.Trait, value string) grr.Error {
38+
func (e *{{ .ErrName }}) AddTrait(trait grr.Trait, value any) grr.Error {
3939
e.traits[trait] = value
4040
return e
4141
}
4242

43-
func (e *{{ .ErrName }}) GetTrait(key grr.Trait) (string, bool) {
43+
func (e *{{ .ErrName }}) GetTrait(key grr.Trait) (any, bool) {
4444
trait, ok := e.traits[key]
4545
return trait, ok
4646
}
4747

48-
func (e *{{ .ErrName }}) GetTraits() map[grr.Trait]string {
49-
traits := make(map[grr.Trait]string)
48+
func (e *{{ .ErrName }}) GetTraits() map[grr.Trait]any {
49+
traits := map[grr.Trait]any{}
5050
for k, v := range e.traits {
5151
traits[k] = v
5252
}

grr/grr.go

+9-9
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ type Error interface {
1111
Unwrap() error
1212
UnwrapAll() error
1313
AsGrr(err Error) (Error, bool)
14-
AddTrait(key Trait, value string) Error
15-
GetTrait(key Trait) (string, bool)
14+
AddTrait(key Trait, value any) Error
15+
GetTrait(key Trait) (any, bool)
1616
AddOp(op string) Error
1717
GetOp() string
1818
AddError(err error) Error
19-
GetTraits() map[Trait]string
19+
GetTraits() map[Trait]any
2020
Trace()
2121
}
2222

@@ -27,11 +27,11 @@ type grrError struct {
2727
err error
2828
msg string
2929
op string
30-
traits map[Trait]string
30+
traits map[Trait]any
3131
}
3232

3333
func Errorf(format string, args ...interface{}) Error {
34-
return &grrError{msg: fmt.Sprintf(format, args...), traits: make(map[Trait]string)}
34+
return &grrError{msg: fmt.Sprintf(format, args...), traits: map[Trait]any{}}
3535
}
3636

3737
func (e *grrError) Error() string {
@@ -50,12 +50,12 @@ func (e *grrError) AsGrr(err Error) (Error, bool) {
5050
return AsGrr(e, err)
5151
}
5252

53-
func (e *grrError) AddTrait(key Trait, value string) Error {
53+
func (e *grrError) AddTrait(key Trait, value any) Error {
5454
e.traits[key] = value
5555
return e
5656
}
5757

58-
func (e *grrError) GetTrait(key Trait) (string, bool) {
58+
func (e *grrError) GetTrait(key Trait) (any, bool) {
5959
trait, ok := e.traits[key]
6060
return trait, ok
6161
}
@@ -74,8 +74,8 @@ func (e *grrError) AddError(err error) Error {
7474
return e
7575
}
7676

77-
func (e *grrError) GetTraits() map[Trait]string {
78-
traits := make(map[Trait]string)
77+
func (e *grrError) GetTraits() map[Trait]any {
78+
traits := make(map[Trait]any)
7979
for k, v := range e.traits {
8080
traits[k] = v
8181
}

utils/grr.gen.go

-142
This file was deleted.

0 commit comments

Comments
 (0)