package main import ( "fmt" log "github.com/sirupsen/logrus" ) type JobError struct { ShouldCancelJob bool Msg string Prev error } func (e *JobError) Error() string { if e.Prev != nil { return fmt.Sprintf("%s: %v", e.Msg, e.Prev) } return e.Msg } func jobErrorHandler(chErrorsIn <-chan JobError) error { for err := range chErrorsIn { if err.ShouldCancelJob { return &err } log.Error(err) } return nil }