chromium/out/Default/gen/third_party/blink/public/mojom/devtools/inspector_issue.mojom-blink.h

// third_party/blink/public/mojom/devtools/inspector_issue.mojom-blink.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef THIRD_PARTY_BLINK_PUBLIC_MOJOM_DEVTOOLS_INSPECTOR_ISSUE_MOJOM_BLINK_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_DEVTOOLS_INSPECTOR_ISSUE_MOJOM_BLINK_H_

#include <stdint.h>

#include <limits>
#include <optional>
#include <type_traits>
#include <utility>

#include "base/types/cxx23_to_underlying.h"
#include "mojo/public/cpp/bindings/clone_traits.h"
#include "mojo/public/cpp/bindings/equals_traits.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/struct_ptr.h"
#include "mojo/public/cpp/bindings/struct_traits.h"
#include "mojo/public/cpp/bindings/union_traits.h"

#include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h"

#include "third_party/blink/public/mojom/devtools/inspector_issue.mojom-features.h"  // IWYU pragma: export
#include "third_party/blink/public/mojom/devtools/inspector_issue.mojom-shared.h"  // IWYU pragma: export
#include "third_party/blink/public/mojom/devtools/inspector_issue.mojom-blink-forward.h"  // IWYU pragma: export
#include "url/mojom/url.mojom-blink.h"
#include "services/network/public/mojom/cookie_manager.mojom-blink-forward.h"
#include "services/network/public/mojom/blocked_by_response_reason.mojom-blink-forward.h"
#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink-forward.h"
#include "mojo/public/mojom/base/unguessable_token.mojom-blink.h"

#include "mojo/public/cpp/bindings/lib/wtf_clone_equals_util.h"
#include "mojo/public/cpp/bindings/lib/wtf_hash_util.h"
#include "third_party/blink/renderer/platform/wtf/hash_functions.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"




#include "third_party/blink/renderer/platform/platform_export.h"




namespace blink::mojom::blink {





class PLATFORM_EXPORT AffectedCookie {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, AffectedCookie::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, AffectedCookie::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, AffectedCookie::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, AffectedCookie::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT AffectedRequest {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, AffectedRequest::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, AffectedRequest::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, AffectedRequest::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, AffectedRequest::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT AffectedFrame {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, AffectedFrame::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, AffectedFrame::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, AffectedFrame::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, AffectedFrame::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT AffectedLocation {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, AffectedLocation::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, AffectedLocation::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, AffectedLocation::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, AffectedLocation::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}













class PLATFORM_EXPORT FederatedAuthRequestIssueDetails {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, FederatedAuthRequestIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, FederatedAuthRequestIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, FederatedAuthRequestIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, FederatedAuthRequestIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT FederatedAuthUserInfoRequestIssueDetails {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, FederatedAuthUserInfoRequestIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, FederatedAuthUserInfoRequestIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, FederatedAuthUserInfoRequestIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, FederatedAuthUserInfoRequestIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}







class PLATFORM_EXPORT GenericIssueDetails {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, GenericIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, GenericIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, GenericIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, GenericIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}














class PLATFORM_EXPORT BlockedByResponseIssueDetails {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, BlockedByResponseIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, BlockedByResponseIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, BlockedByResponseIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, BlockedByResponseIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT HeavyAdIssueDetails {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, HeavyAdIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, HeavyAdIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, HeavyAdIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, HeavyAdIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT AttributionReportingIssueDetails {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, AttributionReportingIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, AttributionReportingIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, AttributionReportingIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, AttributionReportingIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT MixedContentIssueDetails {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, MixedContentIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, MixedContentIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, MixedContentIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, MixedContentIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT ContentSecurityPolicyIssueDetails {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, ContentSecurityPolicyIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, ContentSecurityPolicyIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, ContentSecurityPolicyIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, ContentSecurityPolicyIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT CookieIssueDetails {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, CookieIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, CookieIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, CookieIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, CookieIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT SharedArrayBufferIssueDetails {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, SharedArrayBufferIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, SharedArrayBufferIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, SharedArrayBufferIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, SharedArrayBufferIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT LowTextContrastIssue {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, LowTextContrastIssue::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, LowTextContrastIssue::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, LowTextContrastIssue::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, LowTextContrastIssue::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}







class PLATFORM_EXPORT BounceTrackingIssueDetails {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, BounceTrackingIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, BounceTrackingIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, BounceTrackingIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, BounceTrackingIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT CookieDeprecationMetadataIssueDetails {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, CookieDeprecationMetadataIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, CookieDeprecationMetadataIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, CookieDeprecationMetadataIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, CookieDeprecationMetadataIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}






class PLATFORM_EXPORT DeprecationIssueDetails {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, DeprecationIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, DeprecationIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, DeprecationIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, DeprecationIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT InspectorIssueDetails {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, InspectorIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, InspectorIssueDetails::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, InspectorIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, InspectorIssueDetails::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}





class PLATFORM_EXPORT InspectorIssueInfo {};

// The comparison operators are templates, so they are only instantiated if they
// are used. Thus, the bindings generator does not need to know whether
// comparison operators are available for members.
template <typename T, InspectorIssueInfo::EnableIfSame<T>* = nullptr>
bool operator<(const T& lhs, const T& rhs);

template <typename T, InspectorIssueInfo::EnableIfSame<T>* = nullptr>
bool operator<=(const T& lhs, const T& rhs) {}

template <typename T, InspectorIssueInfo::EnableIfSame<T>* = nullptr>
bool operator>(const T& lhs, const T& rhs) {}

template <typename T, InspectorIssueInfo::EnableIfSame<T>* = nullptr>
bool operator>=(const T& lhs, const T& rhs) {}

template <typename StructPtrType>
AffectedCookiePtr AffectedCookie::Clone() const {}

template <typename T, AffectedCookie::EnableIfSame<T>*>
bool AffectedCookie::Equals(const T& other_struct) const {}

template <typename T, AffectedCookie::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
AffectedRequestPtr AffectedRequest::Clone() const {}

template <typename T, AffectedRequest::EnableIfSame<T>*>
bool AffectedRequest::Equals(const T& other_struct) const {}

template <typename T, AffectedRequest::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
AffectedFramePtr AffectedFrame::Clone() const {}

template <typename T, AffectedFrame::EnableIfSame<T>*>
bool AffectedFrame::Equals(const T& other_struct) const {}

template <typename T, AffectedFrame::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
AffectedLocationPtr AffectedLocation::Clone() const {}

template <typename T, AffectedLocation::EnableIfSame<T>*>
bool AffectedLocation::Equals(const T& other_struct) const {}

template <typename T, AffectedLocation::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
BlockedByResponseIssueDetailsPtr BlockedByResponseIssueDetails::Clone() const {}

template <typename T, BlockedByResponseIssueDetails::EnableIfSame<T>*>
bool BlockedByResponseIssueDetails::Equals(const T& other_struct) const {}

template <typename T, BlockedByResponseIssueDetails::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
HeavyAdIssueDetailsPtr HeavyAdIssueDetails::Clone() const {}

template <typename T, HeavyAdIssueDetails::EnableIfSame<T>*>
bool HeavyAdIssueDetails::Equals(const T& other_struct) const {}

template <typename T, HeavyAdIssueDetails::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
AttributionReportingIssueDetailsPtr AttributionReportingIssueDetails::Clone() const {}

template <typename T, AttributionReportingIssueDetails::EnableIfSame<T>*>
bool AttributionReportingIssueDetails::Equals(const T& other_struct) const {}

template <typename T, AttributionReportingIssueDetails::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
MixedContentIssueDetailsPtr MixedContentIssueDetails::Clone() const {}

template <typename T, MixedContentIssueDetails::EnableIfSame<T>*>
bool MixedContentIssueDetails::Equals(const T& other_struct) const {}

template <typename T, MixedContentIssueDetails::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
ContentSecurityPolicyIssueDetailsPtr ContentSecurityPolicyIssueDetails::Clone() const {}

template <typename T, ContentSecurityPolicyIssueDetails::EnableIfSame<T>*>
bool ContentSecurityPolicyIssueDetails::Equals(const T& other_struct) const {}

template <typename T, ContentSecurityPolicyIssueDetails::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
CookieIssueDetailsPtr CookieIssueDetails::Clone() const {}

template <typename T, CookieIssueDetails::EnableIfSame<T>*>
bool CookieIssueDetails::Equals(const T& other_struct) const {}

template <typename T, CookieIssueDetails::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
SharedArrayBufferIssueDetailsPtr SharedArrayBufferIssueDetails::Clone() const {}

template <typename T, SharedArrayBufferIssueDetails::EnableIfSame<T>*>
bool SharedArrayBufferIssueDetails::Equals(const T& other_struct) const {}

template <typename T, SharedArrayBufferIssueDetails::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
LowTextContrastIssuePtr LowTextContrastIssue::Clone() const {}

template <typename T, LowTextContrastIssue::EnableIfSame<T>*>
bool LowTextContrastIssue::Equals(const T& other_struct) const {}

template <typename T, LowTextContrastIssue::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
FederatedAuthRequestIssueDetailsPtr FederatedAuthRequestIssueDetails::Clone() const {}

template <typename T, FederatedAuthRequestIssueDetails::EnableIfSame<T>*>
bool FederatedAuthRequestIssueDetails::Equals(const T& other_struct) const {}

template <typename T, FederatedAuthRequestIssueDetails::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
FederatedAuthUserInfoRequestIssueDetailsPtr FederatedAuthUserInfoRequestIssueDetails::Clone() const {}

template <typename T, FederatedAuthUserInfoRequestIssueDetails::EnableIfSame<T>*>
bool FederatedAuthUserInfoRequestIssueDetails::Equals(const T& other_struct) const {}

template <typename T, FederatedAuthUserInfoRequestIssueDetails::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
BounceTrackingIssueDetailsPtr BounceTrackingIssueDetails::Clone() const {}

template <typename T, BounceTrackingIssueDetails::EnableIfSame<T>*>
bool BounceTrackingIssueDetails::Equals(const T& other_struct) const {}

template <typename T, BounceTrackingIssueDetails::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
CookieDeprecationMetadataIssueDetailsPtr CookieDeprecationMetadataIssueDetails::Clone() const {}

template <typename T, CookieDeprecationMetadataIssueDetails::EnableIfSame<T>*>
bool CookieDeprecationMetadataIssueDetails::Equals(const T& other_struct) const {}

template <typename T, CookieDeprecationMetadataIssueDetails::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
GenericIssueDetailsPtr GenericIssueDetails::Clone() const {}

template <typename T, GenericIssueDetails::EnableIfSame<T>*>
bool GenericIssueDetails::Equals(const T& other_struct) const {}

template <typename T, GenericIssueDetails::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
DeprecationIssueDetailsPtr DeprecationIssueDetails::Clone() const {}

template <typename T, DeprecationIssueDetails::EnableIfSame<T>*>
bool DeprecationIssueDetails::Equals(const T& other_struct) const {}

template <typename T, DeprecationIssueDetails::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
InspectorIssueDetailsPtr InspectorIssueDetails::Clone() const {}

template <typename T, InspectorIssueDetails::EnableIfSame<T>*>
bool InspectorIssueDetails::Equals(const T& other_struct) const {}

template <typename T, InspectorIssueDetails::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}
template <typename StructPtrType>
InspectorIssueInfoPtr InspectorIssueInfo::Clone() const {}

template <typename T, InspectorIssueInfo::EnableIfSame<T>*>
bool InspectorIssueInfo::Equals(const T& other_struct) const {}

template <typename T, InspectorIssueInfo::EnableIfSame<T>*>
bool operator<(const T& lhs, const T& rhs) {}


}  // blink::mojom::blink

namespace mojo {


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::AffectedCookie::DataView,
                                         ::blink::mojom::blink::AffectedCookiePtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::AffectedRequest::DataView,
                                         ::blink::mojom::blink::AffectedRequestPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::AffectedFrame::DataView,
                                         ::blink::mojom::blink::AffectedFramePtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::AffectedLocation::DataView,
                                         ::blink::mojom::blink::AffectedLocationPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::BlockedByResponseIssueDetails::DataView,
                                         ::blink::mojom::blink::BlockedByResponseIssueDetailsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::HeavyAdIssueDetails::DataView,
                                         ::blink::mojom::blink::HeavyAdIssueDetailsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::AttributionReportingIssueDetails::DataView,
                                         ::blink::mojom::blink::AttributionReportingIssueDetailsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::MixedContentIssueDetails::DataView,
                                         ::blink::mojom::blink::MixedContentIssueDetailsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::ContentSecurityPolicyIssueDetails::DataView,
                                         ::blink::mojom::blink::ContentSecurityPolicyIssueDetailsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::CookieIssueDetails::DataView,
                                         ::blink::mojom::blink::CookieIssueDetailsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::SharedArrayBufferIssueDetails::DataView,
                                         ::blink::mojom::blink::SharedArrayBufferIssueDetailsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::LowTextContrastIssue::DataView,
                                         ::blink::mojom::blink::LowTextContrastIssuePtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::FederatedAuthRequestIssueDetails::DataView,
                                         ::blink::mojom::blink::FederatedAuthRequestIssueDetailsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::FederatedAuthUserInfoRequestIssueDetails::DataView,
                                         ::blink::mojom::blink::FederatedAuthUserInfoRequestIssueDetailsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::BounceTrackingIssueDetails::DataView,
                                         ::blink::mojom::blink::BounceTrackingIssueDetailsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::CookieDeprecationMetadataIssueDetails::DataView,
                                         ::blink::mojom::blink::CookieDeprecationMetadataIssueDetailsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::GenericIssueDetails::DataView,
                                         ::blink::mojom::blink::GenericIssueDetailsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::DeprecationIssueDetails::DataView,
                                         ::blink::mojom::blink::DeprecationIssueDetailsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::InspectorIssueDetails::DataView,
                                         ::blink::mojom::blink::InspectorIssueDetailsPtr> {};


template <>
struct PLATFORM_EXPORT StructTraits<::blink::mojom::blink::InspectorIssueInfo::DataView,
                                         ::blink::mojom::blink::InspectorIssueInfoPtr> {};

}  // namespace mojo

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_DEVTOOLS_INSPECTOR_ISSUE_MOJOM_BLINK_H_