summaryrefslogtreecommitdiff
path: root/example/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'example/main.go')
-rw-r--r--example/main.go165
1 files changed, 63 insertions, 102 deletions
diff --git a/example/main.go b/example/main.go
index 078dbce..490421e 100644
--- a/example/main.go
+++ b/example/main.go
@@ -1,6 +1,3 @@
-//go:build go1.20
-// +build go1.20
-
package main
import (
@@ -15,127 +12,59 @@ import (
var VERSION string
var BUILDTIME string
-var sortmap map[string]string
-var marshalKeys []string
-var uniqueKeys []string
-
var counter int = rand.Intn(100)
func main() {
var pb *Fruits
- // pb = NewFruits()
pb = new(Fruits)
- // attempt to load basket.pb
if err := pb.loadBasket(); err != nil {
- log.Info("load basket failed. running this for the first time?")
- a := pb.getNewFruit()
- pb.Fruits = append(pb.Fruits, a)
- pb.printTable()
+ log.Info("First time user?")
}
- if err := pb.saveBasket(); err != nil {
- badExit(err)
- }
- if pb == nil {
- badExit(fmt.Errorf("pb == nil This should not have happened"))
- }
- pb.addThings()
- pb.printTable()
- pb.saveBasket()
- pb.sortTable(100)
-}
-
-func badExit(err error) {
- log.Info("autogenpb error:", err)
- os.Exit(-1)
-}
-
-func (pb *Fruits) getNewFruit() *Fruit {
- counter += rand.Intn(100)
- upc := fmt.Sprintf("%d", counter)
- fut := &Fruit{
+ // attempt to load basket.pb
+ fruit := &Fruit{
Brand: "mom",
City: "New NewYork",
- UPC: upc,
+ UPC: "2000",
}
- return fut
-}
+ pb.Fruits = append(pb.Fruits, fruit)
-/*
- x := new(Fruit)
- x = &Fruit{
+ a := &Fruit{
Brand: "fry",
- City: "Germany",
+ City: "the moon",
+ UPC: "2001",
}
- pb.printTable()
+ pb.Fruits = append(pb.Fruits, a)
- testAppend(x)
-*/
+ b := pb.getNewFruit()
+ pb.Fruits = append(pb.Fruits, b)
-func (pb *Fruits) printTable() {
- var count int
- all := pb.All()
- for all.Scan() {
- tmp := all.Next()
- count += 1
- log.Printf("found %d %s %s\n", count, tmp.Brand, tmp.City)
- if count > 5 {
- break
- }
+ pb.saveBasket()
+
+ if err := pb.loadBasket(); err != nil {
+ badExit(err)
}
- log.Printf("Total entries: %d\n", pb.Len())
+ pb.printTable()
}
-func (pb *Fruits) sortTable(i int) {
- var count int
- all := pb.SortByBrand()
- for all.Scan() {
- tmp := all.Next()
- count += 1
- log.Printf("found %d %s %s\n", count, tmp.Brand, tmp.City)
- if count > i {
- break
- }
+func (pb *Fruits) addFruits(i int) {
+ var x int
+ for x < i {
+ x += 1
+ b := pb.getNewFruit()
+ pb.Fruits = append(pb.Fruits, b)
}
- log.Printf("Total entries: %d\n", pb.Len())
}
-// adds 10 new entries
-func (pb *Fruits) addThings() {
- var added int
- var count int = rand.Intn(10000)
- // var base string = "bender"
- for {
- count += rand.Intn(1000)
- var found bool
- name := fmt.Sprintf("bender%d", count)
- all := pb.All()
- for all.Scan() {
- tmp := all.Next()
- if tmp.Brand == name {
- // log.Printf("tmp name EQUAL %d %s vs %s city = %s len=%d\n", count, tmp.Brand, name, tmp.City, pb.Len())
- found = true
- break
- }
- // log.Printf("DID NOT EXIST %d %s vs %s city = %s len=%d\n", count, tmp.Brand, name, tmp.City, pb.Len())
- }
- if found {
- continue
- }
- // log.Printf("DID NOT EXIST %d %s len=%d\n", count, name, pb.Len())
- tmp := new(Fruit)
- tmp.Brand = name
- tmp.City = "paris"
- if pb.AppendUniqueByBrand(tmp) {
- // log.Printf("AppendUniqueBrand() ok len=%s %s %d\n", tmp.Brand, tmp.City, pb.Len())
- } else {
- badExit(fmt.Errorf("AppendUniqueByBrand() ERROR len=%s %s %d\n", tmp.Brand, tmp.City, pb.Len()))
- }
- pb.Append(tmp)
- added += 1
- if added > 10 {
- return
- }
+func (pb *Fruits) getNewFruit() *Fruit {
+ counter += rand.Intn(10)
+ upc := fmt.Sprintf("%d", counter)
+
+ a := &Fruit{
+ Brand: "fry",
+ City: "the moon",
+ UPC: upc,
}
+ return a
}
func (pb *Fruits) saveBasket() error {
@@ -154,6 +83,11 @@ func (pb *Fruits) saveBasket() error {
return nil
}
+func badExit(err error) {
+ log.Info("autogenpb error:", err)
+ os.Exit(-1)
+}
+
func (pb *Fruits) loadBasket() error {
if pb == nil {
pb = new(Fruits)
@@ -169,3 +103,30 @@ func (pb *Fruits) loadBasket() error {
log.Info("loaded basket.pb ok")
return nil
}
+func (pb *Fruits) printTable() {
+ var count int
+ all := pb.All()
+ for all.Scan() {
+ tmp := all.Next()
+ count += 1
+ log.Printf("found %d %s %s %s\n", count, tmp.Brand, tmp.City, tmp.UPC)
+ if count > 10 {
+ break
+ }
+ }
+ log.Printf("Total entries: %d\n", pb.Len())
+}
+
+func (pb *Fruits) sortTable(i int) {
+ var count int
+ all := pb.SortByBrand()
+ for all.Scan() {
+ tmp := all.Next()
+ count += 1
+ log.Printf("found %d %s %s\n", count, tmp.Brand, tmp.City)
+ if count > i {
+ break
+ }
+ }
+ log.Printf("Total entries: %d\n", pb.Len())
+}