// Code generated by "stringer -type=CheckType check.go"; DO NOT EDIT.

package addrs

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[InvalidCondition-0]
	_ = x[ResourcePrecondition-1]
	_ = x[ResourcePostcondition-2]
	_ = x[OutputPrecondition-3]
}

const _CheckType_name = "InvalidConditionResourcePreconditionResourcePostconditionOutputPrecondition"

var _CheckType_index = [...]uint8{0, 16, 36, 57, 75}

func (i CheckType) String() string {
	if i < 0 || i >= CheckType(len(_CheckType_index)-1) {
		return "CheckType(" + strconv.FormatInt(int64(i), 10) + ")"
	}
	return _CheckType_name[_CheckType_index[i]:_CheckType_index[i+1]]
}
