// Code generated by "stringer -type=CheckableKind checkable.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[CheckableKindInvalid-0]
	_ = x[CheckableResource-82]
	_ = x[CheckableOutputValue-79]
	_ = x[CheckableCheck-67]
}

const (
	_CheckableKind_name_0 = "CheckableKindInvalid"
	_CheckableKind_name_1 = "CheckableCheck"
	_CheckableKind_name_2 = "CheckableOutputValue"
	_CheckableKind_name_3 = "CheckableResource"
)

func (i CheckableKind) String() string {
	switch {
	case i == 0:
		return _CheckableKind_name_0
	case i == 67:
		return _CheckableKind_name_1
	case i == 79:
		return _CheckableKind_name_2
	case i == 82:
		return _CheckableKind_name_3
	default:
		return "CheckableKind(" + strconv.FormatInt(int64(i), 10) + ")"
	}
}
