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

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

#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_INLINE_INLINE_BREAK_TOKEN_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_INLINE_INLINE_BREAK_TOKEN_H_

#include "base/dcheck_is_on.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/layout/break_token.h"
#include "third_party/blink/renderer/core/layout/inline/inline_item_text_index.h"
#include "third_party/blink/renderer/core/layout/inline/inline_node.h"
#include "third_party/blink/renderer/platform/wtf/casting.h"

namespace blink {

class BlockBreakToken;

// Break information in a ruby annotation.
struct AnnotationBreakTokenData {};

// Break information for a ruby column.
// This should be a GarbageCollected because InlineBreakToken::RareData can't
// have non-trivial destructor.
struct RubyBreakTokenData : GarbageCollected<RubyBreakTokenData> {};

// Represents a break token for an inline node.
class CORE_EXPORT InlineBreakToken final : public BreakToken {};

inline bool InlineBreakToken::IsStartEqual(const InlineBreakToken* lhs,
                                           const InlineBreakToken* rhs) {}

template <>
struct DowncastTraits<InlineBreakToken> {};

}  // namespace blink

#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_INLINE_INLINE_BREAK_TOKEN_H_