ready to tackle AppendBy()

This commit is contained in:
Jeff Carr 2025-01-12 03:01:24 -06:00
parent 47d2a95bc5
commit c956babe1b
1 changed files with 37 additions and 40 deletions

View File

@ -156,10 +156,39 @@ func (pb *Files) makeNewSortfile(pf *File) error {
} }
} }
} }
log.Printf("\n") log.Printf("\n")
// add All()
for _, s := range pf.ToSort {
PARENT := s.MsgName
CHILD := s.VarType
VARNAME := s.VarName
if PARENT == VARNAME {
funcdef := addAllFunc(wSort, PARENT, CHILD, VARNAME)
log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "done", "", funcdef)
}
/*
// todo: figure out how to do more All() functions correction
var FUNCTYPE string
if PARENT == VARNAME {
FUNCTYPE = PARENT
} else {
FUNCTYPE = VARNAME
}
if s.VarType+"s" == s.VarName {
funcname = "func (x *" + FUNCTYPE + ") All() *[]iter" + s.VarType
} else {
funcname = "func (x *" + FUNCTYPE + ") all" + s.VarName + "() *[]iter" + s.VarType
}
log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname)
*/
}
// add Find() Delete() Append() Insert()
log.Printf(" %-2s %20s %20s %20s %20s\n", "", "PARENT STRUCT", "VAR STRUCT TYPE", "VAR NAME", "LOCK") log.Printf(" %-2s %20s %20s %20s %20s\n", "", "PARENT STRUCT", "VAR STRUCT TYPE", "VAR NAME", "LOCK")
// for i, s := range slices.Backward(pf.ToSort) {
for i, s := range pf.ToSort { for i, s := range pf.ToSort {
var funcname string var funcname string
PARENT := s.MsgName PARENT := s.MsgName
@ -169,65 +198,33 @@ func (pb *Files) makeNewSortfile(pf *File) error {
log.Printf("SORT: %-2d %20s %20s %20s %20s %s\n", i, PARENT, CHILD, VARNAME, LOCK, "") log.Printf("SORT: %-2d %20s %20s %20s %20s %s\n", i, PARENT, CHILD, VARNAME, LOCK, "")
var FUNCTYPE string
if PARENT == VARNAME {
FUNCTYPE = PARENT
} else {
FUNCTYPE = VARNAME
}
if PARENT == VARNAME {
funcname := addAllFunc(wSort, PARENT, CHILD, VARNAME)
log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "done", "", funcname)
}
if s.VarType+"s" == s.VarName {
funcname = "func (x *" + FUNCTYPE + ") All() *[]iter" + s.VarType
} else {
funcname = "func (x *" + FUNCTYPE + ") all" + s.VarName + "() *[]iter" + s.VarType
}
log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname)
msg := pf.findMsg(s.VarType) msg := pf.findMsg(s.VarType)
if msg == nil { if msg == nil {
return fmt.Errorf("failed to find struct %s", s.VarType) return fmt.Errorf("failed to find struct %s", s.VarType)
} }
for _, v := range msg.Vars {
if v.HasSort {
funcname := "func (x *" + FUNCTYPE + ") SortBy" + v.VarName + "(" + v.VarType + ") *[]iter" + s.VarType
log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname)
// funcdef := "func (x *"+FRUIT+") SortBy"+COLOR+"() *"+APPLE+"Iterator"
if v.VarType == "string" {
// funcdef := newSortBy(wSort, FUNCTYPE, CHILD, VARNAME, v.VarName)
// log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcdef)
} else {
funcname := "func (x *" + FUNCTYPE + ") SortBy" + v.VarName + "(" + v.VarType + ") *[]iter" + s.VarType + " # can not do this yet"
log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname)
}
}
}
var ucount int var ucount int
for _, v := range msg.Vars { for _, v := range msg.Vars {
if v.HasUnique { if v.HasUnique {
ucount += 1 ucount += 1
funcname := "func (x *" + FUNCTYPE + ") AppendUnique" + v.VarName + "(" + v.VarType + ")" funcname := "func (x *" + PARENT + ") Append" + VARNAME + "By" + v.VarName + "(" + v.VarType + ")"
log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname) log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname)
} }
} }
for _, v := range msg.Vars { for _, v := range msg.Vars {
if v.HasUnique { if v.HasUnique {
funcname := "func (x *" + FUNCTYPE + ") DeleteBy" + v.VarName + "(" + v.VarType + ") bool" funcname := "func (x *" + PARENT + ") Delete" + VARNAME + "By" + v.VarName + "(" + v.VarType + ") bool"
log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname) log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname)
} }
} }
for _, v := range msg.Vars { for _, v := range msg.Vars {
if v.HasUnique { if v.HasUnique {
funcname = "func (x *" + FUNCTYPE + ") FindBy" + v.VarName + "(a " + v.VarType + ") *" + s.VarType + "(using" + v.VarName + ")" funcname = "func (x *" + PARENT + ") Find" + VARNAME + "By" + v.VarName + "(a " + v.VarType + ") *" + s.VarType + "(using" + v.VarName + ")"
log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname) log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname)
} else { } else {
if v.VarType == "string" { if v.VarType == "string" {
funcname = "func (x *" + FUNCTYPE + ") FindBy" + v.VarName + "(a string) []*" + s.VarType + " ???" funcname = "func (x *" + PARENT + ") Find" + VARNAME + "By" + v.VarName + "(a string) []*" + s.VarType + " ???"
log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname) log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname)
} }
} }
@ -237,12 +234,12 @@ func (pb *Files) makeNewSortfile(pf *File) error {
if !v.HasUnique { if !v.HasUnique {
continue continue
} }
funcname = "func (x *" + FUNCTYPE + ") Insert(a *" + v.VarType + ") (*" + CHILD + ", isNew bool)" funcname = "func (x *" + PARENT + ") Insert(a *" + v.VarType + ") (*" + CHILD + ", isNew bool)"
log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname) log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname)
} }
} }
if ucount > 1 { if ucount > 1 {
funcname = "func (x *" + FUNCTYPE + ") Insert(a *" + CHILD + ") (*" + CHILD + ", isNew bool)" funcname = "func (x *" + PARENT + ") Insert(a *" + CHILD + ") (*" + CHILD + ", isNew bool)"
log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname) log.Printf(" %-2s %20s %20s %20s %s %s\n", "", "", "", "", "", funcname)
} }