// 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]
	_ = x[attrMetaContent-6]
}

const _attr_name = "attrNoneattrScriptattrScriptTypeattrStyleattrURLattrSrcsetattrMetaContent"

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

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]]
}
