diff options
| author | Jeff Carr <[email protected]> | 2025-03-09 09:30:17 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-03-09 09:30:17 -0500 |
| commit | 4f881d17c02a9d239aa8b2320607318df1c0d2fa (patch) | |
| tree | f8303c14d524ea08e250170162c07bb756d21db7 /generateFind.go | |
| parent | 7f03282acaf7a5f7746ee46a52ac5bafa818f876 (diff) | |
add InsertBy() functionsv0.0.64
Diffstat (limited to 'generateFind.go')
| -rw-r--r-- | generateFind.go | 68 |
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 "" } |
