#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_COMPOSITOR_ELEMENT_ID_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_COMPOSITOR_ELEMENT_ID_H_
#include <type_traits>
#include "cc/paint/element_id.h"
#include "third_party/blink/renderer/platform/graphics/dom_node_id.h"
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/wtf/hash_traits.h"
namespace blink {
const int kCompositorNamespaceBitCount = …;
static_assert …;
enum class CompositorElementIdNamespace { … };
static_assert …;
CompositorElementId;
ScrollbarId;
UniqueObjectId;
SyntheticEffectId;
UniqueObjectId PLATFORM_EXPORT NewUniqueObjectId();
CompositorElementId PLATFORM_EXPORT
CompositorElementIdFromUniqueObjectId(UniqueObjectId,
CompositorElementIdNamespace);
CompositorElementId PLATFORM_EXPORT
CompositorElementIdFromUniqueObjectId(UniqueObjectId);
CompositorElementId PLATFORM_EXPORT
CompositorElementIdWithNamespace(CompositorElementId element_id,
CompositorElementIdNamespace namespace_id);
CompositorElementId PLATFORM_EXPORT CompositorElementIdFromDOMNodeId(DOMNodeId);
CompositorElementIdNamespace PLATFORM_EXPORT
NamespaceFromCompositorElementId(CompositorElementId);
DOMNodeId PLATFORM_EXPORT DOMNodeIdFromCompositorElementId(CompositorElementId);
}
namespace WTF {
template <>
struct PLATFORM_EXPORT HashTraits<blink::CompositorElementId>
: GenericHashTraits<blink::CompositorElementId> { … };
}
#endif