// Code generated by "stringer -type=Status"; DO NOT EDIT.

package checks

import "strconv"

func _() {
	// An "invalid array index" compiler error signifies that the constant values have changed.
	// Re-run the stringer command to generate them again.
	var x [1]struct{}
	_ = x[StatusUnknown-0]
	_ = x[StatusPass-80]
	_ = x[StatusFail-70]
	_ = x[StatusError-69]
}

const (
	_Status_name_0 = "StatusUnknown"
	_Status_name_1 = "StatusErrorStatusFail"
	_Status_name_2 = "StatusPass"
)

var (
	_Status_index_1 = [...]uint8{0, 11, 21}
)

func (i Status) String() string {
	switch {
	case i == 0:
		return _Status_name_0
	case 69 <= i && i <= 70:
		i -= 69
		return _Status_name_1[_Status_index_1[i]:_Status_index_1[i+1]]
	case i == 80:
		return _Status_name_2
	default:
		return "Status(" + strconv.FormatInt(int64(i), 10) + ")"
	}
}
