github.com/lingyao2333/mo-zero@v1.4.1/core/breaker/nopbreaker.go (about) 1 package breaker 2 3 const noOpBreakerName = "nopBreaker" 4 5 type noOpBreaker struct{} 6 7 func newNoOpBreaker() Breaker { 8 return noOpBreaker{} 9 } 10 11 func (b noOpBreaker) Name() string { 12 return noOpBreakerName 13 } 14 15 func (b noOpBreaker) Allow() (Promise, error) { 16 return nopPromise{}, nil 17 } 18 19 func (b noOpBreaker) Do(req func() error) error { 20 return req() 21 } 22 23 func (b noOpBreaker) DoWithAcceptable(req func() error, acceptable Acceptable) error { 24 return req() 25 } 26 27 func (b noOpBreaker) DoWithFallback(req func() error, fallback func(err error) error) error { 28 return req() 29 } 30 31 func (b noOpBreaker) DoWithFallbackAcceptable(req func() error, fallback func(err error) error, 32 acceptable Acceptable) error { 33 return req() 34 } 35 36 type nopPromise struct{} 37 38 func (p nopPromise) Accept() { 39 } 40 41 func (p nopPromise) Reject(reason string) { 42 }