// ui/accessibility/mojom/ax_node_data.mojom-send-validation.h is auto generated by mojom_bindings_generator.py, do not edit

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

#ifndef UI_ACCESSIBILITY_MOJOM_AX_NODE_DATA_MOJOM_SEND_VALIDATION_H_
#define UI_ACCESSIBILITY_MOJOM_AX_NODE_DATA_MOJOM_SEND_VALIDATION_H_

#include "ui/accessibility/mojom/ax_node_data.mojom-shared-internal.h"
#include "ui/accessibility/ax_enums.mojom-shared.h"
#include "ui/accessibility/mojom/ax_relative_bounds.mojom-shared.h"

#include "ui/accessibility/mojom/ax_node_data.mojom-data-view.h"

#include "mojo/public/cpp/bindings/lib/send_validation_type.h"
#include "mojo/public/cpp/bindings/lib/send_validation.h"

namespace mojo::internal {

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::ax::mojom::AXBitsetDataDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::ax::mojom::AXBitsetDataDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::ax::mojom::internal::AXBitsetData_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      fragment->set_bits = Traits::set_bits(input);

      fragment->values = Traits::values(input);
  }
};

template <typename MaybeConstUserType, mojo::internal::SendValidation send_validation>
struct SendValidationSerializer<::ax::mojom::AXNodeDataDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::ax::mojom::AXNodeDataDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::ax::mojom::internal::AXNodeData_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

      fragment->id = Traits::id(input);

      
      mojo::internal::Serialize<::ax::mojom::Role>(
        Traits::role(input),
        &fragment->role);

      fragment->state = Traits::state(input);

      fragment->actions = Traits::actions(input);

      decltype(Traits::string_attributes(input)) in_string_attributes = Traits::string_attributes(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->string_attributes)::BaseType>
          string_attributes_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& string_attributes_validate_params =
          mojo::internal::GetMapValidator<*&mojo::internal::GetArrayOfEnumsValidator<0, false, ::ax::mojom::internal::StringAttribute_Data::Validate>(), *&mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>()>();
      
      mojo::internal::Serialize<mojo::MapDataView<::ax::mojom::StringAttribute, mojo::StringDataView>, send_validation>(
        in_string_attributes,
        string_attributes_fragment,
        &string_attributes_validate_params);

      fragment->string_attributes.Set(
          string_attributes_fragment.is_null() ? nullptr : string_attributes_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->string_attributes.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null string_attributes in AXNodeData struct");

      decltype(Traits::int_attributes(input)) in_int_attributes = Traits::int_attributes(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->int_attributes)::BaseType>
          int_attributes_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& int_attributes_validate_params =
          mojo::internal::GetMapValidator<*&mojo::internal::GetArrayOfEnumsValidator<0, false, ::ax::mojom::internal::IntAttribute_Data::Validate>(), *&mojo::internal::GetArrayValidator<0, false, nullptr>()>();
      
      mojo::internal::Serialize<mojo::MapDataView<::ax::mojom::IntAttribute, int32_t>, send_validation>(
        in_int_attributes,
        int_attributes_fragment,
        &int_attributes_validate_params);

      fragment->int_attributes.Set(
          int_attributes_fragment.is_null() ? nullptr : int_attributes_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->int_attributes.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null int_attributes in AXNodeData struct");

      decltype(Traits::float_attributes(input)) in_float_attributes = Traits::float_attributes(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->float_attributes)::BaseType>
          float_attributes_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& float_attributes_validate_params =
          mojo::internal::GetMapValidator<*&mojo::internal::GetArrayOfEnumsValidator<0, false, ::ax::mojom::internal::FloatAttribute_Data::Validate>(), *&mojo::internal::GetArrayValidator<0, false, nullptr>()>();
      
      mojo::internal::Serialize<mojo::MapDataView<::ax::mojom::FloatAttribute, float>, send_validation>(
        in_float_attributes,
        float_attributes_fragment,
        &float_attributes_validate_params);

      fragment->float_attributes.Set(
          float_attributes_fragment.is_null() ? nullptr : float_attributes_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->float_attributes.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null float_attributes in AXNodeData struct");

      decltype(Traits::intlist_attributes(input)) in_intlist_attributes = Traits::intlist_attributes(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->intlist_attributes)::BaseType>
          intlist_attributes_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& intlist_attributes_validate_params =
          mojo::internal::GetMapValidator<*&mojo::internal::GetArrayOfEnumsValidator<0, false, ::ax::mojom::internal::IntListAttribute_Data::Validate>(), *&mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>()>();
      
      mojo::internal::Serialize<mojo::MapDataView<::ax::mojom::IntListAttribute, mojo::ArrayDataView<int32_t>>, send_validation>(
        in_intlist_attributes,
        intlist_attributes_fragment,
        &intlist_attributes_validate_params);

      fragment->intlist_attributes.Set(
          intlist_attributes_fragment.is_null() ? nullptr : intlist_attributes_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->intlist_attributes.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null intlist_attributes in AXNodeData struct");

      decltype(Traits::stringlist_attributes(input)) in_stringlist_attributes = Traits::stringlist_attributes(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->stringlist_attributes)::BaseType>
          stringlist_attributes_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& stringlist_attributes_validate_params =
          mojo::internal::GetMapValidator<*&mojo::internal::GetArrayOfEnumsValidator<0, false, ::ax::mojom::internal::StringListAttribute_Data::Validate>(), *&mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>()>()>();
      
      mojo::internal::Serialize<mojo::MapDataView<::ax::mojom::StringListAttribute, mojo::ArrayDataView<mojo::StringDataView>>, send_validation>(
        in_stringlist_attributes,
        stringlist_attributes_fragment,
        &stringlist_attributes_validate_params);

      fragment->stringlist_attributes.Set(
          stringlist_attributes_fragment.is_null() ? nullptr : stringlist_attributes_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->stringlist_attributes.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null stringlist_attributes in AXNodeData struct");

      decltype(Traits::html_attributes(input)) in_html_attributes = Traits::html_attributes(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->html_attributes)::BaseType>
          html_attributes_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& html_attributes_validate_params =
          mojo::internal::GetMapValidator<*&mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>(), *&mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>()>();
      
      mojo::internal::Serialize<mojo::MapDataView<mojo::StringDataView, mojo::StringDataView>, send_validation>(
        in_html_attributes,
        html_attributes_fragment,
        &html_attributes_validate_params);

      fragment->html_attributes.Set(
          html_attributes_fragment.is_null() ? nullptr : html_attributes_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->html_attributes.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null html_attributes in AXNodeData struct");

      decltype(Traits::child_ids(input)) in_child_ids = Traits::child_ids(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->child_ids)::BaseType>
          child_ids_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& child_ids_validate_params =
          mojo::internal::GetArrayValidator<0, false, nullptr>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<int32_t>, send_validation>(
        in_child_ids,
        child_ids_fragment,
        &child_ids_validate_params);

      fragment->child_ids.Set(
          child_ids_fragment.is_null() ? nullptr : child_ids_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->child_ids.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null child_ids in AXNodeData struct");

      decltype(Traits::relative_bounds(input)) in_relative_bounds = Traits::relative_bounds(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->relative_bounds)::BaseType> relative_bounds_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::ax::mojom::AXRelativeBoundsDataView, send_validation>(
        in_relative_bounds,
        relative_bounds_fragment);

      fragment->relative_bounds.Set(
          relative_bounds_fragment.is_null() ? nullptr : relative_bounds_fragment.data());

      
      MOJO_INTERNAL_CHECK_SERIALIZATION(
        send_validation,
        !(fragment->relative_bounds.is_null()),
        mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
        "null relative_bounds in AXNodeData struct");

      decltype(Traits::bool_attributes_data(input)) in_bool_attributes_data = Traits::bool_attributes_data(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->bool_attributes_data)::BaseType> bool_attributes_data_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::ax::mojom::AXBitsetDataDataView, send_validation>(
        in_bool_attributes_data,
        bool_attributes_data_fragment);

      fragment->bool_attributes_data.Set(
          bool_attributes_data_fragment.is_null() ? nullptr : bool_attributes_data_fragment.data());
  }
};

}  // namespace mojo::internal

#endif  // UI_ACCESSIBILITY_MOJOM_AX_NODE_DATA_MOJOM_SEND_VALIDATION_H_