core/plan/spread.go
core/plan/spread.goBrowse 1970 files
212 tokens
772 bytes
Token encoding: o200k_base
Snapshot 21a254f
← Back to SKILL.md
1package plan2 3type Spreadable interface {4 IsSpread() bool5}6 7type StringWrapper struct {8 Value string9}10 11func (s StringWrapper) IsSpread() bool {12 return s.Value == "..."13}14 15func Spread[T Spreadable](left []T, right []T) []T {16 if left == nil {17 return right18 }19 20 result := make([]T, 0, len(left)+len(right))21 22 for _, val := range left {23 if val.IsSpread() {24 result = append(result, right...)25 } else {26 result = append(result, val)27 }28 }29 30 return result31}32 33func SpreadStrings(left []string, right []string) []string {34 if left == nil {35 return right36 }37 38 result := make([]string, 0, len(left)+len(right))39 40 for _, val := range left {41 if val == "..." {42 result = append(result, right...)43 } else {44 result = append(result, val)45 }46 }47 48 return result49}50