code: func (m *Marshaller) MarshalString(s string) {
  	if m.Error != nil {
  		return
  	}
  	if len(m.Data) < m.offset+4+len(s)+Padding(len(s)) {
  		m.Error = io.ErrShortBuffer
  		return
  	}
  
  	m.MarshalUint32(uint32(len(s)))
  	m.offset += copy(m.Data[m.offset:], s)
  	m.offset += copy(m.Data[m.offset:], padBytes[:Padding(len(s))])
  }
docs: // MarshalString appends the string to the buffer, with a size prefix and
  // correct padding.