chromium/media/formats/hls/tag_name.cc

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

#include "media/formats/hls/tag_name.h"

#include <string_view>
#include <utility>

#include "base/containers/fixed_flat_map.h"
#include "base/notreached.h"

namespace media::hls {

namespace {
// Ensure that tag name enums are disjoint.
template <typename A, typename B>
constexpr bool are_disjoint() {}

// Ensure all tag names are within the range [kMinValue, kMaxValue]
static_assert;
static_assert;
static_assert;

// Ensure tag name sets are contiguous
static_assert;
static_assert;

// Ensure tag name sets are non-overlapping
static_assert;
static_assert;
static_assert;

template <typename T>
constexpr std::pair<std::string_view, TagName> TagNameEntry(
    std::string_view name_str,
    T name) {}

// Mapping of tag names to their constants. This must remain sorted by the
// string value.
constexpr auto kTagNames =;

// `kTagNames` must cover the entire [kMinTagName, kMaxTagName] range.
static_assert;

}  // namespace

TagKind GetTagKind(TagName name) {}

std::optional<TagName> ParseTagName(std::string_view name) {}

std::string_view TagNameToString(TagName name) {}

}  // namespace media::hls