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

package dkms

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[Broken-0]
	_ = x[Added-1]
	_ = x[Built-2]
	_ = x[Installed-3]
}

const _PackageStatus_name = "BrokenAddedBuiltInstalled"

var _PackageStatus_index = [...]uint8{0, 6, 11, 16, 25}

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