summaryrefslogtreecommitdiff
path: root/sortNew.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-01-10 18:26:44 -0600
committerJeff Carr <[email protected]>2025-01-10 18:26:44 -0600
commitdc86ae010f688eefc5f4757d1c6eb620effc68f9 (patch)
tree7d0d9845bbbbe3817a0a126a220bfbdf9e4e2f6f /sortNew.go
parent57f8f88ae9b6622e4df2fe6f1720d711ae8a8819 (diff)
new easier to read Find() Delete() and Append()
Diffstat (limited to 'sortNew.go')
-rw-r--r--sortNew.go71
1 files changed, 69 insertions, 2 deletions
diff --git a/sortNew.go b/sortNew.go
index d2c05b1..6f31348 100644
--- a/sortNew.go
+++ b/sortNew.go
@@ -23,13 +23,13 @@ func (msg *MsgName) appendUnique(w io.Writer, FRUIT, APPLES, APPLE string, COLOR
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, " 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, "")
fmt.Fprintln(w, " x."+APPLES+" = append(x."+APPLES+", newP)")
fmt.Fprintln(w, " return true")
@@ -57,3 +57,70 @@ func (msg *MsgName) appendUniqueBy(w io.Writer, FRUIT, APPLES, APPLE, COLOR stri
fmt.Fprintln(w, "}")
fmt.Fprintln(w, "")
}
+
+func (msg *MsgName) findBy(w io.Writer, FRUIT, APPLES, APPLE, COLOR string) {
+ LOCK := msg.getLockname("x")
+
+ fmt.Fprintln(w, "// TESTING")
+ fmt.Fprintln(w, "// find a dependancy by the go path")
+ fmt.Fprintln(w, "func (x *"+FRUIT+") FindBy"+COLOR+"(s string) *"+APPLE+" {")
+ 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."+APPLES+" {")
+ fmt.Fprintln(w, " if x."+APPLES+"[i]."+COLOR+" == s {")
+ fmt.Fprintln(w, " return x."+APPLES+"[i]")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, " return nil")
+ fmt.Fprintln(w, "}")
+ fmt.Fprintln(w, "")
+}
+
+func (msg *MsgName) deleteBy(w io.Writer, FRUIT, APPLES, APPLE, COLOR string) {
+ LOCK := msg.getLockname("x")
+
+ 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, "")
+ fmt.Fprintln(w, " for i, _ := range x."+APPLES+" {")
+ fmt.Fprintln(w, " if x."+APPLES+"[i]."+COLOR+" == s {")
+ fmt.Fprintln(w, " x."+APPLES+"[i] = x."+APPLES+"[len(x."+APPLES+")-1]")
+ fmt.Fprintln(w, " x."+APPLES+" = x."+APPLES+"[:len(x."+APPLES+")-1]")
+ fmt.Fprintln(w, " return true")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, " return false")
+ fmt.Fprintln(w, "}")
+ fmt.Fprintln(w, "")
+}
+
+// this tries to return the deleted one but is wrong/gives warning if mutex lock is in struct
+func (msg *MsgName) deleteByWithCopy(w io.Writer, FRUIT, APPLES, APPLE, COLOR string) {
+ LOCK := msg.getLockname("x")
+
+ 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, "")
+ fmt.Fprintln(w, " var newr "+APPLE)
+ fmt.Fprintln(w, "")
+ fmt.Fprintln(w, " for i, _ := range x."+APPLES+" {")
+ fmt.Fprintln(w, " if x."+APPLES+"[i]."+COLOR+" == s {")
+ fmt.Fprintln(w, " newr = *x."+APPLES+"[i]")
+ fmt.Fprintln(w, " x."+APPLES+"[i] = x."+APPLES+"[len(x."+APPLES+")-1]")
+ fmt.Fprintln(w, " x."+APPLES+" = x."+APPLES+"[:len(x."+APPLES+")-1]")
+ fmt.Fprintln(w, " return &newr")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, " return nil")
+ fmt.Fprintln(w, "}")
+ fmt.Fprintln(w, "")
+}