// chrome/updater/mojom/updater_service.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 CHROME_UPDATER_MOJOM_UPDATER_SERVICE_MOJOM_SEND_VALIDATION_H_
#define CHROME_UPDATER_MOJOM_UPDATER_SERVICE_MOJOM_SEND_VALIDATION_H_

#include "chrome/updater/mojom/updater_service.mojom-shared-internal.h"
#include "mojo/public/mojom/base/file_path.mojom-shared.h"
#include "mojo/public/mojom/base/time.mojom-shared.h"
#include "chrome/enterprise_companion/mojom/policy_fetch_reason.mojom-shared.h"

#include "chrome/updater/mojom/updater_service.mojom-data-view.h"

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

namespace mojo::internal {

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

      decltype(Traits::app_id(input)) in_app_id = Traits::app_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->app_id)::BaseType> app_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_app_id,
        app_id_fragment);

      fragment->app_id.Set(
          app_id_fragment.is_null() ? nullptr : app_id_fragment.data());

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

      decltype(Traits::brand_code(input)) in_brand_code = Traits::brand_code(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->brand_code)::BaseType> brand_code_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_brand_code,
        brand_code_fragment);

      fragment->brand_code.Set(
          brand_code_fragment.is_null() ? nullptr : brand_code_fragment.data());

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

      decltype(Traits::brand_path(input)) in_brand_path = Traits::brand_path(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->brand_path)::BaseType> brand_path_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::FilePathDataView, send_validation>(
        in_brand_path,
        brand_path_fragment);

      fragment->brand_path.Set(
          brand_path_fragment.is_null() ? nullptr : brand_path_fragment.data());

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

      decltype(Traits::ap(input)) in_ap = Traits::ap(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->ap)::BaseType> ap_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_ap,
        ap_fragment);

      fragment->ap.Set(
          ap_fragment.is_null() ? nullptr : ap_fragment.data());

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

      decltype(Traits::version(input)) in_version = Traits::version(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->version)::BaseType> version_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_version,
        version_fragment);

      fragment->version.Set(
          version_fragment.is_null() ? nullptr : version_fragment.data());

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

      decltype(Traits::existence_checker_path(input)) in_existence_checker_path = Traits::existence_checker_path(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->existence_checker_path)::BaseType> existence_checker_path_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::FilePathDataView, send_validation>(
        in_existence_checker_path,
        existence_checker_path_fragment);

      fragment->existence_checker_path.Set(
          existence_checker_path_fragment.is_null() ? nullptr : existence_checker_path_fragment.data());

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

      decltype(Traits::ap_path(input)) in_ap_path = Traits::ap_path(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->ap_path)::BaseType> ap_path_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::FilePathDataView, send_validation>(
        in_ap_path,
        ap_path_fragment);

      fragment->ap_path.Set(
          ap_path_fragment.is_null() ? nullptr : ap_path_fragment.data());

      decltype(Traits::ap_key(input)) in_ap_key = Traits::ap_key(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->ap_key)::BaseType> ap_key_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_ap_key,
        ap_key_fragment);

      fragment->ap_key.Set(
          ap_key_fragment.is_null() ? nullptr : ap_key_fragment.data());

      decltype(Traits::version_path(input)) in_version_path = Traits::version_path(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->version_path)::BaseType> version_path_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::FilePathDataView, send_validation>(
        in_version_path,
        version_path_fragment);

      fragment->version_path.Set(
          version_path_fragment.is_null() ? nullptr : version_path_fragment.data());

      decltype(Traits::version_key(input)) in_version_key = Traits::version_key(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->version_key)::BaseType> version_key_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_version_key,
        version_key_fragment);

      fragment->version_key.Set(
          version_key_fragment.is_null() ? nullptr : version_key_fragment.data());

      decltype(Traits::install_id(input)) in_install_id = Traits::install_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->install_id)::BaseType> install_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_install_id,
        install_id_fragment);

      fragment->install_id.Set(
          install_id_fragment.is_null() ? nullptr : install_id_fragment.data());

      decltype(Traits::lang(input)) in_lang = Traits::lang(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->lang)::BaseType> lang_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_lang,
        lang_fragment);

      fragment->lang.Set(
          lang_fragment.is_null() ? nullptr : lang_fragment.data());
      fragment->dla_$flag = Traits::dla(input).has_value();
      if (Traits::dla(input).has_value()) {
        fragment->dla_$value = Traits::dla(input).value();
      }
      fragment->dlrc_$flag = Traits::dlrc(input).has_value();
      if (Traits::dlrc(input).has_value()) {
        fragment->dlrc_$value = Traits::dlrc(input).value();
      }
      fragment->install_date_$flag = Traits::install_date(input).has_value();
      if (Traits::install_date(input).has_value()) {
        fragment->install_date_$value = Traits::install_date(input).value();
      }

      decltype(Traits::cohort(input)) in_cohort = Traits::cohort(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->cohort)::BaseType> cohort_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_cohort,
        cohort_fragment);

      fragment->cohort.Set(
          cohort_fragment.is_null() ? nullptr : cohort_fragment.data());

      decltype(Traits::cohort_name(input)) in_cohort_name = Traits::cohort_name(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->cohort_name)::BaseType> cohort_name_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_cohort_name,
        cohort_name_fragment);

      fragment->cohort_name.Set(
          cohort_name_fragment.is_null() ? nullptr : cohort_name_fragment.data());

      decltype(Traits::cohort_hint(input)) in_cohort_hint = Traits::cohort_hint(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->cohort_hint)::BaseType> cohort_hint_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_cohort_hint,
        cohort_hint_fragment);

      fragment->cohort_hint.Set(
          cohort_hint_fragment.is_null() ? nullptr : cohort_hint_fragment.data());
  }
};

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

      decltype(Traits::app_id(input)) in_app_id = Traits::app_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->app_id)::BaseType> app_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_app_id,
        app_id_fragment);

      fragment->app_id.Set(
          app_id_fragment.is_null() ? nullptr : app_id_fragment.data());

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

      
      mojo::internal::Serialize<::updater::mojom::UpdateState_State>(
        Traits::state(input),
        &fragment->state);

      decltype(Traits::next_version(input)) in_next_version = Traits::next_version(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->next_version)::BaseType> next_version_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_next_version,
        next_version_fragment);

      fragment->next_version.Set(
          next_version_fragment.is_null() ? nullptr : next_version_fragment.data());

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

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

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

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

      
      mojo::internal::Serialize<::updater::mojom::UpdateService_ErrorCategory>(
        Traits::error_category(input),
        &fragment->error_category);

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

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

      decltype(Traits::installer_text(input)) in_installer_text = Traits::installer_text(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->installer_text)::BaseType> installer_text_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_installer_text,
        installer_text_fragment);

      fragment->installer_text.Set(
          installer_text_fragment.is_null() ? nullptr : installer_text_fragment.data());

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

      decltype(Traits::installer_cmd_line(input)) in_installer_cmd_line = Traits::installer_cmd_line(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->installer_cmd_line)::BaseType> installer_cmd_line_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_installer_cmd_line,
        installer_cmd_line_fragment);

      fragment->installer_cmd_line.Set(
          installer_cmd_line_fragment.is_null() ? nullptr : installer_cmd_line_fragment.data());

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

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

      decltype(Traits::app_id(input)) in_app_id = Traits::app_id(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->app_id)::BaseType> app_id_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_app_id,
        app_id_fragment);

      fragment->app_id.Set(
          app_id_fragment.is_null() ? nullptr : app_id_fragment.data());

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

      decltype(Traits::version(input)) in_version = Traits::version(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->version)::BaseType> version_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_version,
        version_fragment);

      fragment->version.Set(
          version_fragment.is_null() ? nullptr : version_fragment.data());

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

      decltype(Traits::ap(input)) in_ap = Traits::ap(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->ap)::BaseType> ap_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_ap,
        ap_fragment);

      fragment->ap.Set(
          ap_fragment.is_null() ? nullptr : ap_fragment.data());

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

      decltype(Traits::brand_code(input)) in_brand_code = Traits::brand_code(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->brand_code)::BaseType> brand_code_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_brand_code,
        brand_code_fragment);

      fragment->brand_code.Set(
          brand_code_fragment.is_null() ? nullptr : brand_code_fragment.data());

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

      decltype(Traits::brand_path(input)) in_brand_path = Traits::brand_path(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->brand_path)::BaseType> brand_path_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::FilePathDataView, send_validation>(
        in_brand_path,
        brand_path_fragment);

      fragment->brand_path.Set(
          brand_path_fragment.is_null() ? nullptr : brand_path_fragment.data());

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

      decltype(Traits::ecp(input)) in_ecp = Traits::ecp(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->ecp)::BaseType> ecp_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::FilePathDataView, send_validation>(
        in_ecp,
        ecp_fragment);

      fragment->ecp.Set(
          ecp_fragment.is_null() ? nullptr : ecp_fragment.data());

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

      decltype(Traits::ap_path(input)) in_ap_path = Traits::ap_path(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->ap_path)::BaseType> ap_path_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::FilePathDataView, send_validation>(
        in_ap_path,
        ap_path_fragment);

      fragment->ap_path.Set(
          ap_path_fragment.is_null() ? nullptr : ap_path_fragment.data());

      decltype(Traits::ap_key(input)) in_ap_key = Traits::ap_key(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->ap_key)::BaseType> ap_key_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_ap_key,
        ap_key_fragment);

      fragment->ap_key.Set(
          ap_key_fragment.is_null() ? nullptr : ap_key_fragment.data());

      decltype(Traits::version_path(input)) in_version_path = Traits::version_path(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->version_path)::BaseType> version_path_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::FilePathDataView, send_validation>(
        in_version_path,
        version_path_fragment);

      fragment->version_path.Set(
          version_path_fragment.is_null() ? nullptr : version_path_fragment.data());

      decltype(Traits::version_key(input)) in_version_key = Traits::version_key(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->version_key)::BaseType> version_key_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_version_key,
        version_key_fragment);

      fragment->version_key.Set(
          version_key_fragment.is_null() ? nullptr : version_key_fragment.data());

      decltype(Traits::cohort(input)) in_cohort = Traits::cohort(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->cohort)::BaseType> cohort_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_cohort,
        cohort_fragment);

      fragment->cohort.Set(
          cohort_fragment.is_null() ? nullptr : cohort_fragment.data());
  }
};

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

      decltype(Traits::active_version(input)) in_active_version = Traits::active_version(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->active_version)::BaseType> active_version_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_active_version,
        active_version_fragment);

      fragment->active_version.Set(
          active_version_fragment.is_null() ? nullptr : active_version_fragment.data());

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

      decltype(Traits::inactive_versions(input)) in_inactive_versions = Traits::inactive_versions(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->inactive_versions)::BaseType>
          inactive_versions_fragment(fragment.message());
      constexpr const mojo::internal::ContainerValidateParams& inactive_versions_validate_params =
          mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>();
      
      mojo::internal::Serialize<mojo::ArrayDataView<mojo::StringDataView>, send_validation>(
        in_inactive_versions,
        inactive_versions_fragment,
        &inactive_versions_validate_params);

      fragment->inactive_versions.Set(
          inactive_versions_fragment.is_null() ? nullptr : inactive_versions_fragment.data());

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

      decltype(Traits::last_checked(input)) in_last_checked = Traits::last_checked(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->last_checked)::BaseType> last_checked_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeDataView, send_validation>(
        in_last_checked,
        last_checked_fragment);

      fragment->last_checked.Set(
          last_checked_fragment.is_null() ? nullptr : last_checked_fragment.data());

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

      decltype(Traits::last_started(input)) in_last_started = Traits::last_started(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->last_started)::BaseType> last_started_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeDataView, send_validation>(
        in_last_started,
        last_started_fragment);

      fragment->last_started.Set(
          last_started_fragment.is_null() ? nullptr : last_started_fragment.data());

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

}  // namespace mojo::internal

#endif  // CHROME_UPDATER_MOJOM_UPDATER_SERVICE_MOJOM_SEND_VALIDATION_H_