failure.go 790 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package pub
  2. import (
  3. "servitor/mime"
  4. "servitor/style"
  5. "time"
  6. "servitor/ansi"
  7. )
  8. type Failure struct {
  9. message error
  10. }
  11. func NewFailure(err error) *Failure {
  12. if err == nil {
  13. panic("can't create Failure with a nil error")
  14. }
  15. return &Failure{err}
  16. }
  17. func (f *Failure) Name() string {
  18. return style.Problem(f.message)
  19. }
  20. func (f *Failure) Preview(width int) string {
  21. return ansi.Wrap(f.Name(), width)
  22. }
  23. func (f *Failure) String(width int) string {
  24. return f.Preview(width)
  25. }
  26. func (f *Failure) Parents(uint) ([]Tangible, Tangible) {
  27. return []Tangible{}, nil
  28. }
  29. func (f *Failure) Children() Container {
  30. return nil
  31. }
  32. func (f *Failure) Timestamp() time.Time {
  33. return time.Time{}
  34. }
  35. func (f *Failure) SelectLink(input int) (string, *mime.MediaType, bool) {
  36. return "", nil, false
  37. }