func (it *Iter) Meta() *ListMeta {
	return &it.meta
}
Meta returns the list metadata.
package stripe
import (
	"reflect"
	"github.com/stripe/stripe-go/form"
)
type Query func(*form.Values) ([]interface{}, ListMeta, error)
type Iter struct {
	cur    interface{}
	err    error
	meta   ListMeta
	params ListParams
	qs     *form.Values
	query  Query
	values []interface{}
}
func GetIter(params *ListParams, qs *form.Values, query Query) *Iter {
	iter := &Iter{}
	iter.query = query
	p := params
	if p == nil {
		p = &ListParams{}
	}
	iter.params = *p
	q := qs
	if q == nil {
		q = &form.Values{}
	}
	iter.qs = q
	iter.getPage()
	return iter
}
func (it *Iter) getPage() {
	it.values, it.meta, it.err = it.query(it.qs)
	if it.params.End != "" {
		reverse(it.values)
	}
}
func (it *Iter) Next() bool {
	if len(it.values) == 0 && it.meta.More && !it.params.Single {
		if it.params.End != "" {
			it.params.End = listItemID(it.cur)
			it.qs.Set(endbefore, it.params.End)
		} else {
			it.params.Start = listItemID(it.cur)
			it.qs.Set(startafter, it.params.Start)
		}
		it.getPage()
	}
	if len(it.values) == 0 {
		return false
	}
	it.cur = it.values[0]
	it.values = it.values[1:]
	return true
}
func (it *Iter) Current() interface{} {
	return it.cur
}
func (it *Iter) Err() error {
	return it.err
}