summaryrefslogtreecommitdiff
path: root/sortNew.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-01-10 21:33:00 -0600
committerJeff Carr <[email protected]>2025-01-10 21:33:00 -0600
commit6ce9c29135cd181755e0e76a5ddba98e37ae49d8 (patch)
treefa7f80f57ff946c6132f7d784f713774dc749c43 /sortNew.go
parent47a7163ff395e25663b0b65fa4e954a27417b1a7 (diff)
lucked out. compiled and ran and worked on the first pass
Diffstat (limited to 'sortNew.go')
-rw-r--r--sortNew.go48
1 files changed, 44 insertions, 4 deletions
diff --git a/sortNew.go b/sortNew.go
index 6f31348..7ed81dd 100644
--- a/sortNew.go
+++ b/sortNew.go
@@ -14,6 +14,46 @@ func (msg *MsgName) getLockname(s string) string {
return msg.Lockname
}
+// I like these functions the best.
+func (msg *MsgName) simpleAppend(w io.Writer, FRUIT, APPLES, APPLE string) {
+ LOCK := msg.getLockname("x")
+
+ // append -- no check at all
+ fmt.Fprintln(w, "// TESTING 2")
+ fmt.Fprintln(w, "// just a simple Append() shortcut (but still uses the mutex lock)")
+ fmt.Fprintln(w, "func (x *"+FRUIT+") Append(y *"+APPLE+") {")
+ fmt.Fprintln(w, " "+LOCK+".Lock()")
+ fmt.Fprintln(w, " defer "+LOCK+".Unlock()")
+ fmt.Fprintln(w, "")
+ fmt.Fprintln(w, " x."+APPLES+" = append(x."+APPLES+", y)")
+ fmt.Fprintln(w, "}")
+ fmt.Fprintln(w, "")
+}
+
+func (msg *MsgName) insertByColors(w io.Writer, FRUIT, APPLES, APPLE string, COLORS []string) {
+ LOCK := msg.getLockname("x")
+ for _, COLOR := range COLORS {
+ fmt.Fprintln(w, "// TESTING")
+ fmt.Fprintln(w, "// returns an "+APPLE+" if "+COLOR+" matches, otherwise create")
+ fmt.Fprintln(w, "func (x *"+FRUIT+") InsertBy"+COLOR+" (y string) "+APPLE+" {")
+ 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+" == "+COLOR+" {")
+ fmt.Fprintln(w, " return p")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, "")
+ fmt.Fprintln(w, " z := new("+APPLE+")")
+ fmt.Fprintln(w, " z."+COLOR+" := y")
+ fmt.Fprintln(w, " x."+APPLES+" = append(x."+APPLES+", z)")
+ fmt.Fprintln(w, " return true")
+ fmt.Fprintln(w, "}")
+ fmt.Fprintln(w, "")
+ }
+}
+
func (msg *MsgName) appendUnique(w io.Writer, FRUIT, APPLES, APPLE string, COLORS []string) {
LOCK := msg.getLockname("x")
@@ -86,8 +126,8 @@ func (msg *MsgName) deleteBy(w io.Writer, FRUIT, APPLES, APPLE, COLOR string) {
fmt.Fprintln(w, "// TESTING")
fmt.Fprintln(w, "func (x *"+FRUIT+") DeleteBy"+COLOR+"(s string) bool {")
- fmt.Fprintln(w, " "+LOCK+".RLock()")
- fmt.Fprintln(w, " defer "+LOCK+".RUnlock()")
+ fmt.Fprintln(w, " "+LOCK+".Lock()")
+ fmt.Fprintln(w, " defer "+LOCK+".Unlock()")
fmt.Fprintln(w, "")
fmt.Fprintln(w, " for i, _ := range x."+APPLES+" {")
fmt.Fprintln(w, " if x."+APPLES+"[i]."+COLOR+" == s {")
@@ -107,8 +147,8 @@ func (msg *MsgName) deleteByWithCopy(w io.Writer, FRUIT, APPLES, APPLE, COLOR st
fmt.Fprintln(w, "// TESTING")
fmt.Fprintln(w, "func (x *"+FRUIT+") DeleteBy"+COLOR+"(s string) *"+APPLE+" {")
- fmt.Fprintln(w, " "+LOCK+".RLock()")
- fmt.Fprintln(w, " defer "+LOCK+".RUnlock()")
+ fmt.Fprintln(w, " "+LOCK+".Lock()")
+ fmt.Fprintln(w, " defer "+LOCK+".Unlock()")
fmt.Fprintln(w, "")
fmt.Fprintln(w, " var newr "+APPLE)
fmt.Fprintln(w, "")