github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/internal/errs/silencederror.go (about)

     1  package errs
     2  
     3  import (
     4  	"errors"
     5  )
     6  
     7  type silencedError struct {
     8  	err error
     9  }
    10  
    11  func Silence(err error) *silencedError {
    12  	return &silencedError{err}
    13  }
    14  
    15  func (s *silencedError) Error() string { return "silencedError" }
    16  
    17  func (s *silencedError) Unwrap() error { return s.err }
    18  
    19  func (s *silencedError) IsSilent() bool { return true }
    20  
    21  func IsSilent(err error) bool {
    22  	var silentErr interface {
    23  		IsSilent() bool
    24  	}
    25  	return errors.As(err, &silentErr) && silentErr.IsSilent()
    26  }