// Generated by the proto_extras plugin. DO NOT EDIT!
// source: third_party/metrics_proto/extension_install.proto

#include "third_party/metrics_proto/extension_install.to_value.h"



#include "base/base64.h"
#include "base/strings/string_number_conversions.h"
#include "base/values.h"
#include "components/proto_extras/proto_extras_lib.h"
#include "third_party/metrics_proto/extension_install.pb.h"


namespace metrics {
void MaybeToValue(const std::optional<ExtensionInstallProto>& opt_message,
                    std::string_view name,
                    base::DictValue& output_dictionary) {
  if (!opt_message.has_value()) {
    return;
  }
  output_dictionary.Set(name, ToValue(*opt_message));
}
base::Value ToValue(const ExtensionInstallProto& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_type()) {
    dict.Set("type", ::metrics::ExtensionInstallProto_Type_Name(message.type()));
  }
  if (message.has_install_location()) {
    dict.Set("install_location", ::metrics::ExtensionInstallProto_InstallLocation_Name(message.install_location()));
  }
  if (message.has_manifest_version()) {
    dict.Set("manifest_version", (message.manifest_version()));
  }
  if (message.has_action_type()) {
    dict.Set("action_type", ::metrics::ExtensionInstallProto_ActionType_Name(message.action_type()));
  }
  if (message.has_has_file_access()) {
    dict.Set("has_file_access", static_cast<bool>(message.has_file_access()));
  }
  if (message.has_has_incognito_access()) {
    dict.Set("has_incognito_access", static_cast<bool>(message.has_incognito_access()));
  }
  if (message.has_is_from_store()) {
    dict.Set("is_from_store", static_cast<bool>(message.is_from_store()));
  }
  if (message.has_updates_from_store()) {
    dict.Set("updates_from_store", static_cast<bool>(message.updates_from_store()));
  }
  if (message.has_is_from_bookmark()) {
    dict.Set("is_from_bookmark", static_cast<bool>(message.is_from_bookmark()));
  }
  if (message.has_is_converted_from_user_script()) {
    dict.Set("is_converted_from_user_script", static_cast<bool>(message.is_converted_from_user_script()));
  }
  if (message.has_is_default_installed()) {
    dict.Set("is_default_installed", static_cast<bool>(message.is_default_installed()));
  }
  if (message.has_is_oem_installed()) {
    dict.Set("is_oem_installed", static_cast<bool>(message.is_oem_installed()));
  }
  if (message.has_background_script_type()) {
    dict.Set("background_script_type", ::metrics::ExtensionInstallProto_BackgroundScriptType_Name(message.background_script_type()));
  }
  if (!message.disable_reasons().empty()) {
    base::ListValue list;
    for (const auto& value : message.disable_reasons()) {
      list.Append(::metrics::ExtensionInstallProto_DisableReason_Name(value));
    }
    dict.Set("disable_reasons", std::move(list));
  }
  if (message.has_blacklist_state()) {
    dict.Set("blacklist_state", ::metrics::ExtensionInstallProto_BlacklistState_Name(message.blacklist_state()));
  }
  if (message.has_installed_in_this_sample_period()) {
    dict.Set("installed_in_this_sample_period", static_cast<bool>(message.installed_in_this_sample_period()));
  }
  if (message.has_in_extensions_developer_mode()) {
    dict.Set("in_extensions_developer_mode", static_cast<bool>(message.in_extensions_developer_mode()));
  }
  return base::Value(std::move(dict));
}
}  // namespace metrics

