#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_FLAT_TREE_TRAVERSAL_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_FLAT_TREE_TRAVERSAL_H_
#include "base/dcheck_is_on.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/dom/layout_tree_builder_traversal.h"
#include "third_party/blink/renderer/core/dom/node_traversal.h"
#include "third_party/blink/renderer/core/dom/shadow_root.h"
#include "third_party/blink/renderer/core/dom/traversal_range.h"
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
namespace blink {
class ContainerNode;
class Node;
class CORE_EXPORT FlatTreeTraversal { … };
inline ContainerNode* FlatTreeTraversal::Parent(const Node& node) { … }
inline Element* FlatTreeTraversal::ParentElement(const Node& node) { … }
inline Node* FlatTreeTraversal::NextSibling(const Node& node) { … }
inline Node* FlatTreeTraversal::PreviousSibling(const Node& node) { … }
inline Node* FlatTreeTraversal::Next(const Node& node) { … }
inline Node* FlatTreeTraversal::Next(const Node& node,
const Node* stay_within) { … }
inline Node* FlatTreeTraversal::NextSkippingChildren(const Node& node,
const Node* stay_within) { … }
inline Node* FlatTreeTraversal::TraverseNext(const Node& node) { … }
inline Node* FlatTreeTraversal::TraverseNext(const Node& node,
const Node* stay_within) { … }
inline Node* FlatTreeTraversal::TraverseNextSkippingChildren(
const Node& node,
const Node* stay_within) { … }
inline Node* FlatTreeTraversal::Previous(const Node& node) { … }
inline Node* FlatTreeTraversal::TraversePrevious(const Node& node) { … }
inline Node* FlatTreeTraversal::Previous(const Node& node,
const Node* stay_within) { … }
inline Node* FlatTreeTraversal::FirstChild(const Node& node) { … }
inline Node* FlatTreeTraversal::LastChild(const Node& node) { … }
inline bool FlatTreeTraversal::HasChildren(const Node& node) { … }
inline Node* FlatTreeTraversal::TraverseNextSibling(const Node& node) { … }
inline Node* FlatTreeTraversal::TraversePreviousSibling(const Node& node) { … }
inline Node* FlatTreeTraversal::TraverseFirstChild(const Node& node) { … }
inline Node* FlatTreeTraversal::TraverseLastChild(const Node& node) { … }
inline TraversalAncestorRange<FlatTreeTraversal> FlatTreeTraversal::AncestorsOf(
const Node& node) { … }
inline TraversalAncestorRange<FlatTreeTraversal>
FlatTreeTraversal::InclusiveAncestorsOf(const Node& node) { … }
inline TraversalSiblingRange<FlatTreeTraversal> FlatTreeTraversal::ChildrenOf(
const Node& parent) { … }
inline TraversalDescendantRange<FlatTreeTraversal>
FlatTreeTraversal::DescendantsOf(const Node& root) { … }
inline TraversalInclusiveDescendantRange<FlatTreeTraversal>
FlatTreeTraversal::InclusiveDescendantsOf(const Node& root) { … }
inline TraversalNextRange<FlatTreeTraversal> FlatTreeTraversal::StartsAt(
const Node& start) { … }
inline TraversalNextRange<FlatTreeTraversal> FlatTreeTraversal::StartsAfter(
const Node& start) { … }
}
#endif