diff options
| author | Jeff Carr <[email protected]> | 2025-01-11 04:03:41 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-01-11 04:03:41 -0600 |
| commit | 1f9e4a682d3acf36aa7ee1279f1f9cc928bcd5fd (patch) | |
| tree | eac1d0677459b6cc55fc4eb292c6545d42315cbc /sort.go | |
| parent | d8464bf21ffada0be45116e7a6c4573bcadbce1b (diff) | |
rename files
Diffstat (limited to 'sort.go')
| -rw-r--r-- | sort.go | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/sort.go b/sort.go deleted file mode 100644 index 90e7f5a..0000000 --- a/sort.go +++ /dev/null @@ -1,166 +0,0 @@ -package main - -import ( - "fmt" - "io" - "os" - - "go.wit.com/log" - "golang.org/x/text/cases" - "golang.org/x/text/language" -) - -// this file is named poorly. It has more than Sort() - -func (pb *Files) makeNewSortfile(pf *File) error { - wSort, _ := os.OpenFile(pf.Filebase+".sort.pb.go", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) - defer wSort.Close() - wFind, _ := os.OpenFile(pf.Filebase+".find.pb.go", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) - defer wFind.Close() - - header(wSort, pf) - - pf.Base.iterTop(wSort) - pf.Base.iterNext(wSort) - pf.selectAllFunc(wSort) - pf.iterSelect(wSort) - - pf.sortByFunc(wSort) - - /* - pf.appendUnique(wFind) // Append() enforce no unique keys - if argv.Delete { - pf.deleteWithCopyFunc(wFind) - } else { - pf.deleteFunc(wFind) - } - pf.findFunc(wFind) - */ - - header(wFind, pf) - pf.syncLock(wFind) - pf.specialBases(wFind) - - // attempt to add sort functions for pf.Base - if err := pf.processMessage(pf.Bases, wSort, wFind); err != nil { - return err - } - if err := pf.processMessage(pf.Base, wSort, wFind); err != nil { - return err - } - return nil -} - -func (pf *File) specialBases(wFind io.Writer) { - var FRUIT string = cases.Title(language.English, cases.NoLower).String(pf.Bases.Name) - var APPLES string = cases.Title(language.English, cases.NoLower).String(pf.Bases.Name) - var APPLE string = cases.Title(language.English, cases.NoLower).String(pf.Base.Name) - - pf.Bases.simpleAppend(wFind, FRUIT, APPLES, APPLE) - -} - -// to simplify being able to read the code, FRUIT, APPLES and APPLE are used -// FRUIT == the string name of the message in the protobuf file -// APPLE == the type of the repeated variable -// APPLES == the variable name of the repeated struct -func (pf *File) processMessage(msg *MsgName, wSort, wFind io.Writer) error { - var FRUIT string = cases.Title(language.English, cases.NoLower).String(msg.Name) - - log.Printf("Generating functions for %s\n", FRUIT) - - for _, v := range msg.Vars { - if !v.IsRepeated { - log.Printf("\tSKIP %s %s\n", v.VarName, v.VarType) - continue - } - log.Printf("\tFOUND REPEATED %s %s\n", v.VarName, v.VarType) - // use easier to read variable names APPLE and APPLES in the code - var APPLE string = v.VarType - var APPLES string = cases.Title(language.English, cases.NoLower).String(v.VarName) - - // try and find the message struct for APPLE - var found *MsgName - if pf.Base.Name == APPLE { - found = pf.Base - } - for _, m := range pf.MsgNames { - if m.Name == APPLE { - found = m - break - } - } - if found == nil { - return fmt.Errorf("failed to find struct %s", APPLE) - } - - log.Printf("FOUND: %s %s for %s\n", APPLES, APPLE, FRUIT) - - found.addAppendByMsg(wFind, FRUIT, APPLES, APPLE) - found.addDeleteByMsg(wFind, FRUIT, APPLES, APPLE) - found.addInsertByMsg(wFind, FRUIT, APPLES, APPLE) // new idea - - found.addSortByMsg(wSort, FRUIT, APPLES, APPLE) - } - return nil -} - -func (parent *MsgName) addDeleteByMsg(w io.Writer, FRUIT, APPLES, APPLE string) { - log.Printf("\tDELETE: %s %s for %s\n", APPLES, APPLE, FRUIT) - var COLORS []string - for _, v := range parent.Vars { - if !v.HasUnique { - continue - } - var COLOR string = cases.Title(language.English, cases.NoLower).String(v.VarName) - COLORS = append(COLORS, COLOR) - - log.Printf("\t\t(x %s) DeleteBy%s(string) *%s\n", FRUIT, COLOR, APPLE) - if argv.Delete { - parent.deleteByWithCopy(w, FRUIT, APPLES, APPLE, COLOR) - } else { - parent.deleteBy(w, FRUIT, APPLES, APPLE, COLOR) - } - } -} - -func (parent *MsgName) addInsertByMsg(w io.Writer, FRUIT, APPLES, APPLE string) { - log.Printf("\tINSERT: %s %s for %s\n", APPLES, APPLE, FRUIT) - for _, v := range parent.Vars { - if v.HasUnique { - var COLOR string = cases.Title(language.English, cases.NoLower).String(v.VarName) - log.Printf("\t\t(x %s) InsertBy%s(string) *%s\n", FRUIT, COLOR, APPLE) - parent.insertByColor(w, FRUIT, APPLES, APPLE, COLOR) - } - } -} - -func (parent *MsgName) addAppendByMsg(w io.Writer, FRUIT, APPLES, APPLE string) { - log.Printf("\tAPPEND!: %s %s for %s\n", APPLES, APPLE, FRUIT) - var COLORS []string - - for _, v := range parent.Vars { - if v.HasUnique { - var COLOR string = cases.Title(language.English, cases.NoLower).String(v.VarName) - COLORS = append(COLORS, COLOR) - - log.Printf("\t\t(x %s) AppendUniqueBy%s(%s)\n", FRUIT, COLOR, APPLE) - parent.appendUniqueBy(w, FRUIT, APPLES, APPLE, COLOR) - } - } - if len(COLORS) > 0 { - parent.appendUnique(w, FRUIT, APPLES, APPLE, COLORS) - } -} - -func (parent *MsgName) addSortByMsg(w io.Writer, FRUIT, APPLES, APPLE string) { - log.Printf("\tSORT!: %s %s for %s\n", APPLES, APPLE, FRUIT) - - for _, v := range parent.Vars { - if v.HasSort { - // log.Printf("\tSort!: %s %s for %s\n", APPLES, APPLE, v.VarName) - newS := cases.Title(language.English, cases.NoLower).String(v.VarName) - log.Printf("\t\t(x %s) SortdBy%s() *%sIter\n", FRUIT, newS, APPLE) - } - } -} |
