#include <atomic>
#include <mutex>
#include <utility>
#include "absl/strings/str_format.h"
#include "dawn/native/Adapter.h"
#include "dawn/native/Device.h"
#include "dawn/native/ObjectBase.h"
#include "dawn/native/ObjectType_autogen.h"
#include "dawn/native/utils/WGPUHelpers.h"
namespace dawn::native {
static constexpr uint64_t kErrorPayload = …;
static constexpr uint64_t kNotErrorPayload = …;
ErrorMonad::ErrorMonad() : … { … }
ErrorMonad::ErrorMonad(ErrorTag) : … { … }
bool ErrorMonad::IsError() const { … }
ObjectBase::ObjectBase(DeviceBase* device) : … { … }
ObjectBase::ObjectBase(DeviceBase* device, ErrorTag) : … { … }
InstanceBase* ObjectBase::GetInstance() const { … }
DeviceBase* ObjectBase::GetDevice() const { … }
void ApiObjectList::Track(ApiObjectBase* object) { … }
bool ApiObjectList::Untrack(ApiObjectBase* object) { … }
void ApiObjectList::Destroy() { … }
ApiObjectBase::ApiObjectBase(DeviceBase* device, const char* label) : … { … }
ApiObjectBase::ApiObjectBase(DeviceBase* device, ErrorTag tag, const char* label)
: … { … }
ApiObjectBase::ApiObjectBase(DeviceBase* device, LabelNotImplementedTag tag) : … { … }
ApiObjectBase::~ApiObjectBase() { … }
void ApiObjectBase::APISetLabel(const char* label) { … }
void ApiObjectBase::APISetLabel2(std::optional<std::string_view> label) { … }
void ApiObjectBase::SetLabel(std::string label) { … }
const std::string& ApiObjectBase::GetLabel() const { … }
void ApiObjectBase::FormatLabel(absl::FormatSink* s) const { … }
void ApiObjectBase::SetLabelImpl() { … }
bool ApiObjectBase::IsAlive() const { … }
void ApiObjectBase::DeleteThis() { … }
void ApiObjectBase::LockAndDeleteThis() { … }
ApiObjectList* ApiObjectBase::GetObjectTrackingList() { … }
void ApiObjectBase::Destroy() { … }
}