#ifndef SRC_DAWN_NATIVE_TOBACKEND_H_
#define SRC_DAWN_NATIVE_TOBACKEND_H_
#include "dawn/native/Forward.h"
#include "partition_alloc/pointers/raw_ptr.h"
namespace dawn::native {
template <typename T, typename BackendTraits>
struct ToBackendTraits;
ToBackendTraits<PhysicalDeviceBase, BackendTraits>;
ToBackendTraits<BindGroupBase, BackendTraits>;
ToBackendTraits<BindGroupLayoutInternalBase, BackendTraits>;
ToBackendTraits<BufferBase, BackendTraits>;
ToBackendTraits<CommandBufferBase, BackendTraits>;
ToBackendTraits<ComputePipelineBase, BackendTraits>;
ToBackendTraits<DeviceBase, BackendTraits>;
ToBackendTraits<PipelineCacheBase, BackendTraits>;
ToBackendTraits<PipelineLayoutBase, BackendTraits>;
ToBackendTraits<QuerySetBase, BackendTraits>;
ToBackendTraits<QueueBase, BackendTraits>;
ToBackendTraits<RenderPipelineBase, BackendTraits>;
ToBackendTraits<ResourceHeapBase, BackendTraits>;
ToBackendTraits<SamplerBase, BackendTraits>;
ToBackendTraits<ShaderModuleBase, BackendTraits>;
ToBackendTraits<SharedFenceBase, BackendTraits>;
ToBackendTraits<SharedTextureMemoryBase, BackendTraits>;
ToBackendTraits<TextureBase, BackendTraits>;
ToBackendTraits<SwapChainBase, BackendTraits>;
ToBackendTraits<TextureViewBase, BackendTraits>;
template <typename BackendTraits, typename T>
Ref<typename ToBackendTraits<T, BackendTraits>::BackendType>& ToBackendBase(Ref<T>& common) { … }
template <typename BackendTraits, typename T>
Ref<typename ToBackendTraits<T, BackendTraits>::BackendType>&& ToBackendBase(Ref<T>&& common) { … }
template <typename BackendTraits, typename T>
const Ref<typename ToBackendTraits<T, BackendTraits>::BackendType>& ToBackendBase(
const Ref<T>& common) { … }
template <typename BackendTraits, typename T>
typename ToBackendTraits<T, BackendTraits>::BackendType* ToBackendBase(T* common) { … }
template <typename BackendTraits, typename T>
typename ToBackendTraits<T, BackendTraits>::BackendType* ToBackendBase(raw_ptr<T> common) { … }
template <typename BackendTraits, typename T>
const typename ToBackendTraits<T, BackendTraits>::BackendType* ToBackendBase(const T* common) { … }
}
#endif