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

package template

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[attrNone-0]
	_ = x[attrScript-1]
	_ = x[attrScriptType-2]
	_ = x[attrStyle-3]
	_ = x[attrURL-4]
	_ = x[attrSrcset-5]
}

const _attr_name = "attrNoneattrScriptattrScriptTypeattrStyleattrURLattrSrcset"

var _attr_index = [...]uint8{0, 8, 18, 32, 41, 48, 58}

func (i attr) String() string {
	if i >= attr(len(_attr_index)-1) {
		return "attr(" + strconv.FormatInt(int64(i), 10) + ")"
	}
	return _attr_name[_attr_index[i]:_attr_index[i+1]]
}
