code: func NewConstSummary(
  	desc *Desc,
  	count uint64,
  	sum float64,
  	quantiles map[float64]float64,
  	labelValues ...string,
  ) (Metric, error) {
  	if desc.err != nil {
  		return nil, desc.err
  	}
  	if err := validateLabelValues(labelValues, len(desc.variableLabels)); err != nil {
  		return nil, err
  	}
  	return &constSummary{
  		desc:       desc,
  		count:      count,
  		sum:        sum,
  		quantiles:  quantiles,
  		labelPairs: makeLabelPairs(desc, labelValues),
  	}, nil
  }
docs: // NewConstSummary returns a metric representing a Prometheus summary with fixed
  // values for the count, sum, and quantiles. As those parameters cannot be
  // changed, the returned value does not implement the Summary interface (but
  // only the Metric interface). Users of this package will not have much use for
  // it in regular operations. However, when implementing custom Collectors, it is
  // useful as a throw-away metric that is generated on the fly to send it to
  // Prometheus in the Collect method.
  //
  // quantiles maps ranks to quantile values. For example, a median latency of
  // 0.23s and a 99th percentile latency of 0.56s would be expressed as:
  //     map[float64]float64{0.5: 0.23, 0.99: 0.56}
  //
  // NewConstSummary returns an error if the length of labelValues is not
  // consistent with the variable labels in Desc or if Desc is invalid.