diff --git a/enumer.go b/enumer.go index 11639de..e9d2048 100644 --- a/enumer.go +++ b/enumer.go @@ -15,22 +15,20 @@ func (g *Generator) buildValueToNameMap(runs [][]Value, typeName string, runsThr // At this moment, either "g.declareIndexAndNameVars()" or "g.declareNameVars()" has been called g.Printf("\nvar _%sNameToValue_map = map[string]%s{\n", typeName, typeName) thereAreRuns := len(runs) > 1 && len(runs) <= runsThreshold - n := 0 + var n int var runID string for i, values := range runs { - for _, value := range values { - if thereAreRuns { - runID = "_" + fmt.Sprintf("%d",i) - } else { - runID = "" - } + if thereAreRuns { + runID = "_" + fmt.Sprintf("%d",i) + n = 0 + } else { + runID = "" + } + for _, value := range values { g.Printf("\t_%s_name%s[%d:%d]: %s,\n", typeName, runID, n, n+len(value.name), &value) n += len(value.name) } - if thereAreRuns { - n = 0 - } } g.Printf("}\n\n") g.Printf(stringValueToNameMap, typeName)