示例#1
0
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
}
示例#3
0
//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
}
示例#4
0
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)
	}
}