blob: e97cebd882e184cbad17de9375355e9a73b619a8 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_break_token.h"
#include "third_party/blink/renderer/platform/wtf/size_assertions.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
namespace blink {
namespace {
struct SameSizeAsNGInlineBreakToken : NGBreakToken {
scoped_refptr<const ComputedStyle> style_;
unsigned numbers[2];
};
ASSERT_SIZE(NGInlineBreakToken, SameSizeAsNGInlineBreakToken);
} // namespace
NGInlineBreakToken::NGInlineBreakToken(
PassKey key,
NGInlineNode node,
const ComputedStyle* style,
unsigned item_index,
unsigned text_offset,
unsigned flags /* NGInlineBreakTokenFlags */)
: NGBreakToken(kInlineBreakToken, node),
style_(style),
item_index_(item_index),
text_offset_(text_offset) {
flags_ = flags;
}
NGInlineBreakToken::~NGInlineBreakToken() = default;
#if DCHECK_IS_ON()
String NGInlineBreakToken::ToString() const {
StringBuilder string_builder;
string_builder.Append(NGBreakToken::ToString());
string_builder.Append(
String::Format(" index:%u offset:%u", ItemIndex(), TextOffset()));
if (IsForcedBreak())
string_builder.Append(" forced");
return string_builder.ToString();
}
#endif // DCHECK_IS_ON()
} // namespace blink