// components/policy/resources/webui/mojom/policy.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 COMPONENTS_POLICY_RESOURCES_WEBUI_MOJOM_POLICY_MOJOM_SHARED_H_
#define COMPONENTS_POLICY_RESOURCES_WEBUI_MOJOM_POLICY_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/map_data_view.h"
#include "mojo/public/cpp/bindings/string_data_view.h"
#include "mojo/public/cpp/system/message_pipe.h"

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

#include "components/policy/resources/webui/mojom/policy.mojom-shared-internal.h"
#include "mojo/public/mojom/base/values.mojom-shared.h"
#include "mojo/public/cpp/bindings/lib/interface_serialization.h"
#include "mojo/public/cpp/system/data_pipe.h"



#include "components/policy/resources/webui/mojom/policy.mojom-data-view.h"  // IWYU pragma: export




namespace std {

template <>
struct hash<::policy::mojom::GetPoliciesReason>
    : public mojo::internal::EnumHashImpl<::policy::mojom::GetPoliciesReason> {};

}  // namespace std

namespace mojo {


namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::policy::mojom::GetPoliciesReason, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = EnumTraits<::policy::mojom::GetPoliciesReason, UserType>;

  static void Serialize(UserType input, int32_t* output) {
    *output = static_cast<int32_t>(Traits::ToMojom(input));
  }

  static bool Deserialize(int32_t input, UserType* output) {
    auto known_value = ::mojo::internal::ToKnownEnumValueHelper(
        static_cast<::policy::mojom::GetPoliciesReason>(input));
    if constexpr (requires {
                    {
                      Traits::FromMojom(known_value)
                    } -> std::same_as<UserType>;
                  }) {
      static_assert(std::same_as<::policy::mojom::GetPoliciesReason, UserType> ||
                        HasInfallibleConversion(::policy::mojom::GetPoliciesReason()),
                    "::policy::mojom::GetPoliciesReason does not have an infallible conversion, "
                    "use an optional return type.");
      *output = Traits::FromMojom(known_value);
      return true;
    } else {
      static_assert(
          requires {
            {
              Traits::FromMojom(known_value)
            } -> std::same_as<std::optional<UserType>>;
          }, "FromMojom must return by value or optional.");
      std::optional<UserType> from_mojom = Traits::FromMojom(known_value);
      if (from_mojom) {
        *output = *from_mojom;
      }
      return from_mojom.has_value();
    }
  }
};

}  // namespace internal


namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::policy::mojom::LogDataView, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::policy::mojom::LogDataView, UserType>;

  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::policy::mojom::internal::Log_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

    decltype(Traits::message(input)) in_message = Traits::message(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->message)::BaseType> message_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_message,
      message_fragment);

    fragment->message.Set(
        message_fragment.is_null() ? nullptr : message_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->message.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null message in Log struct");

    decltype(Traits::log_severity(input)) in_log_severity = Traits::log_severity(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->log_severity)::BaseType> log_severity_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_log_severity,
      log_severity_fragment);

    fragment->log_severity.Set(
        log_severity_fragment.is_null() ? nullptr : log_severity_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->log_severity.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null log_severity in Log struct");

    decltype(Traits::log_source(input)) in_log_source = Traits::log_source(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->log_source)::BaseType> log_source_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_log_source,
      log_source_fragment);

    fragment->log_source.Set(
        log_source_fragment.is_null() ? nullptr : log_source_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->log_source.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null log_source in Log struct");

    decltype(Traits::file_and_line(input)) in_file_and_line = Traits::file_and_line(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->file_and_line)::BaseType> file_and_line_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_file_and_line,
      file_and_line_fragment);

    fragment->file_and_line.Set(
        file_and_line_fragment.is_null() ? nullptr : file_and_line_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->file_and_line.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null file_and_line in Log struct");

    decltype(Traits::location(input)) in_location = Traits::location(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->location)::BaseType> location_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_location,
      location_fragment);

    fragment->location.Set(
        location_fragment.is_null() ? nullptr : location_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->location.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null location in Log struct");

    decltype(Traits::timestamp(input)) in_timestamp = Traits::timestamp(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->timestamp)::BaseType> timestamp_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_timestamp,
      timestamp_fragment);

    fragment->timestamp.Set(
        timestamp_fragment.is_null() ? nullptr : timestamp_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->timestamp.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null timestamp in Log struct");
  }

  static bool Deserialize(::policy::mojom::internal::Log_Data* input,
                          UserType* output,
                          Message* message) {
    if (!input)
      return CallSetToNullIfExists<Traits>(output);

    ::policy::mojom::LogDataView data_view(input, message);
    return CallTraitsRead<Traits>(data_view, output);
  }
};

}  // namespace internal


namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::policy::mojom::StatusDataView, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::policy::mojom::StatusDataView, UserType>;

  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::policy::mojom::internal::Status_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

    decltype(Traits::policy_description_key(input)) in_policy_description_key = Traits::policy_description_key(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->policy_description_key)::BaseType> policy_description_key_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_policy_description_key,
      policy_description_key_fragment);

    fragment->policy_description_key.Set(
        policy_description_key_fragment.is_null() ? nullptr : policy_description_key_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->policy_description_key.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null policy_description_key in Status struct");

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

    decltype(Traits::asset_id(input)) in_asset_id = Traits::asset_id(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->asset_id)::BaseType> asset_id_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_asset_id,
      asset_id_fragment);

    fragment->asset_id.Set(
        asset_id_fragment.is_null() ? nullptr : asset_id_fragment.data());

    decltype(Traits::location(input)) in_location = Traits::location(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->location)::BaseType> location_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_location,
      location_fragment);

    fragment->location.Set(
        location_fragment.is_null() ? nullptr : location_fragment.data());

    decltype(Traits::directory_api_id(input)) in_directory_api_id = Traits::directory_api_id(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->directory_api_id)::BaseType> directory_api_id_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_directory_api_id,
      directory_api_id_fragment);

    fragment->directory_api_id.Set(
        directory_api_id_fragment.is_null() ? nullptr : directory_api_id_fragment.data());

    decltype(Traits::client_id(input)) in_client_id = Traits::client_id(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->client_id)::BaseType> client_id_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_client_id,
      client_id_fragment);

    fragment->client_id.Set(
        client_id_fragment.is_null() ? nullptr : client_id_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->client_id.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null client_id in Status struct");
    fragment->is_off_hours_active_$flag = Traits::is_off_hours_active(input).has_value();
    if (Traits::is_off_hours_active(input).has_value()) {
      fragment->is_off_hours_active_$value = Traits::is_off_hours_active(input).value();
    }

    decltype(Traits::device_id(input)) in_device_id = Traits::device_id(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->device_id)::BaseType> device_id_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_device_id,
      device_id_fragment);

    fragment->device_id.Set(
        device_id_fragment.is_null() ? nullptr : device_id_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->device_id.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null device_id in Status struct");

    decltype(Traits::enrollment_token(input)) in_enrollment_token = Traits::enrollment_token(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->enrollment_token)::BaseType> enrollment_token_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_enrollment_token,
      enrollment_token_fragment);

    fragment->enrollment_token.Set(
        enrollment_token_fragment.is_null() ? nullptr : enrollment_token_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->enrollment_token.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null enrollment_token in Status struct");

    decltype(Traits::domain(input)) in_domain = Traits::domain(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->domain)::BaseType> domain_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_domain,
      domain_fragment);

    fragment->domain.Set(
        domain_fragment.is_null() ? nullptr : domain_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->domain.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null domain in Status struct");

    decltype(Traits::machine(input)) in_machine = Traits::machine(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->machine)::BaseType> machine_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_machine,
      machine_fragment);

    fragment->machine.Set(
        machine_fragment.is_null() ? nullptr : machine_fragment.data());

    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>(
      in_version,
      version_fragment);

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

    decltype(Traits::username(input)) in_username = Traits::username(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->username)::BaseType> username_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_username,
      username_fragment);

    fragment->username.Set(
        username_fragment.is_null() ? nullptr : username_fragment.data());

    decltype(Traits::gaia_id(input)) in_gaia_id = Traits::gaia_id(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->gaia_id)::BaseType> gaia_id_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_gaia_id,
      gaia_id_fragment);

    fragment->gaia_id.Set(
        gaia_id_fragment.is_null() ? nullptr : gaia_id_fragment.data());

    decltype(Traits::profile_id(input)) in_profile_id = Traits::profile_id(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->profile_id)::BaseType> profile_id_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_profile_id,
      profile_id_fragment);

    fragment->profile_id.Set(
        profile_id_fragment.is_null() ? nullptr : profile_id_fragment.data());

    decltype(Traits::status(input)) in_status = Traits::status(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->status)::BaseType> status_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_status,
      status_fragment);

    fragment->status.Set(
        status_fragment.is_null() ? nullptr : status_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->status.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null status in Status struct");

    decltype(Traits::extension_install_status(input)) in_extension_install_status = Traits::extension_install_status(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->extension_install_status)::BaseType> extension_install_status_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_extension_install_status,
      extension_install_status_fragment);

    fragment->extension_install_status.Set(
        extension_install_status_fragment.is_null() ? nullptr : extension_install_status_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->extension_install_status.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null extension_install_status in Status struct");

    decltype(Traits::refresh_interval(input)) in_refresh_interval = Traits::refresh_interval(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->refresh_interval)::BaseType> refresh_interval_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_refresh_interval,
      refresh_interval_fragment);

    fragment->refresh_interval.Set(
        refresh_interval_fragment.is_null() ? nullptr : refresh_interval_fragment.data());

    decltype(Traits::time_since_last_refresh(input)) in_time_since_last_refresh = Traits::time_since_last_refresh(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->time_since_last_refresh)::BaseType> time_since_last_refresh_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_time_since_last_refresh,
      time_since_last_refresh_fragment);

    fragment->time_since_last_refresh.Set(
        time_since_last_refresh_fragment.is_null() ? nullptr : time_since_last_refresh_fragment.data());

    decltype(Traits::time_since_last_fetch_attempt(input)) in_time_since_last_fetch_attempt = Traits::time_since_last_fetch_attempt(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->time_since_last_fetch_attempt)::BaseType> time_since_last_fetch_attempt_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_time_since_last_fetch_attempt,
      time_since_last_fetch_attempt_fragment);

    fragment->time_since_last_fetch_attempt.Set(
        time_since_last_fetch_attempt_fragment.is_null() ? nullptr : time_since_last_fetch_attempt_fragment.data());

    decltype(Traits::extension_install_time_since_last_refresh(input)) in_extension_install_time_since_last_refresh = Traits::extension_install_time_since_last_refresh(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->extension_install_time_since_last_refresh)::BaseType> extension_install_time_since_last_refresh_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_extension_install_time_since_last_refresh,
      extension_install_time_since_last_refresh_fragment);

    fragment->extension_install_time_since_last_refresh.Set(
        extension_install_time_since_last_refresh_fragment.is_null() ? nullptr : extension_install_time_since_last_refresh_fragment.data());

    decltype(Traits::extension_install_time_since_last_fetch_attempt(input)) in_extension_install_time_since_last_fetch_attempt = Traits::extension_install_time_since_last_fetch_attempt(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->extension_install_time_since_last_fetch_attempt)::BaseType> extension_install_time_since_last_fetch_attempt_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_extension_install_time_since_last_fetch_attempt,
      extension_install_time_since_last_fetch_attempt_fragment);

    fragment->extension_install_time_since_last_fetch_attempt.Set(
        extension_install_time_since_last_fetch_attempt_fragment.is_null() ? nullptr : extension_install_time_since_last_fetch_attempt_fragment.data());

    decltype(Traits::last_cloud_report_sent_timestamp(input)) in_last_cloud_report_sent_timestamp = Traits::last_cloud_report_sent_timestamp(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->last_cloud_report_sent_timestamp)::BaseType> last_cloud_report_sent_timestamp_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_last_cloud_report_sent_timestamp,
      last_cloud_report_sent_timestamp_fragment);

    fragment->last_cloud_report_sent_timestamp.Set(
        last_cloud_report_sent_timestamp_fragment.is_null() ? nullptr : last_cloud_report_sent_timestamp_fragment.data());

    decltype(Traits::time_since_last_cloud_report_sent(input)) in_time_since_last_cloud_report_sent = Traits::time_since_last_cloud_report_sent(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->time_since_last_cloud_report_sent)::BaseType> time_since_last_cloud_report_sent_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_time_since_last_cloud_report_sent,
      time_since_last_cloud_report_sent_fragment);

    fragment->time_since_last_cloud_report_sent.Set(
        time_since_last_cloud_report_sent_fragment.is_null() ? nullptr : time_since_last_cloud_report_sent_fragment.data());

    decltype(Traits::enterprise_domain_manager(input)) in_enterprise_domain_manager = Traits::enterprise_domain_manager(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->enterprise_domain_manager)::BaseType> enterprise_domain_manager_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_enterprise_domain_manager,
      enterprise_domain_manager_fragment);

    fragment->enterprise_domain_manager.Set(
        enterprise_domain_manager_fragment.is_null() ? nullptr : enterprise_domain_manager_fragment.data());
    fragment->is_affiliated_$flag = Traits::is_affiliated(input).has_value();
    if (Traits::is_affiliated(input).has_value()) {
      fragment->is_affiliated_$value = Traits::is_affiliated(input).value();
    }

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

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

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

  static bool Deserialize(::policy::mojom::internal::Status_Data* input,
                          UserType* output,
                          Message* message) {
    if (!input)
      return CallSetToNullIfExists<Traits>(output);

    ::policy::mojom::StatusDataView data_view(input, message);
    return CallTraitsRead<Traits>(data_view, output);
  }
};

}  // namespace internal


namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::policy::mojom::ConflictDataView, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::policy::mojom::ConflictDataView, UserType>;

  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::policy::mojom::internal::Conflict_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

    decltype(Traits::level(input)) in_level = Traits::level(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->level)::BaseType> level_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_level,
      level_fragment);

    fragment->level.Set(
        level_fragment.is_null() ? nullptr : level_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->level.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null level in Conflict struct");

    decltype(Traits::scope(input)) in_scope = Traits::scope(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->scope)::BaseType> scope_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_scope,
      scope_fragment);

    fragment->scope.Set(
        scope_fragment.is_null() ? nullptr : scope_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->scope.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null scope in Conflict struct");

    decltype(Traits::source(input)) in_source = Traits::source(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->source)::BaseType> source_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_source,
      source_fragment);

    fragment->source.Set(
        source_fragment.is_null() ? nullptr : source_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->source.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null source in Conflict struct");

    decltype(Traits::value(input)) in_value = Traits::value(input);
    mojo::internal::MessageFragment<decltype(fragment->value)>
        value_fragment(fragment.message());
    value_fragment.Claim(&fragment->value);
    
    mojo::internal::Serialize<::mojo_base::mojom::ValueDataView>(
      in_value,
      value_fragment,
      true);
  }

  static bool Deserialize(::policy::mojom::internal::Conflict_Data* input,
                          UserType* output,
                          Message* message) {
    if (!input)
      return CallSetToNullIfExists<Traits>(output);

    ::policy::mojom::ConflictDataView data_view(input, message);
    return CallTraitsRead<Traits>(data_view, output);
  }
};

}  // namespace internal


namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::policy::mojom::PolicyDataView, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::policy::mojom::PolicyDataView, UserType>;

  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::policy::mojom::internal::Policy_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

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

    decltype(Traits::name(input)) in_name = Traits::name(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->name)::BaseType> name_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_name,
      name_fragment);

    fragment->name.Set(
        name_fragment.is_null() ? nullptr : name_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->name.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null name in Policy struct");

    decltype(Traits::level(input)) in_level = Traits::level(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->level)::BaseType> level_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_level,
      level_fragment);

    fragment->level.Set(
        level_fragment.is_null() ? nullptr : level_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->level.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null level in Policy struct");

    decltype(Traits::scope(input)) in_scope = Traits::scope(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->scope)::BaseType> scope_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_scope,
      scope_fragment);

    fragment->scope.Set(
        scope_fragment.is_null() ? nullptr : scope_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->scope.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null scope in Policy struct");

    decltype(Traits::source(input)) in_source = Traits::source(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->source)::BaseType> source_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_source,
      source_fragment);

    fragment->source.Set(
        source_fragment.is_null() ? nullptr : source_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->source.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null source in Policy struct");

    decltype(Traits::value(input)) in_value = Traits::value(input);
    mojo::internal::MessageFragment<decltype(fragment->value)>
        value_fragment(fragment.message());
    value_fragment.Claim(&fragment->value);
    
    mojo::internal::Serialize<::mojo_base::mojom::ValueDataView>(
      in_value,
      value_fragment,
      true);

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->value.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null value in Policy struct");

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

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

    fragment->future = Traits::future(input);
    fragment->all_sources_merged_$flag = Traits::all_sources_merged(input).has_value();
    if (Traits::all_sources_merged(input).has_value()) {
      fragment->all_sources_merged_$value = Traits::all_sources_merged(input).value();
    }

    decltype(Traits::conflicts(input)) in_conflicts = Traits::conflicts(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->conflicts)::BaseType>
        conflicts_fragment(fragment.message());
    constexpr const mojo::internal::ContainerValidateParams& conflicts_validate_params =
        mojo::internal::GetArrayValidator<0, false, nullptr>();
    
    mojo::internal::Serialize<mojo::ArrayDataView<::policy::mojom::ConflictDataView>>(
      in_conflicts,
      conflicts_fragment,
      &conflicts_validate_params);

    fragment->conflicts.Set(
        conflicts_fragment.is_null() ? nullptr : conflicts_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->conflicts.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null conflicts in Policy struct");

    decltype(Traits::superseded(input)) in_superseded = Traits::superseded(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->superseded)::BaseType>
        superseded_fragment(fragment.message());
    constexpr const mojo::internal::ContainerValidateParams& superseded_validate_params =
        mojo::internal::GetArrayValidator<0, false, nullptr>();
    
    mojo::internal::Serialize<mojo::ArrayDataView<::policy::mojom::ConflictDataView>>(
      in_superseded,
      superseded_fragment,
      &superseded_validate_params);

    fragment->superseded.Set(
        superseded_fragment.is_null() ? nullptr : superseded_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->superseded.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null superseded in Policy struct");

    decltype(Traits::error(input)) in_error = Traits::error(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->error)::BaseType> error_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_error,
      error_fragment);

    fragment->error.Set(
        error_fragment.is_null() ? nullptr : error_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->error.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null error in Policy struct");

    decltype(Traits::warning(input)) in_warning = Traits::warning(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->warning)::BaseType> warning_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_warning,
      warning_fragment);

    fragment->warning.Set(
        warning_fragment.is_null() ? nullptr : warning_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->warning.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null warning in Policy struct");

    decltype(Traits::info(input)) in_info = Traits::info(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->info)::BaseType> info_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_info,
      info_fragment);

    fragment->info.Set(
        info_fragment.is_null() ? nullptr : info_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->info.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null info in Policy struct");
  }

  static bool Deserialize(::policy::mojom::internal::Policy_Data* input,
                          UserType* output,
                          Message* message) {
    if (!input)
      return CallSetToNullIfExists<Traits>(output);

    ::policy::mojom::PolicyDataView data_view(input, message);
    return CallTraitsRead<Traits>(data_view, output);
  }
};

}  // namespace internal


namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::policy::mojom::PolicyGroupDataView, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::policy::mojom::PolicyGroupDataView, UserType>;

  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::policy::mojom::internal::PolicyGroup_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

    decltype(Traits::name(input)) in_name = Traits::name(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->name)::BaseType> name_fragment(
            fragment.message());
    
    mojo::internal::Serialize<mojo::StringDataView>(
      in_name,
      name_fragment);

    fragment->name.Set(
        name_fragment.is_null() ? nullptr : name_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->name.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null name in PolicyGroup struct");

    decltype(Traits::policies(input)) in_policies = Traits::policies(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->policies)::BaseType>
        policies_fragment(fragment.message());
    constexpr const mojo::internal::ContainerValidateParams& policies_validate_params =
        mojo::internal::GetMapValidator<*&mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>(), *&mojo::internal::GetArrayValidator<0, false, nullptr>()>();
    
    mojo::internal::Serialize<mojo::MapDataView<mojo::StringDataView, ::policy::mojom::PolicyDataView>>(
      in_policies,
      policies_fragment,
      &policies_validate_params);

    fragment->policies.Set(
        policies_fragment.is_null() ? nullptr : policies_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->policies.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null policies in PolicyGroup struct");

    decltype(Traits::precedence_order(input)) in_precedence_order = Traits::precedence_order(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->precedence_order)::BaseType>
        precedence_order_fragment(fragment.message());
    constexpr const mojo::internal::ContainerValidateParams& precedence_order_validate_params =
        mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>();
    
    mojo::internal::Serialize<mojo::ArrayDataView<mojo::StringDataView>>(
      in_precedence_order,
      precedence_order_fragment,
      &precedence_order_validate_params);

    fragment->precedence_order.Set(
        precedence_order_fragment.is_null() ? nullptr : precedence_order_fragment.data());

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

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

  static bool Deserialize(::policy::mojom::internal::PolicyGroup_Data* input,
                          UserType* output,
                          Message* message) {
    if (!input)
      return CallSetToNullIfExists<Traits>(output);

    ::policy::mojom::PolicyGroupDataView data_view(input, message);
    return CallTraitsRead<Traits>(data_view, output);
  }
};

}  // namespace internal


namespace internal {

template <typename MaybeConstUserType>
struct Serializer<::policy::mojom::PolicyGroupsResponseDataView, MaybeConstUserType> {
  using UserType = typename std::remove_const<MaybeConstUserType>::type;
  using Traits = StructTraits<::policy::mojom::PolicyGroupsResponseDataView, UserType>;

  static void Serialize(
      MaybeConstUserType& input,
      mojo::internal::MessageFragment<::policy::mojom::internal::PolicyGroupsResponse_Data>& fragment) {
    if (CallIsNullIfExists<Traits>(input))
      return;
    fragment.Allocate();

    decltype(Traits::policy_ids_presentation_order(input)) in_policy_ids_presentation_order = Traits::policy_ids_presentation_order(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->policy_ids_presentation_order)::BaseType>
        policy_ids_presentation_order_fragment(fragment.message());
    constexpr const mojo::internal::ContainerValidateParams& policy_ids_presentation_order_validate_params =
        mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>();
    
    mojo::internal::Serialize<mojo::ArrayDataView<mojo::StringDataView>>(
      in_policy_ids_presentation_order,
      policy_ids_presentation_order_fragment,
      &policy_ids_presentation_order_validate_params);

    fragment->policy_ids_presentation_order.Set(
        policy_ids_presentation_order_fragment.is_null() ? nullptr : policy_ids_presentation_order_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->policy_ids_presentation_order.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null policy_ids_presentation_order in PolicyGroupsResponse struct");

    decltype(Traits::policy_groups(input)) in_policy_groups = Traits::policy_groups(input);
    mojo::internal::MessageFragment<
        typename decltype(fragment->policy_groups)::BaseType>
        policy_groups_fragment(fragment.message());
    constexpr const mojo::internal::ContainerValidateParams& policy_groups_validate_params =
        mojo::internal::GetMapValidator<*&mojo::internal::GetArrayValidator<0, false, &mojo::internal::GetArrayValidator<0, false, nullptr>()>(), *&mojo::internal::GetArrayValidator<0, false, nullptr>()>();
    
    mojo::internal::Serialize<mojo::MapDataView<mojo::StringDataView, ::policy::mojom::PolicyGroupDataView>>(
      in_policy_groups,
      policy_groups_fragment,
      &policy_groups_validate_params);

    fragment->policy_groups.Set(
        policy_groups_fragment.is_null() ? nullptr : policy_groups_fragment.data());

    
    MOJO_INTERNAL_CHECK_SERIALIZATION(
      mojo::internal::SendValidation::kDefault,
      !(fragment->policy_groups.is_null()),
      mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
      "null policy_groups in PolicyGroupsResponse struct");
  }

  static bool Deserialize(::policy::mojom::internal::PolicyGroupsResponse_Data* input,
                          UserType* output,
                          Message* message) {
    if (!input)
      return CallSetToNullIfExists<Traits>(output);

    ::policy::mojom::PolicyGroupsResponseDataView data_view(input, message);
    return CallTraitsRead<Traits>(data_view, output);
  }
};

}  // namespace internal

}  // namespace mojo


namespace policy::mojom {

inline void LogDataView::GetMessageDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->message.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void LogDataView::GetLogSeverityDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->log_severity.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void LogDataView::GetLogSourceDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->log_source.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void LogDataView::GetFileAndLineDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->file_and_line.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void LogDataView::GetLocationDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->location.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void LogDataView::GetTimestampDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->timestamp.Get();
  *output = mojo::StringDataView(pointer, message_);
}


inline void StatusDataView::GetPolicyDescriptionKeyDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->policy_description_key.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetAssetIdDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->asset_id.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetLocationDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->location.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetDirectoryApiIdDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->directory_api_id.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetClientIdDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->client_id.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetDeviceIdDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->device_id.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetEnrollmentTokenDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->enrollment_token.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetDomainDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->domain.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetMachineDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->machine.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetVersionDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->version.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetUsernameDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->username.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetGaiaIdDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->gaia_id.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetProfileIdDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->profile_id.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetStatusDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->status.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetExtensionInstallStatusDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->extension_install_status.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetRefreshIntervalDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->refresh_interval.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetTimeSinceLastRefreshDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->time_since_last_refresh.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetTimeSinceLastFetchAttemptDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->time_since_last_fetch_attempt.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetExtensionInstallTimeSinceLastRefreshDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->extension_install_time_since_last_refresh.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetExtensionInstallTimeSinceLastFetchAttemptDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->extension_install_time_since_last_fetch_attempt.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetLastCloudReportSentTimestampDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->last_cloud_report_sent_timestamp.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetTimeSinceLastCloudReportSentDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->time_since_last_cloud_report_sent.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void StatusDataView::GetEnterpriseDomainManagerDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->enterprise_domain_manager.Get();
  *output = mojo::StringDataView(pointer, message_);
}


inline void ConflictDataView::GetLevelDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->level.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void ConflictDataView::GetScopeDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->scope.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void ConflictDataView::GetSourceDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->source.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void ConflictDataView::GetValueDataView(
    ::mojo_base::mojom::ValueDataView* output) {
  auto pointer = &data_->value;
  *output = ::mojo_base::mojom::ValueDataView(pointer, message_);
}


inline void PolicyDataView::GetNameDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->name.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void PolicyDataView::GetLevelDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->level.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void PolicyDataView::GetScopeDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->scope.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void PolicyDataView::GetSourceDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->source.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void PolicyDataView::GetValueDataView(
    ::mojo_base::mojom::ValueDataView* output) {
  auto pointer = &data_->value;
  *output = ::mojo_base::mojom::ValueDataView(pointer, message_);
}
inline void PolicyDataView::GetConflictsDataView(
    mojo::ArrayDataView<ConflictDataView>* output) {
  auto pointer = data_->conflicts.Get();
  *output = mojo::ArrayDataView<ConflictDataView>(pointer, message_);
}
inline void PolicyDataView::GetSupersededDataView(
    mojo::ArrayDataView<ConflictDataView>* output) {
  auto pointer = data_->superseded.Get();
  *output = mojo::ArrayDataView<ConflictDataView>(pointer, message_);
}
inline void PolicyDataView::GetErrorDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->error.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void PolicyDataView::GetWarningDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->warning.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void PolicyDataView::GetInfoDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->info.Get();
  *output = mojo::StringDataView(pointer, message_);
}


inline void PolicyGroupDataView::GetNameDataView(
    mojo::StringDataView* output) {
  auto pointer = data_->name.Get();
  *output = mojo::StringDataView(pointer, message_);
}
inline void PolicyGroupDataView::GetPoliciesDataView(
    mojo::MapDataView<mojo::StringDataView, PolicyDataView>* output) {
  auto pointer = data_->policies.Get();
  *output = mojo::MapDataView<mojo::StringDataView, PolicyDataView>(pointer, message_);
}
inline void PolicyGroupDataView::GetPrecedenceOrderDataView(
    mojo::ArrayDataView<mojo::StringDataView>* output) {
  auto pointer = data_->precedence_order.Get();
  *output = mojo::ArrayDataView<mojo::StringDataView>(pointer, message_);
}


inline void PolicyGroupsResponseDataView::GetPolicyIdsPresentationOrderDataView(
    mojo::ArrayDataView<mojo::StringDataView>* output) {
  auto pointer = data_->policy_ids_presentation_order.Get();
  *output = mojo::ArrayDataView<mojo::StringDataView>(pointer, message_);
}
inline void PolicyGroupsResponseDataView::GetPolicyGroupsDataView(
    mojo::MapDataView<mojo::StringDataView, PolicyGroupDataView>* output) {
  auto pointer = data_->policy_groups.Get();
  *output = mojo::MapDataView<mojo::StringDataView, PolicyGroupDataView>(pointer, message_);
}



}  // policy::mojom

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

namespace perfetto {

template <>
struct  TraceFormatTraits<::policy::mojom::GetPoliciesReason> {
 static void WriteIntoTrace(perfetto::TracedValue context, ::policy::mojom::GetPoliciesReason value);
};

} // namespace perfetto

#endif  // COMPONENTS_POLICY_RESOURCES_WEBUI_MOJOM_POLICY_MOJOM_SHARED_H_