chromium/third_party/blink/renderer/core/layout/inline/line_info_list.h

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

#ifdef UNSAFE_BUFFERS_BUILD
// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
#pragma allow_unsafe_buffers
#endif

#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_INLINE_LINE_INFO_LIST_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_INLINE_LINE_INFO_LIST_H_

#include "third_party/blink/renderer/core/layout/inline/inline_break_token.h"
#include "third_party/blink/renderer/core/layout/inline/line_info.h"

namespace blink {

//
// A `Vector` or `Deque`-like class for `LineInfo`, with a fixed maximum
// capacity.
//
// Use `LineInfoListOf` to instantiate. Algorithms can use this class to
// handle different capacities.
//
class LineInfoList {};

inline LineInfo& LineInfoList::Get(const InlineBreakToken* break_token,
                                   bool& is_cached_out) {}

//
// Instantiate `LineInfo` with the given `capacity`.
//
template <wtf_size_t max_lines>
class LineInfoListOf : public LineInfoList {};

}  // namespace blink

#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_INLINE_LINE_INFO_LIST_H_