chromium/out/Default/gen/services/webnn/public/mojom/webnn_graph.mojom-shared.h

// services/webnn/public/mojom/webnn_graph.mojom-shared.h is auto generated by mojom_bindings_generator.py, do not edit

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

#ifndef SERVICES_WEBNN_PUBLIC_MOJOM_WEBNN_GRAPH_MOJOM_SHARED_H_
#define SERVICES_WEBNN_PUBLIC_MOJOM_WEBNN_GRAPH_MOJOM_SHARED_H_

#include <stdint.h>

#include <functional>
#include <iosfwd>
#include <type_traits>
#include <utility>
#include "mojo/public/cpp/bindings/array_data_view.h"
#include "mojo/public/cpp/bindings/enum_traits.h"
#include "mojo/public/cpp/bindings/interface_data_view.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/map_data_view.h"
#include "mojo/public/cpp/bindings/string_data_view.h"

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

#include "services/webnn/public/mojom/webnn_graph.mojom-shared-internal.h"
#include "mojo/public/mojom/base/big_buffer.mojom-shared.h"
#include "services/webnn/public/mojom/webnn_context_properties.mojom-shared.h"
#include "services/webnn/public/mojom/webnn_error.mojom-shared.h"
#include "third_party/blink/public/mojom/tokens/tokens.mojom-shared.h"
#include "mojo/public/cpp/bindings/lib/interface_serialization.h"
#include "mojo/public/cpp/system/data_pipe.h"


#include "base/component_export.h"




namespace webnn::mojom {
class OperandDescriptorDataView;

class OperandDataView;

class ArgMinMaxDataView;

class BatchNormalizationDataView;

class ClampDataView;

class ConcatDataView;

class Size2dDataView;

class Padding2dDataView;

class Conv2dDataView;

class ElementWiseBinaryDataView;

class ElementWiseUnaryDataView;

class ExpandDataView;

class ConstantPaddingDataView;

class EdgePaddingDataView;

class ReflectionPaddingDataView;

class SymmetricPaddingDataView;

class InstanceNormalizationDataView;

class MatmulDataView;

class PadDataView;

class ReduceDataView;

class Pool2dDataView;

class StartAndSizeDataView;

class SliceDataView;

class EluDataView;

class GatherDataView;

class GatherElementsDataView;

class GeluDataView;

class GruDataView;

class GruCellDataView;

class GemmDataView;

class HardSigmoidDataView;

class HardSwishDataView;

class LayerNormalizationDataView;

class LeakyReluDataView;

class LinearDataView;

class LstmDataView;

class LstmCellDataView;

class PreluDataView;

class ReluDataView;

class ReshapeDataView;

class SigmoidDataView;

class SoftmaxDataView;

class SoftplusDataView;

class SoftsignDataView;

class SplitDataView;

class TanhDataView;

class TransposeDataView;

class TriangularDataView;

class Resample2dDataView;

class WhereDataView;

class GraphInfoDataView;

class PaddingModeDataView;
class OperationDataView;
class ComputeResultDataView;


}  // webnn::mojom

namespace mojo {
namespace internal {

template <>
struct MojomTypeTraits<::webnn::mojom::OperandDescriptorDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::OperandDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::ArgMinMaxDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::BatchNormalizationDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::ClampDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::ConcatDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::Size2dDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::Padding2dDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::Conv2dDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::ElementWiseBinaryDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::ElementWiseUnaryDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::ExpandDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::ConstantPaddingDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::EdgePaddingDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::ReflectionPaddingDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::SymmetricPaddingDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::InstanceNormalizationDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::MatmulDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::PadDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::ReduceDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::Pool2dDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::StartAndSizeDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::SliceDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::EluDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::GatherDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::GatherElementsDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::GeluDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::GruDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::GruCellDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::GemmDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::HardSigmoidDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::HardSwishDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::LayerNormalizationDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::LeakyReluDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::LinearDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::LstmDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::LstmCellDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::PreluDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::ReluDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::ReshapeDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::SigmoidDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::SoftmaxDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::SoftplusDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::SoftsignDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::SplitDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::TanhDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::TransposeDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::TriangularDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::Resample2dDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::WhereDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::GraphInfoDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::PaddingModeDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::OperationDataView> {};

template <>
struct MojomTypeTraits<::webnn::mojom::ComputeResultDataView> {};

}  // namespace internal
}  // namespace mojo


namespace webnnmojom  // webnn::mojom

namespace std {

template <>
struct hash<::webnn::mojom::DataType>
    : public mojo::internal::EnumHashImpl<::webnn::mojom::DataType> {};

template <>
struct hash<::webnn::mojom::RecurrentNetworkActivation>
    : public mojo::internal::EnumHashImpl<::webnn::mojom::RecurrentNetworkActivation> {};

template <>
struct hash<::webnn::mojom::RecurrentNetworkDirection>
    : public mojo::internal::EnumHashImpl<::webnn::mojom::RecurrentNetworkDirection> {};

template <>
struct hash<::webnn::mojom::GruWeightLayout>
    : public mojo::internal::EnumHashImpl<::webnn::mojom::GruWeightLayout> {};

template <>
struct hash<::webnn::mojom::LstmWeightLayout>
    : public mojo::internal::EnumHashImpl<::webnn::mojom::LstmWeightLayout> {};

template <>
struct hash<::webnn::mojom::Operand_Kind>
    : public mojo::internal::EnumHashImpl<::webnn::mojom::Operand_Kind> {};

template <>
struct hash<::webnn::mojom::ArgMinMax_Kind>
    : public mojo::internal::EnumHashImpl<::webnn::mojom::ArgMinMax_Kind> {};

template <>
struct hash<::webnn::mojom::Conv2d_Kind>
    : public mojo::internal::EnumHashImpl<::webnn::mojom::Conv2d_Kind> {};

template <>
struct hash<::webnn::mojom::ElementWiseBinary_Kind>
    : public mojo::internal::EnumHashImpl<::webnn::mojom::ElementWiseBinary_Kind> {};

template <>
struct hash<::webnn::mojom::ElementWiseUnary_Kind>
    : public mojo::internal::EnumHashImpl<::webnn::mojom::ElementWiseUnary_Kind> {};

template <>
struct hash<::webnn::mojom::Reduce_Kind>
    : public mojo::internal::EnumHashImpl<::webnn::mojom::Reduce_Kind> {};

template <>
struct hash<::webnn::mojom::Pool2d_Kind>
    : public mojo::internal::EnumHashImpl<::webnn::mojom::Pool2d_Kind> {};

template <>
struct hash<::webnn::mojom::Resample2d_InterpolationMode>
    : public mojo::internal::EnumHashImpl<::webnn::mojom::Resample2d_InterpolationMode> {};

}  // namespace std

namespace mojo {


namespace internal {

Serializer< ::webnn::mojom::DataType, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::RecurrentNetworkActivation, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::RecurrentNetworkDirection, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::GruWeightLayout, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::LstmWeightLayout, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::Operand_Kind, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::ArgMinMax_Kind, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::Conv2d_Kind, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::ElementWiseBinary_Kind, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::ElementWiseUnary_Kind, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::Reduce_Kind, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::Pool2d_Kind, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::Resample2d_InterpolationMode, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::OperandDescriptorDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::OperandDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::ArgMinMaxDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::BatchNormalizationDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::ClampDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::ConcatDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::Size2dDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::Padding2dDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::Conv2dDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::ElementWiseBinaryDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::ElementWiseUnaryDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::ExpandDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::ConstantPaddingDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::EdgePaddingDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::ReflectionPaddingDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::SymmetricPaddingDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::InstanceNormalizationDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::MatmulDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::PadDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::ReduceDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::Pool2dDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::StartAndSizeDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::SliceDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::EluDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::GatherDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::GatherElementsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::GeluDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::GruDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::GruCellDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::GemmDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::HardSigmoidDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::HardSwishDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::LayerNormalizationDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::LeakyReluDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::LinearDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::LstmDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::LstmCellDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::PreluDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::ReluDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::ReshapeDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::SigmoidDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::SoftmaxDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::SoftplusDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::SoftsignDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::SplitDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::TanhDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::TransposeDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::TriangularDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::Resample2dDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::WhereDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::GraphInfoDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::PaddingModeDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::OperationDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::webnn::mojom::ComputeResultDataView, MaybeConstUserType>;

}  // namespace internal

}  // namespace mojo


namespace webnn::mojom {

inline void OperandDescriptorDataView::GetShapeDataView(
    mojo::ArrayDataView<uint32_t>* output) {}


inline void OperandDataView::GetDescriptorDataView(
    OperandDescriptorDataView* output) {}
inline void OperandDataView::GetNameDataView(
    mojo::StringDataView* output) {}


inline void ArgMinMaxDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void BatchNormalizationDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void ClampDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void ConcatDataView::GetInputOperandIdsDataView(
    mojo::ArrayDataView<uint64_t>* output) {}
inline void ConcatDataView::GetLabelDataView(
    mojo::StringDataView* output) {}




inline void Padding2dDataView::GetBeginningDataView(
    Size2dDataView* output) {}
inline void Padding2dDataView::GetEndingDataView(
    Size2dDataView* output) {}


inline void Conv2dDataView::GetPaddingDataView(
    Padding2dDataView* output) {}
inline void Conv2dDataView::GetStridesDataView(
    Size2dDataView* output) {}
inline void Conv2dDataView::GetDilationsDataView(
    Size2dDataView* output) {}
inline void Conv2dDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void ElementWiseBinaryDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void ElementWiseUnaryDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void ExpandDataView::GetLabelDataView(
    mojo::StringDataView* output) {}










inline void InstanceNormalizationDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void MatmulDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void PadDataView::GetBeginningPaddingDataView(
    mojo::ArrayDataView<uint32_t>* output) {}
inline void PadDataView::GetEndingPaddingDataView(
    mojo::ArrayDataView<uint32_t>* output) {}
inline void PadDataView::GetModeDataView(
    PaddingModeDataView* output) {}
inline void PadDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void ReduceDataView::GetAxesDataView(
    mojo::ArrayDataView<uint32_t>* output) {}
inline void ReduceDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void Pool2dDataView::GetWindowDimensionsDataView(
    Size2dDataView* output) {}
inline void Pool2dDataView::GetPaddingDataView(
    Padding2dDataView* output) {}
inline void Pool2dDataView::GetStridesDataView(
    Size2dDataView* output) {}
inline void Pool2dDataView::GetDilationsDataView(
    Size2dDataView* output) {}
inline void Pool2dDataView::GetLabelDataView(
    mojo::StringDataView* output) {}




inline void SliceDataView::GetStartsAndSizesDataView(
    mojo::ArrayDataView<StartAndSizeDataView>* output) {}
inline void SliceDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void EluDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void GatherDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void GatherElementsDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void GeluDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void GruDataView::GetOutputOperandIdsDataView(
    mojo::ArrayDataView<uint64_t>* output) {}
inline void GruDataView::GetActivationsDataView(
    mojo::ArrayDataView<RecurrentNetworkActivation>* output) {}
inline void GruDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void GruCellDataView::GetActivationsDataView(
    mojo::ArrayDataView<RecurrentNetworkActivation>* output) {}
inline void GruCellDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void GemmDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void HardSigmoidDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void HardSwishDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void LayerNormalizationDataView::GetAxesDataView(
    mojo::ArrayDataView<uint32_t>* output) {}
inline void LayerNormalizationDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void LeakyReluDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void LinearDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void LstmDataView::GetOutputOperandIdsDataView(
    mojo::ArrayDataView<uint64_t>* output) {}
inline void LstmDataView::GetActivationsDataView(
    mojo::ArrayDataView<RecurrentNetworkActivation>* output) {}
inline void LstmDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void LstmCellDataView::GetOutputOperandIdsDataView(
    mojo::ArrayDataView<uint64_t>* output) {}
inline void LstmCellDataView::GetActivationsDataView(
    mojo::ArrayDataView<RecurrentNetworkActivation>* output) {}
inline void LstmCellDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void PreluDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void ReluDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void ReshapeDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void SigmoidDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void SoftmaxDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void SoftplusDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void SoftsignDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void SplitDataView::GetOutputOperandIdsDataView(
    mojo::ArrayDataView<uint64_t>* output) {}
inline void SplitDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void TanhDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void TransposeDataView::GetPermutationDataView(
    mojo::ArrayDataView<uint32_t>* output) {}
inline void TransposeDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void TriangularDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void Resample2dDataView::GetScalesDataView(
    mojo::ArrayDataView<float>* output) {}
inline void Resample2dDataView::GetAxesDataView(
    mojo::ArrayDataView<uint32_t>* output) {}
inline void Resample2dDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void WhereDataView::GetLabelDataView(
    mojo::StringDataView* output) {}


inline void GraphInfoDataView::GetIdToOperandMapDataView(
    mojo::MapDataView<uint64_t, OperandDataView>* output) {}
inline void GraphInfoDataView::GetInputOperandsDataView(
    mojo::ArrayDataView<uint64_t>* output) {}
inline void GraphInfoDataView::GetOutputOperandsDataView(
    mojo::ArrayDataView<uint64_t>* output) {}
inline void GraphInfoDataView::GetOperationsDataView(
    mojo::ArrayDataView<OperationDataView>* output) {}
inline void GraphInfoDataView::GetConstantIdToBufferMapDataView(
    mojo::MapDataView<uint64_t, ::mojo_base::mojom::BigBufferDataView>* output) {}


inline void PaddingModeDataView::GetConstantDataView(
    ConstantPaddingDataView* output) const {}
inline void PaddingModeDataView::GetEdgeDataView(
    EdgePaddingDataView* output) const {}
inline void PaddingModeDataView::GetReflectionDataView(
    ReflectionPaddingDataView* output) const {}
inline void PaddingModeDataView::GetSymmetricDataView(
    SymmetricPaddingDataView* output) const {}

inline void OperationDataView::GetArgMinMaxDataView(
    ArgMinMaxDataView* output) const {}
inline void OperationDataView::GetBatchNormalizationDataView(
    BatchNormalizationDataView* output) const {}
inline void OperationDataView::GetClampDataView(
    ClampDataView* output) const {}
inline void OperationDataView::GetConcatDataView(
    ConcatDataView* output) const {}
inline void OperationDataView::GetConv2dDataView(
    Conv2dDataView* output) const {}
inline void OperationDataView::GetElementWiseBinaryDataView(
    ElementWiseBinaryDataView* output) const {}
inline void OperationDataView::GetEluDataView(
    EluDataView* output) const {}
inline void OperationDataView::GetElementWiseUnaryDataView(
    ElementWiseUnaryDataView* output) const {}
inline void OperationDataView::GetExpandDataView(
    ExpandDataView* output) const {}
inline void OperationDataView::GetGatherDataView(
    GatherDataView* output) const {}
inline void OperationDataView::GetGatherElementsDataView(
    GatherElementsDataView* output) const {}
inline void OperationDataView::GetGeluDataView(
    GeluDataView* output) const {}
inline void OperationDataView::GetGemmDataView(
    GemmDataView* output) const {}
inline void OperationDataView::GetGruDataView(
    GruDataView* output) const {}
inline void OperationDataView::GetGruCellDataView(
    GruCellDataView* output) const {}
inline void OperationDataView::GetHardSigmoidDataView(
    HardSigmoidDataView* output) const {}
inline void OperationDataView::GetHardSwishDataView(
    HardSwishDataView* output) const {}
inline void OperationDataView::GetLayerNormalizationDataView(
    LayerNormalizationDataView* output) const {}
inline void OperationDataView::GetInstanceNormalizationDataView(
    InstanceNormalizationDataView* output) const {}
inline void OperationDataView::GetLeakyReluDataView(
    LeakyReluDataView* output) const {}
inline void OperationDataView::GetLinearDataView(
    LinearDataView* output) const {}
inline void OperationDataView::GetLstmDataView(
    LstmDataView* output) const {}
inline void OperationDataView::GetLstmCellDataView(
    LstmCellDataView* output) const {}
inline void OperationDataView::GetMatmulDataView(
    MatmulDataView* output) const {}
inline void OperationDataView::GetPadDataView(
    PadDataView* output) const {}
inline void OperationDataView::GetPool2dDataView(
    Pool2dDataView* output) const {}
inline void OperationDataView::GetPreluDataView(
    PreluDataView* output) const {}
inline void OperationDataView::GetReduceDataView(
    ReduceDataView* output) const {}
inline void OperationDataView::GetReluDataView(
    ReluDataView* output) const {}
inline void OperationDataView::GetResample2dDataView(
    Resample2dDataView* output) const {}
inline void OperationDataView::GetReshapeDataView(
    ReshapeDataView* output) const {}
inline void OperationDataView::GetSigmoidDataView(
    SigmoidDataView* output) const {}
inline void OperationDataView::GetSliceDataView(
    SliceDataView* output) const {}
inline void OperationDataView::GetSoftmaxDataView(
    SoftmaxDataView* output) const {}
inline void OperationDataView::GetSoftplusDataView(
    SoftplusDataView* output) const {}
inline void OperationDataView::GetSoftsignDataView(
    SoftsignDataView* output) const {}
inline void OperationDataView::GetSplitDataView(
    SplitDataView* output) const {}
inline void OperationDataView::GetTanhDataView(
    TanhDataView* output) const {}
inline void OperationDataView::GetTransposeDataView(
    TransposeDataView* output) const {}
inline void OperationDataView::GetTriangularDataView(
    TriangularDataView* output) const {}
inline void OperationDataView::GetWhereDataView(
    WhereDataView* output) const {}

inline void ComputeResultDataView::GetNamedOutputsDataView(
    mojo::MapDataView<mojo::StringDataView, ::mojo_base::mojom::BigBufferDataView>* output) const {}
inline void ComputeResultDataView::GetErrorDataView(
    ::webnn::mojom::ErrorDataView* output) const {}


}  // webnn::mojom

// Declare TraceFormatTraits for enums, which should be defined in ::perfetto
// namespace.

namespace perfetto {

template <>
struct COMPONENT_EXPORT(WEBNN_MOJOM_SHARED) TraceFormatTraits<::webnn::mojom::DataType> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(WEBNN_MOJOM_SHARED) TraceFormatTraits<::webnn::mojom::RecurrentNetworkActivation> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(WEBNN_MOJOM_SHARED) TraceFormatTraits<::webnn::mojom::RecurrentNetworkDirection> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(WEBNN_MOJOM_SHARED) TraceFormatTraits<::webnn::mojom::GruWeightLayout> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(WEBNN_MOJOM_SHARED) TraceFormatTraits<::webnn::mojom::LstmWeightLayout> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(WEBNN_MOJOM_SHARED) TraceFormatTraits<::webnn::mojom::Operand_Kind> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(WEBNN_MOJOM_SHARED) TraceFormatTraits<::webnn::mojom::ArgMinMax_Kind> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(WEBNN_MOJOM_SHARED) TraceFormatTraits<::webnn::mojom::Conv2d_Kind> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(WEBNN_MOJOM_SHARED) TraceFormatTraits<::webnn::mojom::ElementWiseBinary_Kind> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(WEBNN_MOJOM_SHARED) TraceFormatTraits<::webnn::mojom::ElementWiseUnary_Kind> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(WEBNN_MOJOM_SHARED) TraceFormatTraits<::webnn::mojom::Reduce_Kind> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(WEBNN_MOJOM_SHARED) TraceFormatTraits<::webnn::mojom::Pool2d_Kind> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(WEBNN_MOJOM_SHARED) TraceFormatTraits<::webnn::mojom::Resample2d_InterpolationMode> {};

} // namespace perfetto

#endif  // SERVICES_WEBNN_PUBLIC_MOJOM_WEBNN_GRAPH_MOJOM_SHARED_H_