diff options
| author | Jeff Carr <[email protected]> | 2025-01-11 04:03:41 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-01-11 04:03:41 -0600 |
| commit | 1f9e4a682d3acf36aa7ee1279f1f9cc928bcd5fd (patch) | |
| tree | eac1d0677459b6cc55fc4eb292c6545d42315cbc | |
| parent | d8464bf21ffada0be45116e7a6c4573bcadbce1b (diff) | |
rename files
| -rw-r--r-- | generate.go (renamed from sort.go) | 14 | ||||
| -rw-r--r-- | generateFind.go (renamed from sortNew.go) | 102 | ||||
| -rw-r--r-- | generateHeader.go (renamed from header.go) | 0 | ||||
| -rw-r--r-- | generateMarshal.go (renamed from marshal.go) | 0 | ||||
| -rw-r--r-- | generateMutex.go (renamed from addMutex.go) | 0 | ||||
| -rw-r--r-- | generateSort.go (renamed from sortFunc.go) | 0 |
6 files changed, 64 insertions, 52 deletions
@@ -96,6 +96,7 @@ func (pf *File) processMessage(msg *MsgName, wSort, wFind io.Writer) error { log.Printf("FOUND: %s %s for %s\n", APPLES, APPLE, FRUIT) + found.addFindByMsg(wFind, FRUIT, APPLES, APPLE) found.addAppendByMsg(wFind, FRUIT, APPLES, APPLE) found.addDeleteByMsg(wFind, FRUIT, APPLES, APPLE) found.addInsertByMsg(wFind, FRUIT, APPLES, APPLE) // new idea @@ -105,6 +106,17 @@ func (pf *File) processMessage(msg *MsgName, wSort, wFind io.Writer) error { return nil } +func (parent *MsgName) addFindByMsg(w io.Writer, FRUIT, APPLES, APPLE string) { + log.Printf("\tINSERT: %s %s for %s\n", APPLES, APPLE, FRUIT) + for _, v := range parent.Vars { + if v.HasUnique { + var COLOR string = cases.Title(language.English, cases.NoLower).String(v.VarName) + log.Printf("\t\t(x %s) InsertBy%s(string) *%s\n", FRUIT, COLOR, APPLE) + parent.findBy(w, FRUIT, APPLES, APPLE, COLOR) + } + } +} + func (parent *MsgName) addDeleteByMsg(w io.Writer, FRUIT, APPLES, APPLE string) { log.Printf("\tDELETE: %s %s for %s\n", APPLES, APPLE, FRUIT) var COLORS []string @@ -130,7 +142,7 @@ func (parent *MsgName) addInsertByMsg(w io.Writer, FRUIT, APPLES, APPLE string) if v.HasUnique { var COLOR string = cases.Title(language.English, cases.NoLower).String(v.VarName) log.Printf("\t\t(x %s) InsertBy%s(string) *%s\n", FRUIT, COLOR, APPLE) - parent.insertByColor(w, FRUIT, APPLES, APPLE, COLOR) + parent.insertBy(w, FRUIT, APPLES, APPLE, COLOR) } } } diff --git a/sortNew.go b/generateFind.go index 72370ba..c731fec 100644 --- a/sortNew.go +++ b/generateFind.go @@ -7,7 +7,12 @@ import ( "go.wit.com/log" ) +// generates Find() + +// but really it has Append(), Delete() and some other stuff + func (msg *MsgName) getLockname(s string) string { + // leave this function stubbed in for development of autogenpb // if argv.Mutex { // // use the mutex lock from the modified protoc.pb.go file // return s + ".Lock" @@ -17,42 +22,40 @@ 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) { +func (msg *MsgName) findBy(w io.Writer, FRUIT, APPLES, APPLE, COLOR string) { LOCK := msg.getLockname("x") - log.Printf("\t\t(x %s) APPEND(%s)\n", FRUIT, APPLE) - // 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, "// 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, " x."+APPLES+" = append(x."+APPLES+", y)") + 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) insertByColor(w io.Writer, FRUIT, APPLES, APPLE string, COLOR string) { +// I like these functions the best. +func (msg *MsgName) simpleAppend(w io.Writer, FRUIT, APPLES, APPLE string) { LOCK := msg.getLockname("x") - 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+" {") + log.Printf("\t\t(x %s) APPEND(%s)\n", FRUIT, APPLE) + // append -- no check at all + 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, " for _, p := range x."+APPLES+" {") - fmt.Fprintln(w, " if p."+COLOR+" == y {") - 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 z") + fmt.Fprintln(w, " x."+APPLES+" = append(x."+APPLES+", y)") fmt.Fprintln(w, "}") fmt.Fprintln(w, "") } @@ -60,7 +63,6 @@ func (msg *MsgName) insertByColor(w io.Writer, FRUIT, APPLES, APPLE string, COLO func (msg *MsgName) appendUnique(w io.Writer, FRUIT, APPLES, APPLE string, COLORS []string) { LOCK := msg.getLockname("x") - fmt.Fprintln(w, "// TESTING") 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()") @@ -83,7 +85,6 @@ func (msg *MsgName) appendUnique(w io.Writer, FRUIT, APPLES, APPLE string, COLOR func (msg *MsgName) appendUniqueBy(w io.Writer, FRUIT, APPLES, APPLE, COLOR string) { LOCK := msg.getLockname("x") - fmt.Fprintln(w, "// TESTING") fmt.Fprintln(w, "// enforces "+APPLE+"."+COLOR+" is unique in "+FRUIT+"."+APPLES) fmt.Fprintln(w, "func (x *"+FRUIT+") AppendUniqueBy"+COLOR+"(newP *"+APPLE+") bool {") fmt.Fprintln(w, " "+LOCK+".Lock()") @@ -101,33 +102,9 @@ func (msg *MsgName) appendUniqueBy(w io.Writer, FRUIT, APPLES, APPLE, COLOR stri 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+".Lock()") fmt.Fprintln(w, " defer "+LOCK+".Unlock()") @@ -148,7 +125,7 @@ func (msg *MsgName) deleteBy(w io.Writer, FRUIT, APPLES, APPLE, COLOR string) { func (msg *MsgName) deleteByWithCopy(w io.Writer, FRUIT, APPLES, APPLE, COLOR string) { LOCK := msg.getLockname("x") - fmt.Fprintln(w, "// TESTING") + fmt.Fprintln(w, "// TESTING fails with 'go vet' warning") fmt.Fprintln(w, "func (x *"+FRUIT+") DeleteBy"+COLOR+"(s string) *"+APPLE+" {") fmt.Fprintln(w, " "+LOCK+".Lock()") fmt.Fprintln(w, " defer "+LOCK+".Unlock()") @@ -167,3 +144,26 @@ func (msg *MsgName) deleteByWithCopy(w io.Writer, FRUIT, APPLES, APPLE, COLOR st fmt.Fprintln(w, "}") fmt.Fprintln(w, "") } + +func (msg *MsgName) insertBy(w io.Writer, FRUIT, APPLES, APPLE string, COLOR string) { + LOCK := msg.getLockname("x") + + fmt.Fprintln(w, "// useful? remindme:1y") + 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+" == y {") + 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 z") + fmt.Fprintln(w, "}") + fmt.Fprintln(w, "") +} diff --git a/header.go b/generateHeader.go index 8d5fbfb..8d5fbfb 100644 --- a/header.go +++ b/generateHeader.go diff --git a/marshal.go b/generateMarshal.go index 9cb1a4e..9cb1a4e 100644 --- a/marshal.go +++ b/generateMarshal.go diff --git a/addMutex.go b/generateMutex.go index f9e143e..f9e143e 100644 --- a/addMutex.go +++ b/generateMutex.go diff --git a/sortFunc.go b/generateSort.go index e5cfa20..e5cfa20 100644 --- a/sortFunc.go +++ b/generateSort.go |
