in cmd/cpe2cve/fieldstoskip.go [44:78]
func (fs fieldsToSkip) appendAt(to []string, args ...interface{}) []string {
to = fs.skipFields(to)
fields := map[int]string{}
keys := make([]int, 0, len(args)/2)
pos := -1
for _, arg := range args {
switch arg := arg.(type) {
case int:
pos = arg
if pos >= 0 {
keys = append(keys, pos)
}
case string:
if pos < 0 {
break
}
fields[pos] = arg
pos = -1
default:
panic(fmt.Sprintf("appendAt: unsupported type %T", arg))
}
}
sort.Ints(keys)
for _, at := range keys {
if at > len(to) {
at = len(to)
}
out := make([]string, 0, len(to)+1)
out = append(out, to[:at]...)
out = append(out, fields[at])
out = append(out, to[at:]...)
to = out
}
return to
}