diff --git a/droplet.update.go b/droplet.update.go new file mode 100644 index 0000000..8619df2 --- /dev/null +++ b/droplet.update.go @@ -0,0 +1,96 @@ +// Code generated by go.wit.com/apps/autogenpb DO NOT EDIT. +// This file was autogenerated with autogenpb 0.0.61 2025/02/23_0116_UTC +// go install go.wit.com/apps/autogenpb@latest +// +// define which structs (messages) you want to use in the .proto file +// Then sort.pb.go and marshal.pb.go files are autogenerated +// +// autogenpb uses it and has an example .proto file with instructions +// + +package virtpb + +import ( + "go.wit.com/lib/protobuf/guipb" + "go.wit.com/log" + "google.golang.org/protobuf/types/known/timestamppb" +) + +func (mt *DropletsTable) Update() { + log.Info("now what?") + for _, name := range mt.pb.Order { + log.Info("virtpb: trying to update row()", name) + if mt.updateStringFunc(name) { + continue + } + if mt.updateTimeFunc(name) { + continue + } + /* + if mt.updateIntFunc(name) { + continue + } + */ + } +} + +func (mt *DropletsTable) updateStringFunc(name string) bool { + log.Info("LOOKING FOR STRING row", name) + var found *guipb.StringRow + for i, r := range mt.pb.StringRows { + // log.Info("could use", i, r.Header.Name, "for name =", name) + if r.Header.Name == name { + log.Info("found row", i, r.Header.Name) + found = r + break + } + } + if found == nil { + log.Info("did not find string row", name) + return false + } + for _, sf := range mt.stringFuncs { + if sf.title != name { + continue + } + log.Info("updateStringFunc() has row len =", len(mt.x.Droplets)) + log.Info("virtpb: starting", name, found.Vals) + for i, _ := range found.Vals { + found.Vals[i] = sf.f(mt.x.Droplets[i]) + } + log.Info("virtpb: ending", name, found.Vals) + return true + } + return false +} + +func (mt *DropletsTable) updateTimeFunc(name string) bool { + log.Info("LOOKING FOR TIME row", name) + var found *guipb.TimeRow + for i, r := range mt.pb.TimeRows { + // log.Info("could use", i, r.Header.Name, "for name =", name) + if r.Header.Name == name { + log.Info("found row", i, r.Header.Name) + found = r + break + } + } + if found == nil { + log.Info("did not find time row", name) + return false + } + for _, sf := range mt.timeFuncs { + if sf.title != name { + continue + } + log.Info("updateTimeFunc() has row len =", len(mt.x.Droplets)) + log.Info("virtpb: starting", name, found.Vals) + for i, _ := range found.Vals { + newt := sf.f(mt.x.Droplets[i]) + found.Vals[i] = timestamppb.New(newt) // convert to protobuf time + } + log.Info("virtpb: ending", name, found.Vals) + return true + } + return false +}