summaryrefslogtreecommitdiff
path: root/sort.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-01-09 15:51:45 -0600
committerJeff Carr <[email protected]>2025-01-09 15:51:45 -0600
commit65aa8e85b1b751a224d7486a721188582c34bb76 (patch)
tree7d82c4e31d2cfe426a5c3541601a4e15e3a5083a /sort.go
parent455377e30abc161bbee3ee75ac81754a73405617 (diff)
builds and runs again
Diffstat (limited to 'sort.go')
-rw-r--r--sort.go31
1 files changed, 25 insertions, 6 deletions
diff --git a/sort.go b/sort.go
index ff0e951..1bf34bb 100644
--- a/sort.go
+++ b/sort.go
@@ -185,14 +185,15 @@ func iterEnd(w io.Writer, names map[string]string) {
func iterAppend(w io.Writer, names map[string]string) {
}
-func (pf *File) appendUnique(w io.Writer, msg *MsgName, names map[string]string) {
- var MSG string = msg.Name // msg.Name
+func (pf *File) appendUnique(w io.Writer, blah *MsgName, names map[string]string) {
+ var MSG string = pf.Bases.Name
var BASE string = names["Base"]
- var LOCK string = names["lock"]
+ var LOCK string = pf.Bases.Lockname
+
if argv.Mutex {
- LOCK = "Lock"
+ LOCK = pf.Bases.Name + ".Lock"
} else {
- LOCK = names["lock"] + ".Lock"
+ LOCK = "all.Lock"
}
fmt.Fprintln(w, "// enforces "+BASE+" is unique")
@@ -201,7 +202,7 @@ func (pf *File) appendUnique(w io.Writer, msg *MsgName, names map[string]string)
fmt.Fprintln(w, " defer "+LOCK+".RUnlock()")
fmt.Fprintln(w, "")
fmt.Fprintln(w, " for _, p := range all."+MSG+" {")
- for _, KEY := range msg.Unique {
+ for _, KEY := range pf.Base.Unique {
fmt.Fprintln(w, " if p."+KEY+" == newP."+KEY+" {")
fmt.Fprintln(w, " return false")
fmt.Fprintln(w, " }")
@@ -212,6 +213,24 @@ func (pf *File) appendUnique(w io.Writer, msg *MsgName, names map[string]string)
fmt.Fprintln(w, " return true")
fmt.Fprintln(w, "}")
fmt.Fprintln(w, "")
+
+ for _, KEY := range pf.Base.Unique {
+ fmt.Fprintln(w, "// enforces "+BASE+" is unique")
+ fmt.Fprintln(w, "func (all *"+MSG+") AppendUnique"+KEY+"(newP *"+BASE+") bool {")
+ fmt.Fprintln(w, " "+LOCK+".RLock()")
+ fmt.Fprintln(w, " defer "+LOCK+".RUnlock()")
+ fmt.Fprintln(w, "")
+ fmt.Fprintln(w, " for _, p := range all."+MSG+" {")
+ fmt.Fprintln(w, " if p."+KEY+" == newP."+KEY+" {")
+ fmt.Fprintln(w, " return false")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, " }")
+ fmt.Fprintln(w, "")
+ fmt.Fprintln(w, " all."+MSG+" = append(all."+MSG+", newP)")
+ fmt.Fprintln(w, " return true")
+ fmt.Fprintln(w, "}")
+ fmt.Fprintln(w, "")
+ }
}
func iterReplace(w io.Writer, names map[string]string) {