func()

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
}