diff options
| author | Jeff Carr <[email protected]> | 2025-03-18 15:13:40 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-03-18 15:13:40 -0500 |
| commit | ce1f3200327edf89799dd1452899e01df5c6f593 (patch) | |
| tree | 67b87ee5d588f3451d3c6ac3bda3e0e910f1421c /generateSort.go | |
| parent | 63a3d0dc2439802ca3bf8db92d095733db6b7b7e (diff) | |
add IterBy() functions
Diffstat (limited to 'generateSort.go')
| -rw-r--r-- | generateSort.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/generateSort.go b/generateSort.go index 5ad2dc6..1fe09f7 100644 --- a/generateSort.go +++ b/generateSort.go @@ -116,6 +116,24 @@ func (msg *MsgName) newSortBy(w io.Writer, STRUCT, ITER, SORTNAME, SORTBY, SELEC return funcdef } +func (msg *MsgName) addIterBy(w io.Writer, FRUITS, FRUIT, APPLE, SORTNAME string) string { + fmt.Fprintln(w, "// for range syntax using iter package") + fmt.Fprintln(w, "func (x *"+FRUITS+") IterBy"+APPLE+"() iter.Seq[*"+FRUIT+"] {") + fmt.Fprintln(w, " items := x.selectAll"+FRUITS+"()") + fmt.Fprintln(w, " sort.Sort("+SORTNAME+"(items))") + fmt.Fprintln(w, " log.Println(\"Made Iter.Seq[] with length\", len(items))") + fmt.Fprintln(w, " return func(yield func(*"+FRUIT+") bool) {") + fmt.Fprintln(w, " for _, v := range items {") + fmt.Fprintln(w, " if !yield(v) {") + fmt.Fprintln(w, " return") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, "}") + + return "" +} + func (msg *MsgName) addAllFunc(w io.Writer, FRUIT, APPLE, APPLES string) string { funcdef := "func (x *" + FRUIT + ") All() *" + APPLE + "Iterator {" |
