summaryrefslogtreecommitdiff
path: root/sort.go
diff options
context:
space:
mode:
Diffstat (limited to 'sort.go')
-rw-r--r--sort.go75
1 files changed, 42 insertions, 33 deletions
diff --git a/sort.go b/sort.go
index efbb14e..f9763f7 100644
--- a/sort.go
+++ b/sort.go
@@ -35,75 +35,84 @@ func (pb *Files) makeNewSortfile(pf *File) error {
pf.selectAllFunc(wSort)
pf.iterSelect(wSort)
- pf.appendUnique(wFind) // Append() enforce no unique keys
pf.sortByFunc(wSort)
- if argv.Delete {
- pf.deleteWithCopyFunc(wFind)
- } else {
- pf.deleteFunc(wFind)
- }
- pf.findFunc(wFind)
+
+ /*
+ pf.appendUnique(wFind) // Append() enforce no unique keys
+ if argv.Delete {
+ pf.deleteWithCopyFunc(wFind)
+ } else {
+ pf.deleteFunc(wFind)
+ }
+ pf.findFunc(wFind)
+ */
// attempt to add sort functions for pf.Base
pf.processMessage(pf.Bases, wSort, wFind)
- // pf.processMessage(pf.Base, wSort, wFind)
+ pf.processMessage(pf.Base, wSort, wFind)
return nil
}
func (pf *File) processMessage(msg *MsgName, wSort, wFind io.Writer) error {
- log.Printf("Generating functions for %s\n", msg.Name)
+ 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
}
- if err := pf.addSortByMsg(msg, v, wSort, wFind); err != nil {
- return err
+ // 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
+ for _, m := range pf.MsgNames {
+ if m.Name == APPLE {
+ found = m
+ break
+ }
+ }
+ if found == nil {
+ return fmt.Errorf("failed to find struct %s", APPLE)
}
+
+ found.addSortByMsg(FRUIT, APPLES, APPLE, wSort, wFind)
}
return nil
}
-func (pf *File) addSortByMsg(parent *MsgName, find *MsgVar, wSort, wFind io.Writer) error {
- log.Printf("\tLOOK HERE: %s %s\n", find.VarName, find.VarType)
- var found *MsgName
- for _, msg := range pf.MsgNames {
- if msg.Name == find.VarType {
- found = msg
- break
- }
- }
- if found == nil {
- return fmt.Errorf("failed to find struct %s", find.VarType)
- }
- log.Printf("FOUND!: %s %s for %s\n", find.VarName, find.VarType, found.Name)
+func (parent *MsgName) addSortByMsg(FRUIT, APPLES, APPLE string, wSort, wFind io.Writer) error {
+ log.Printf("\tFOUND!: %s %s for %s\n", APPLES, APPLE, FRUIT)
var COLORS []string
- var FRUIT string = parent.Name
- var APPLES string = cases.Title(language.English, cases.NoLower).String(find.VarName)
- var APPLE string = find.VarType
- for _, v := range found.Vars {
+ for _, v := range parent.Vars {
if v.HasSort {
- // log.Printf("\tSort!: %s %s for %s\n", find.VarName, find.VarType, v.VarName)
+ // 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(x %s) SortdBy%s() *%sIter\n", parent.Name, newS, find.VarType)
+ log.Printf("\t(x %s) SortdBy%s() *%sIter\n", parent.Name, newS, APPLE)
}
if v.HasUnique {
newS := cases.Title(language.English, cases.NoLower).String(v.VarName)
var COLOR string = newS
COLORS = append(COLORS, COLOR)
- log.Printf("\t(x %s) AppendUniqueBy%s(%s)\n", parent.Name, newS, find.VarType)
+ log.Printf("\t(x %s) AppendUniqueBy%s(%s)\n", parent.Name, newS, APPLE)
parent.appendUniqueBy(wFind, FRUIT, APPLES, APPLE, COLOR)
if v.VarType == "string" {
log.Printf("\t(x %s) FindBy%s(string) *%s\n", FRUIT, COLOR, APPLE)
parent.findBy(wFind, FRUIT, APPLES, APPLE, COLOR)
- log.Printf("\t(x %s) DeleteBy%s(string) *%s\n", parent.Name, newS, find.VarType)
- parent.deleteBy(wFind, FRUIT, APPLES, APPLE, COLOR)
+ log.Printf("\t(x %s) DeleteBy%s(string) *%s\n", parent.Name, newS, APPLE)
+ if argv.Delete {
+ parent.deleteByWithCopy(wFind, FRUIT, APPLES, APPLE, COLOR)
+ } else {
+ parent.deleteBy(wFind, FRUIT, APPLES, APPLE, COLOR)
+ }
}
}
}
+ parent.insertByColors(wFind, FRUIT, APPLES, APPLE, COLORS)
if len(COLORS) > 0 {
parent.appendUnique(wFind, FRUIT, APPLES, APPLE, COLORS)
}