code: func (m *Unknown) NestedMarshalTo(data []byte, b ProtobufMarshaller, size uint64) (int, error) {
  	var i int
  	_ = i
  	var l int
  	_ = l
  	data[i] = 0xa
  	i++
  	i = encodeVarintGenerated(data, i, uint64(m.TypeMeta.Size()))
  	n1, err := m.TypeMeta.MarshalTo(data[i:])
  	if err != nil {
  		return 0, err
  	}
  	i += n1
  
  	if b != nil {
  		data[i] = 0x12
  		i++
  		i = encodeVarintGenerated(data, i, size)
  		n2, err := b.MarshalTo(data[i:])
  		if err != nil {
  			return 0, err
  		}
  		if uint64(n2) != size {
  			// programmer error: the Size() method for protobuf does not match the results of MarshalTo, which means the proto
  			// struct returned would be wrong.
  			return 0, fmt.Errorf("the Size() value of %T was %d, but NestedMarshalTo wrote %d bytes to data", b, size, n2)
  		}
  		i += n2
  	}
  
  	data[i] = 0x1a
  	i++
  	i = encodeVarintGenerated(data, i, uint64(len(m.ContentEncoding)))
  	i += copy(data[i:], m.ContentEncoding)
  
  	data[i] = 0x22
  	i++
  	i = encodeVarintGenerated(data, i, uint64(len(m.ContentType)))
  	i += copy(data[i:], m.ContentType)
  	return i, nil
  }
docs: // NestedMarshalTo allows a caller to avoid extra allocations during serialization of an Unknown
  // that will contain an object that implements ProtobufMarshaller.