code: func SerializeDataSet(c types.Cell) *pb.MetricsDataSet {
  	d := pb.MetricsDataSet{}
  	d.MetricName = proto.String(metricNamePrefix + c.Name)
  	d.FieldDescriptor = field.SerializeDescriptor(c.Fields)
  	d.Description = proto.String(c.Description)
  
  	if c.ValueType.IsCumulative() {
  		d.StreamKind = pb.StreamKind_CUMULATIVE.Enum()
  	} else {
  		d.StreamKind = pb.StreamKind_GAUGE.Enum()
  	}
  
  	switch c.ValueType {
  	case types.NonCumulativeIntType, types.CumulativeIntType:
  		d.ValueType = pb.ValueType_INT64.Enum()
  	case types.NonCumulativeFloatType, types.CumulativeFloatType:
  		d.ValueType = pb.ValueType_DOUBLE.Enum()
  	case types.NonCumulativeDistributionType, types.CumulativeDistributionType:
  		d.ValueType = pb.ValueType_DISTRIBUTION.Enum()
  	case types.StringType:
  		d.ValueType = pb.ValueType_STRING.Enum()
  	case types.BoolType:
  		d.ValueType = pb.ValueType_BOOL.Enum()
  	}
  
  	if c.Units.IsSpecified() {
  		d.Annotations.Unit = proto.String(string(c.Units))
  	}
  	return &d
  }
docs: // SerializeDataSet creates a new MetricsDataSet without any data, but just with
  // the metric metadata fields populated.