summaryrefslogtreecommitdiff
path: root/vendor/go.opentelemetry.io/otel/sdk/metric/internal/reuse_slice.go
blob: ea452be6c2cdac488b6d2eecded0f8b25eae5470 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

// Package internal provides internal functionality for the metric package.
package internal // import "go.opentelemetry.io/otel/sdk/metric/internal"

// ReuseSlice returns a zeroed view of slice if its capacity is greater than or
// equal to n. Otherwise, it returns a new []T with capacity equal to n.
func ReuseSlice[T any](slice []T, n int) []T {
	if cap(slice) >= n {
		return slice[:n]
	}
	return make([]T, n)
}