func jsonFilter(list interface{}, filter func(i, v interface{}) bool, unpack interface{}) (err error) { var idx interface{} if o := itertools.Filter(list, filter); len(o) > 0 { itertools.PairUnPack(<-o, &idx, unpack) } else { err = fmt.Errorf("no matches in list for filter") } return }
func getYamlFilename(filelist []os.FileInfo) (filename string) { var ( file os.FileInfo idx int ) if out := itertools.Filter(filelist, namefilter); len(out) > 0 { itertools.PairUnPack(<-out, &idx, &file) filename = file.Name() } return }
//GetDeploymentName - returns the name of the deployment func GetDeploymentName(jsonObj InstallationCompareObject) (deploymentName string, err error) { if o := itertools.Filter(jsonObj.Products, filterERProducts); len(o) > 0 { var ( idx interface{} prod productCompareObject ) itertools.PairUnPack(<-o, &idx, &prod) deploymentName = prod.Installation_name } else { err = fmt.Errorf("could not find a cf install to pull name from") } return }
func main() { s := []string{"asdf", "asdfasdf", "geeeg", "gggggggg"} m := map[string]string{"a": "asdf", "b": "asdfasdf", "c": "geeeg", "d": "gggggggg"} itertools.Each(&s, f) itertools.Each(&m, mf) fmt.Println("\n\nbegin concurrent map\n\n") itertools.CEach(s, f) itertools.CEach(m, mf) fmt.Println("\n\nFilter Sample\n\n") f := itertools.Filter(s, func(i, v interface{}) bool { il := map[int]int{1: 1, 2: 2} _, ok := il[i.(int)] return ok }) for i := range f { fmt.Println(i) } fmt.Println("\n\nConcurrent Filter Sample\n\n") fC := itertools.CFilter(s, func(i, v interface{}) bool { il := map[int]int{1: 1, 2: 2} _, ok := il[i.(int)] return ok }) for i := range fC { fmt.Println(i) } fmt.Println("\n\nlets iterate a string") t("this is a test") fmt.Println("\n\nlets iterate a list") l := list.New() l.PushFront(1) l.PushFront(2) l.PushFront(3) l.PushFront(4) l.PushFront(5) l.PushFront(6) t(l) fmt.Println("\n\nlets iterate a ring") r := ring.New(10) z := 100 r.Value = z for p := r.Next(); p != r; p = p.Next() { z -= 10 p.Value = z } t(r) fmt.Println("test the ziplong") for z := range itertools.ZipLongest("-", "abcdefghijk", "ABCde", "aBCDefg") { fmt.Println(z) } fmt.Println("test the zip") for z := range itertools.Zip("-", "abcdefghijk", "ABCde", "aBCDefg") { fmt.Println(z) } }