summaryrefslogtreecommitdiff
path: root/generate.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-01-11 10:19:37 -0600
committerJeff Carr <[email protected]>2025-01-11 10:19:37 -0600
commitbb8e2290e0dba48b4e18368be5bd02751aa82b19 (patch)
tree1fa80c0ea81b31f43ad0a8b81a8c6f93ecdef1ae /generate.go
parent12fb2c9f0960b121a45e9e0cc580a4bfa38eae89 (diff)
maybe got it finally
Diffstat (limited to 'generate.go')
-rw-r--r--generate.go51
1 files changed, 32 insertions, 19 deletions
diff --git a/generate.go b/generate.go
index dc07fa8..b22b3f7 100644
--- a/generate.go
+++ b/generate.go
@@ -20,12 +20,14 @@ func (pb *Files) makeNewSortfile(pf *File) error {
header(wSort, pf)
- pf.Base.iterTop(wSort)
- pf.Base.iterNext(wSort)
- pf.selectAllFunc(wSort)
- pf.iterSelect(wSort)
+ // pf.Base.iterTop(wSort)
+ // pf.Base.iterNext(wSort)
+ // pf.selectAllFunc(wSort)
+ // pf.iterSelect(wSort)
- pf.sortByFunc(wSort, pf.Bases, pf.Base)
+ // pf.sortByFunc(wSort, pf.Bases, pf.Base)
+ pf.newGenerateSort(wSort, pf.Bases)
+ pf.newGenerateSort(wSort, pf.Base)
/*
pf.appendUnique(wFind) // Append() enforce no unique keys
@@ -55,23 +57,34 @@ func (pf *File) newGenerateSort(w io.Writer, parent *MsgName) error {
var FRUIT string = parent.Name
var LOCK string = parent.Lockname
- for _, v := range parent.Vars {
- if v.IsRepeated {
- var APPLES string = v.VarName
- var APPLE string = v.VarType
- newIter(w, FRUIT, APPLE, APPLES, LOCK)
- msg := pf.findMsg(APPLE)
- if msg == nil {
- return fmt.Errorf("failed to find struct %s", APPLE)
- }
- for _, v := range msg.Vars {
- if v.HasSort {
- var COLOR string = v.VarName
- newSortBy(w, FRUIT, APPLE, COLOR)
- }
+ var allLen bool
+ for _, v := range parent.Vars {
+ if !v.IsRepeated {
+ continue
+ }
+ var APPLES string = v.VarName
+ var APPLE string = v.VarType
+ if !allLen {
+ // only can run these once for now
+ addAllFunc(w, FRUIT, APPLE, LOCK)
+ addLenFunc(w, FRUIT, APPLES, LOCK)
+ allLen = true
+ }
+ addSelectAll(w, FRUIT, APPLE, APPLES, LOCK)
+ newIter(w, FRUIT, APPLE, APPLES, LOCK)
+ msg := pf.findMsg(APPLE)
+ if msg == nil {
+ return fmt.Errorf("failed to find struct %s", APPLE)
+ }
+ for _, v := range msg.Vars {
+ if !v.HasSort {
+ continue
}
+ var COLOR string = v.VarName
+ newSortBy(w, FRUIT, APPLE, APPLES, COLOR)
}
+
}
return nil
}