summaryrefslogtreecommitdiff
path: root/generateSort.go
diff options
context:
space:
mode:
Diffstat (limited to 'generateSort.go')
-rw-r--r--generateSort.go18
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 {"