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  }