code: func (p *PooledMarshaller) Marshal(obj interface{}) ([]byte, error) {
  	m := p.pool.Get().(*Marshaller)
  	bts, err := m.Marshal(obj)
  	p.pool.Put(m)
  	return bts, err
  }
docs: // Marshal marshals the passed object using the pool of marshallers.