code: func (dec *Decoder) setValues() error {
  	tmp := dec.curr // hold current field
  	for i, v := range dec.values {
  		dec.curr = tmp.Index(i)
  		dec.values[0] = v
  		if err := dec.decode(); err != nil {
  			return err
  		}
  	}
  	return nil
  }
docs: // setValues set the values in current slice/array