diff options
| author | Jeff Carr <[email protected]> | 2025-01-11 10:19:37 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-01-11 10:19:37 -0600 |
| commit | bb8e2290e0dba48b4e18368be5bd02751aa82b19 (patch) | |
| tree | 1fa80c0ea81b31f43ad0a8b81a8c6f93ecdef1ae /generate.go | |
| parent | 12fb2c9f0960b121a45e9e0cc580a4bfa38eae89 (diff) | |
maybe got it finally
Diffstat (limited to 'generate.go')
| -rw-r--r-- | generate.go | 51 |
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 } |
