chromium/base/containers/span_or_size.h

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef BASE_CONTAINERS_SPAN_OR_SIZE_H_
#define BASE_CONTAINERS_SPAN_OR_SIZE_H_

#include <stddef.h>

#include <variant>

#include "base/containers/span.h"
#include "base/functional/overloaded.h"
#include "base/types/optional_ref.h"

namespace base {

// `SpanOrSize<T>` contains either a `span<T>` or just the size of data.  This
// is useful if the data is not retained in some scenarios, but size needs to be
// available in all the scenarios.
template <typename T>
class SpanOrSize {};

}  // namespace base

#endif  // BASE_CONTAINERS_SPAN_OR_SIZE_H_