func normalizeMultiDimSpace()

in binding-go/client.go [345:365]


func normalizeMultiDimSpace(obs []interface{}) (interface{}, error) {
	firstElem, err := normalizeSpaceElem(obs[0])
	if err != nil {
		return nil, err
	}
	elemType := reflect.TypeOf(firstElem)
	sliceType := reflect.SliceOf(elemType)
	slice := reflect.MakeSlice(sliceType, len(obs), len(obs))
	for i, x := range obs {
		obj, err := normalizeSpaceElem(x)
		if err != nil {
			return nil, err
		}
		val := reflect.ValueOf(obj)
		if val.Type() != elemType {
			return nil, errors.New("unsupported observation: heterogeneous array")
		}
		slice.Index(i).Set(val)
	}
	return slice.Interface(), nil
}