// chrome/browser/ui/webui/feed_internals/feed_internals.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_BROWSER_UI_WEBUI_FEED_INTERNALS_FEED_INTERNALS_MOJOM_SEND_VALIDATION_H_
#define CHROME_BROWSER_UI_WEBUI_FEED_INTERNALS_FEED_INTERNALS_MOJOM_SEND_VALIDATION_H_

#include "chrome/browser/ui/webui/feed_internals/feed_internals.mojom-shared-internal.h"
#include "mojo/public/mojom/base/time.mojom-shared.h"
#include "url/mojom/url.mojom-shared.h"

#include "chrome/browser/ui/webui/feed_internals/feed_internals.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<::feed_internals::mojom::PropertiesDataView, MaybeConstUserType, send_validation> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::feed_internals::mojom::PropertiesDataView, UserType>;
  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::feed_internals::mojom::internal::Properties_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

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

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

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

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

      decltype(Traits::load_stream_status(input)) in_load_stream_status = Traits::load_stream_status(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->load_stream_status)::BaseType> load_stream_status_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_load_stream_status,
        load_stream_status_fragment);

      fragment->load_stream_status.Set(
          load_stream_status_fragment.is_null() ? nullptr : load_stream_status_fragment.data());

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

      decltype(Traits::feed_fetch_url(input)) in_feed_fetch_url = Traits::feed_fetch_url(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->feed_fetch_url)::BaseType> feed_fetch_url_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::url::mojom::UrlDataView, send_validation>(
        in_feed_fetch_url,
        feed_fetch_url_fragment);

      fragment->feed_fetch_url.Set(
          feed_fetch_url_fragment.is_null() ? nullptr : feed_fetch_url_fragment.data());

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

      decltype(Traits::feed_actions_url(input)) in_feed_actions_url = Traits::feed_actions_url(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->feed_actions_url)::BaseType> feed_actions_url_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::url::mojom::UrlDataView, send_validation>(
        in_feed_actions_url,
        feed_actions_url_fragment);

      fragment->feed_actions_url.Set(
          feed_actions_url_fragment.is_null() ? nullptr : feed_actions_url_fragment.data());

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

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

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

      decltype(Traits::last_fetch_trigger(input)) in_last_fetch_trigger = Traits::last_fetch_trigger(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->last_fetch_trigger)::BaseType> last_fetch_trigger_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_last_fetch_trigger,
        last_fetch_trigger_fragment);

      fragment->last_fetch_trigger.Set(
          last_fetch_trigger_fragment.is_null() ? nullptr : last_fetch_trigger_fragment.data());

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

      decltype(Traits::last_fetch_time(input)) in_last_fetch_time = Traits::last_fetch_time(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->last_fetch_time)::BaseType> last_fetch_time_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeDeltaDataView, send_validation>(
        in_last_fetch_time,
        last_fetch_time_fragment);

      fragment->last_fetch_time.Set(
          last_fetch_time_fragment.is_null() ? nullptr : last_fetch_time_fragment.data());

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

      decltype(Traits::refresh_suppress_time(input)) in_refresh_suppress_time = Traits::refresh_suppress_time(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->refresh_suppress_time)::BaseType> refresh_suppress_time_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeDeltaDataView, send_validation>(
        in_refresh_suppress_time,
        refresh_suppress_time_fragment);

      fragment->refresh_suppress_time.Set(
          refresh_suppress_time_fragment.is_null() ? nullptr : refresh_suppress_time_fragment.data());

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

      decltype(Traits::last_bless_nonce(input)) in_last_bless_nonce = Traits::last_bless_nonce(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->last_bless_nonce)::BaseType> last_bless_nonce_fragment(
              fragment.message());
      
      mojo::internal::Serialize<mojo::StringDataView, send_validation>(
        in_last_bless_nonce,
        last_bless_nonce_fragment);

      fragment->last_bless_nonce.Set(
          last_bless_nonce_fragment.is_null() ? nullptr : last_bless_nonce_fragment.data());

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

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

      decltype(Traits::last_action_upload_time(input)) in_last_action_upload_time = Traits::last_action_upload_time(input);
      mojo::internal::MessageFragment<
          typename decltype(fragment->last_action_upload_time)::BaseType> last_action_upload_time_fragment(
              fragment.message());
      
      mojo::internal::Serialize<::mojo_base::mojom::TimeDeltaDataView, send_validation>(
        in_last_action_upload_time,
        last_action_upload_time_fragment);

      fragment->last_action_upload_time.Set(
          last_action_upload_time_fragment.is_null() ? nullptr : last_action_upload_time_fragment.data());

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

}  // namespace mojo::internal

#endif  // CHROME_BROWSER_UI_WEBUI_FEED_INTERNALS_FEED_INTERNALS_MOJOM_SEND_VALIDATION_H_