diff options
| author | Jeff Carr <[email protected]> | 2025-01-09 15:51:45 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-01-09 15:51:45 -0600 |
| commit | 65aa8e85b1b751a224d7486a721188582c34bb76 (patch) | |
| tree | 7d82c4e31d2cfe426a5c3541601a4e15e3a5083a /sort.go | |
| parent | 455377e30abc161bbee3ee75ac81754a73405617 (diff) | |
builds and runs again
Diffstat (limited to 'sort.go')
| -rw-r--r-- | sort.go | 31 |
1 files changed, 25 insertions, 6 deletions
@@ -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) { |
