code: func (e Encoder) Encode(dst interface{}) error {
  	v := reflect.ValueOf(dst)
  	n, err := encodeToNode(v, e.z)
  	if err != nil {
  		return err
  	}
  	s := n.values(e.d, e.e).Encode()
  	l, err := io.WriteString(e.w, s)
  	switch {
  	case err != nil:
  		return err
  	case l != len(s):
  		return errors.New("could not write data completely")
  	}
  	return nil
  }
docs: // Encode encodes dst as form and writes it out using the Encoder's Writer.