// Code generated by "bitstringer -type=DataSrcLevel"; DO NOT EDIT

package perffile

import "strconv"

func (i DataSrcLevel) String() string {
	if i == 0 {
		return "NA"
	}
	s := ""
	if i&DataSrcLevelIO != 0 {
		s += "IO|"
	}
	if i&DataSrcLevelL1 != 0 {
		s += "L1|"
	}
	if i&DataSrcLevelL2 != 0 {
		s += "L2|"
	}
	if i&DataSrcLevelL3 != 0 {
		s += "L3|"
	}
	if i&DataSrcLevelLFB != 0 {
		s += "LFB|"
	}
	if i&DataSrcLevelLocalRAM != 0 {
		s += "LocalRAM|"
	}
	if i&DataSrcLevelRemoteCache1 != 0 {
		s += "RemoteCache1|"
	}
	if i&DataSrcLevelRemoteCache2 != 0 {
		s += "RemoteCache2|"
	}
	if i&DataSrcLevelRemoteRAM1 != 0 {
		s += "RemoteRAM1|"
	}
	if i&DataSrcLevelRemoteRAM2 != 0 {
		s += "RemoteRAM2|"
	}
	if i&DataSrcLevelUncached != 0 {
		s += "Uncached|"
	}
	i &^= 2047
	if i == 0 {
		return s[:len(s)-1]
	}
	return s + "0x" + strconv.FormatUint(uint64(i), 16)
}