code: func (m *Marshaller) Marshal(obj interface{}) ([]byte, error) {
  	var buf bytes.Buffer
  	if err := m.Encode(obj, &buf); err != nil {
  		return nil, err
  	}
  	return buf.Bytes(), nil
  }
docs: // Marshal marshels the given object to a byte slice.