1package builder
2
3import "reflect"
4
5func convert(from interface{}, to interface{}) interface{} {
6	return reflect.
7		ValueOf(from).
8		Convert(reflect.TypeOf(to)).
9		Interface()
10}
11
12func forEach(s interface{}, f func(interface{})) {
13	val := reflect.ValueOf(s)
14
15	kind := val.Kind()
16	if kind != reflect.Slice && kind != reflect.Array {
17		panic(&reflect.ValueError{Method: "builder.forEach", Kind: kind})
18	}
19
20	l := val.Len()
21	for i := 0; i < l; i++ {
22		f(val.Index(i).Interface())
23	}
24}
25