package qos

const unknownStatsTag = "unknown"

var statTags = map[string]struct{}{
	IOTagClient.String():     {},
	IOTagBackground.String(): {},
	IOTagInternal.String():   {},
	IOTagPolicer.String():    {},
	IOTagWritecache.String(): {},
	IOTagCritical.String():   {},
	unknownStatsTag:          {},
}

func createStats() map[string]*stat {
	result := make(map[string]*stat)
	for tag := range statTags {
		result[tag] = &stat{}
	}
	return result
}

func getStat(tag string, stats map[string]*stat) *stat {
	if v, ok := stats[tag]; ok {
		return v
	}
	return stats[unknownStatsTag]
}