func rewindUnmarshal(v interface{}, data *C.pn_data_t) { C.pn_data_rewind(data) C.pn_data_next(data) unmarshal(v, data) }
func rewindGet(data *C.pn_data_t) (v interface{}) { C.pn_data_rewind(data) C.pn_data_next(data) unmarshal(&v, data) return v }
func rewindMap(data *C.pn_data_t) (v map[string]interface{}) { C.pn_data_rewind(data) C.pn_data_next(data) unmarshal(&v, data) return v }
func (d Data) Rewind() { C.pn_data_rewind(d.pn) }