summaryrefslogtreecommitdiff
path: root/generateFind.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-03-09 09:30:17 -0500
committerJeff Carr <[email protected]>2025-03-09 09:30:17 -0500
commit4f881d17c02a9d239aa8b2320607318df1c0d2fa (patch)
treef8303c14d524ea08e250170162c07bb756d21db7 /generateFind.go
parent7f03282acaf7a5f7746ee46a52ac5bafa818f876 (diff)
add InsertBy() functionsv0.0.64
Diffstat (limited to 'generateFind.go')
-rw-r--r--generateFind.go68
1 files changed, 46 insertions, 22 deletions
diff --git a/generateFind.go b/generateFind.go
index 121ed06..6f799e5 100644
--- a/generateFind.go
+++ b/generateFind.go
@@ -12,31 +12,55 @@ import (
func (msg *MsgName) generateFindBy(w io.Writer, FUNCNAME, STRUCT string, sortvals *Sort, childVar *MsgVar) string {
LOCK := msg.getLockname("x")
- if childVar.VarType != "string" {
- return ""
- }
VARNAME := sortvals.VarName
VARTYPE := sortvals.VarType
COLOR := childVar.VarName
- funcdef := "func (x *" + STRUCT + ") " + FUNCNAME + "(s string) *" + VARTYPE
- fmt.Fprintln(w, "// lookup a", STRUCT, "by the ", COLOR)
- fmt.Fprintln(w, funcdef, "{")
- fmt.Fprintln(w, " if x == nil {")
- fmt.Fprintln(w, " return nil")
- fmt.Fprintln(w, " }")
- fmt.Fprintln(w, "")
- fmt.Fprintln(w, " "+LOCK+".RLock()")
- fmt.Fprintln(w, " defer "+LOCK+".RUnlock()")
- fmt.Fprintln(w, "")
- fmt.Fprintln(w, " for i, _ := range x."+VARNAME+" {")
- fmt.Fprintln(w, " if x."+VARNAME+"[i]."+COLOR+" == s {")
- fmt.Fprintln(w, " return x."+VARNAME+"[i]")
- fmt.Fprintln(w, " }")
- fmt.Fprintln(w, " }")
- fmt.Fprintln(w, " return nil")
- fmt.Fprintln(w, "}")
- fmt.Fprintln(w, "")
+ if childVar.VarType == "string" {
+ funcdef := "func (x *" + STRUCT + ") " + FUNCNAME + "(s string) *" + VARTYPE
+
+ fmt.Fprintln(w, "// lookup a", STRUCT, "by the ", COLOR)
+ fmt.Fprintln(w, funcdef, "{")
+ fmt.Fprintln(w, " if x == nil {")
+ fmt.Fprintln(w, " return nil")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, "")
+ fmt.Fprintln(w, " "+LOCK+".RLock()")
+ fmt.Fprintln(w, " defer "+LOCK+".RUnlock()")
+ fmt.Fprintln(w, "")
+ fmt.Fprintln(w, " for i, _ := range x."+VARNAME+" {")
+ fmt.Fprintln(w, " if x."+VARNAME+"[i]."+COLOR+" == s {")
+ fmt.Fprintln(w, " return x."+VARNAME+"[i]")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, " return nil")
+ fmt.Fprintln(w, "}")
+ fmt.Fprintln(w, "")
+ return funcdef
+ }
+
+ if childVar.VarType == "int64" {
+ funcdef := "func (x *" + STRUCT + ") " + FUNCNAME + "(y int64) *" + VARTYPE
+
+ fmt.Fprintln(w, "// lookup a", STRUCT, "by the ", COLOR)
+ fmt.Fprintln(w, funcdef, "{")
+ fmt.Fprintln(w, " if x == nil {")
+ fmt.Fprintln(w, " return nil")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, "")
+ fmt.Fprintln(w, " "+LOCK+".RLock()")
+ fmt.Fprintln(w, " defer "+LOCK+".RUnlock()")
+ fmt.Fprintln(w, "")
+ fmt.Fprintln(w, " for i, _ := range x."+VARNAME+" {")
+ fmt.Fprintln(w, " if x."+VARNAME+"[i]."+COLOR+" == y {")
+ fmt.Fprintln(w, " return x."+VARNAME+"[i]")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, " return nil")
+ fmt.Fprintln(w, "}")
+ fmt.Fprintln(w, "")
+ return funcdef
+ }
- return funcdef
+ return ""
}