diff options
| author | Jeff Carr <[email protected]> | 2025-10-09 23:06:44 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-10-09 23:06:44 -0500 |
| commit | 21730b70fe54fde434a403f1e1fef0e362132c67 (patch) | |
| tree | 59df7694cab5d376f084c50086eccd111067f6f0 /generateAppend.go | |
| parent | aae4ec9990ec21036afc5107004d04603bb8f9af (diff) | |
working on Clone()
Diffstat (limited to 'generateAppend.go')
| -rw-r--r-- | generateAppend.go | 48 |
1 files changed, 46 insertions, 2 deletions
diff --git a/generateAppend.go b/generateAppend.go index 8aee819..4c2dda6 100644 --- a/generateAppend.go +++ b/generateAppend.go @@ -63,7 +63,7 @@ func (msg *MsgName) simpleAppendBy(w io.Writer, STRUCT, FUNCNAME, STRUCTVAR, VAR func (msg *MsgName) simpleClone(w io.Writer, FRUIT, APPLES, APPLE string) string { LOCK := msg.getLockname("x") - funcdef := "func (x *" + FRUIT + ") Append(y *" + APPLE + ") *" + APPLE + funcdef := "func (x *" + FRUIT + ") Clone(y *" + APPLE + ") *" + APPLE // log.Printf("\t\t(x %s) CLONE(%s)\n", FRUIT, APPLE) // append -- no check at all @@ -85,7 +85,7 @@ func (msg *MsgName) simpleClone(w io.Writer, FRUIT, APPLES, APPLE string) string // Unique Append. rejects Append() if value is already defined // compares the field 'COLOR' in the STRUCT with VARNAME // that's not the right description above, but whatever, you get the idea -func (msg *MsgName) addCloneBy(w io.Writer, STRUCT, FUNCNAME, STRUCTVAR, VARNAME, VARTYPE string) string { +func (msg *MsgName) simpleCloneBy(w io.Writer, STRUCT, FUNCNAME, STRUCTVAR, VARNAME, VARTYPE string) string { LOCK := msg.getLockname("x") funcdef := "func (x *" + STRUCT + ") " + FUNCNAME + "(y *" + VARTYPE + ") bool" @@ -107,3 +107,47 @@ func (msg *MsgName) addCloneBy(w io.Writer, STRUCT, FUNCNAME, STRUCTVAR, VARNAME return funcdef } + +/* FIX THSE and call them Import() ? +func (msg *MsgName) appendUnique(w io.Writer, FRUIT, APPLES, APPLE string, COLORS []string) { + LOCK := msg.getLockname("x") + + fmt.Fprintln(w, "// enforces "+APPLE+" is unique in "+FRUIT+"."+APPLES) + fmt.Fprintln(w, "func (x *"+FRUIT+") AppendUnique(newP *"+APPLE+") bool {") + fmt.Fprintln(w, " "+LOCK+".Lock()") + fmt.Fprintln(w, " defer "+LOCK+".Unlock()") + fmt.Fprintln(w, "") + fmt.Fprintln(w, " for _, p := range x."+APPLES+" {") + for _, COLOR := range COLORS { + fmt.Fprintln(w, " if p."+COLOR+" == newP."+COLOR+" {") + fmt.Fprintln(w, " return false") + fmt.Fprintln(w, " }") + } + fmt.Fprintln(w, " }") + fmt.Fprintln(w, "") + fmt.Fprintln(w, " x."+APPLES+" = append(x."+APPLES+", newP)") + fmt.Fprintln(w, " return true") + fmt.Fprintln(w, "}") + fmt.Fprintln(w, "") +} + +func (msg *MsgName) appendUniqueCOLOR(w io.Writer, FRUIT, APPLES, APPLE, COLOR string) { + LOCK := msg.getLockname("x") + + fmt.Fprintln(w, "// enforces "+APPLE+"."+COLOR+" is unique in "+FRUIT+"."+APPLES) + fmt.Fprintln(w, "func (x *"+FRUIT+") AppendUnique"+COLOR+"(newP *"+APPLE+") bool {") + fmt.Fprintln(w, " "+LOCK+".Lock()") + fmt.Fprintln(w, " defer "+LOCK+".Unlock()") + fmt.Fprintln(w, "") + fmt.Fprintln(w, " for _, p := range x."+APPLES+" {") + fmt.Fprintln(w, " if p."+COLOR+" == newP."+COLOR+" {") + fmt.Fprintln(w, " return false") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, "") + fmt.Fprintln(w, " x."+APPLES+" = append(x."+APPLES+", newP)") + fmt.Fprintln(w, " return true") + fmt.Fprintln(w, "}") + fmt.Fprintln(w, "") +} +*/ |
