Skip to content

Commit

Permalink
fix: wrapper option
Browse files Browse the repository at this point in the history
  • Loading branch information
daheige committed Jan 10, 2022
1 parent 962c419 commit bbb41e2
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 16 deletions.
4 changes: 2 additions & 2 deletions chanwrap/chan_wrap_impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ type WrapImpl struct {
}

// New create wrapImpl entity
func New(opts ...wrapper.Options) wrapper.Wrapper {
func New(opts ...wrapper.Option) wrapper.Wrapper {
w := &WrapImpl{}

var option = &wrapper.Option{}
var option = &wrapper.Options{}
for _, o := range opts {
o(option)
}
Expand Down
8 changes: 7 additions & 1 deletion chanwrap/chan_wrap_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,14 @@ import (
"github.com/go-god/wrapper"
)

func mockRecovery() {
if err := recover(); err != nil {
log.Printf("exec recover:%v\n", err)
}
}

func TestWrapper(t *testing.T) {
var wg = New(wrapper.WithBufCap(2))
var wg = New(wrapper.WithBufCap(2), wrapper.WithRecover(mockRecovery))
wg.Wrap(func() {
log.Println("1111")
})
Expand Down
8 changes: 4 additions & 4 deletions factory/wrap_factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"github.com/go-god/wrapper/waitgroup"
)

type constructor func(opts ...wrapper.Options) wrapper.Wrapper
type constructor func(opts ...wrapper.Option) wrapper.Wrapper

const (
// WgWrapper waitGroup wrapper
Expand All @@ -21,15 +21,15 @@ var wrapperMap = map[string]constructor{
}

// New create wrapper interface
func New(name string, opts ...wrapper.Options) wrapper.Wrapper {
func New(name string, opts ...wrapper.Option) wrapper.Wrapper {
if w, ok := wrapperMap[name]; ok {
return w()
return w(opts...)
}

panic("wrapper type not exists")
}

// Register register gdi.Injector
// Register register wrapper
func Register(name string, c constructor) {
_, ok := wrapperMap[name]
if ok {
Expand Down
4 changes: 2 additions & 2 deletions waitgroup/waitgroup_impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ type WrapImpl struct {
}

// New create wrapper entity
func New(opts ...wrapper.Options) wrapper.Wrapper {
func New(opts ...wrapper.Option) wrapper.Wrapper {
w := &WrapImpl{
recoveryFunc: grecover.DefaultRecovery,
}

var option = &wrapper.Option{}
var option = &wrapper.Options{}
for _, o := range opts {
o(option)
}
Expand Down
4 changes: 3 additions & 1 deletion waitgroup/waitgroup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package waitgroup
import (
"log"
"testing"

"github.com/go-god/wrapper"
)

func mockRecovery() {
Expand All @@ -12,7 +14,7 @@ func mockRecovery() {
}

func TestWrapper(t *testing.T) {
var wg = New()
var wg = New(wrapper.WithRecover(mockRecovery))
wg.Wrap(func() {
log.Println("1111")
})
Expand Down
12 changes: 6 additions & 6 deletions wrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,24 @@ type Wrapper interface {
}

// Option wrapper option
type Option struct {
type Options struct {
BufCap int
RecoveryFunc func()
}

// Options option func
type Options func(o *Option)
type Option func(o *Options)

// WithBufCap set buf cap
func WithBufCap(c int) Options {
return func(o *Option) {
func WithBufCap(c int) Option {
return func(o *Options) {
o.BufCap = c
}
}

// WithRecover set recover func
func WithRecover(recoveryFunc func()) Options {
return func(o *Option) {
func WithRecover(recoveryFunc func()) Option {
return func(o *Options) {
o.RecoveryFunc = recoveryFunc
}
}

0 comments on commit bbb41e2

Please sign in to comment.