// Generated by the proto_extras plugin. DO NOT EDIT!
// source: components/private_ai/proto/private_ai.proto

#include "components/private_ai/proto/private_ai.to_value.h"



#include "base/base64.h"
#include "base/strings/string_number_conversions.h"
#include "base/values.h"
#include "components/optimization_guide/proto/model_execution.pb.h"
#include "components/optimization_guide/proto/model_execution.to_value.h"
#include "components/private_ai/proto/private_ai.pb.h"
#include "components/proto_extras/proto_extras_lib.h"


namespace private_ai {
namespace proto {
void MaybeToValue(const std::optional<PrivateAiRequest>& 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 PrivateAiRequest& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_feature_name()) {
    dict.Set("feature_name", ::private_ai::proto::FeatureName_Name(message.feature_name()));
  }
  if (message.has_generate_content_request()) {
    dict.Set("generate_content_request", ::private_ai::proto::ToValue(message.generate_content_request()));
  }
  if (message.has_anonymous_token_request()) {
    dict.Set("anonymous_token_request", ::private_ai::proto::ToValue(message.anonymous_token_request()));
  }
  if (message.has_paic_request()) {
    dict.Set("paic_request", ::private_ai::proto::ToValue(message.paic_request()));
  }
  if (message.has_request_id()) {
    dict.Set("request_id", (message.request_id()));
  }
  return base::Value(std::move(dict));
}
void MaybeToValue(const std::optional<PrivateAiResponse>& 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 PrivateAiResponse& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_generate_content_response()) {
    dict.Set("generate_content_response", ::private_ai::proto::ToValue(message.generate_content_response()));
  }
  if (message.has_paic_response()) {
    dict.Set("paic_response", ::private_ai::proto::ToValue(message.paic_response()));
  }
  if (message.has_request_id()) {
    dict.Set("request_id", (message.request_id()));
  }
  return base::Value(std::move(dict));
}
void MaybeToValue(const std::optional<PaicMessage>& 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 PaicMessage& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_feature_name()) {
    dict.Set("feature_name", ::private_ai::proto::FeatureName_Name(message.feature_name()));
  }
  if (message.has_execute_request_ext()) {
    dict.Set("execute_request_ext", ::optimization_guide::proto::ToValue(message.execute_request_ext()));
  }
  if (message.has_execute_response_ext()) {
    dict.Set("execute_response_ext", ::optimization_guide::proto::ToValue(message.execute_response_ext()));
  }
  if (message.has_private_execute_request_ext()) {
    dict.Set("private_execute_request_ext", ::optimization_guide::proto::ToValue(message.private_execute_request_ext()));
  }
  return base::Value(std::move(dict));
}
void MaybeToValue(const std::optional<GenerateContentRequest>& 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 GenerateContentRequest& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_model()) {
    dict.Set("model", (message.model()));
  }
  if (!message.contents().empty()) {
    base::ListValue list;
    for (const auto& value : message.contents()) {
      list.Append(::private_ai::proto::ToValue(value));
    }
    dict.Set("contents", std::move(list));
  }
  return base::Value(std::move(dict));
}
void MaybeToValue(const std::optional<Content>& 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 Content& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_role()) {
    dict.Set("role", (message.role()));
  }
  if (!message.parts().empty()) {
    base::ListValue list;
    for (const auto& value : message.parts()) {
      list.Append(::private_ai::proto::ToValue(value));
    }
    dict.Set("parts", std::move(list));
  }
  return base::Value(std::move(dict));
}
void MaybeToValue(const std::optional<Part>& 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 Part& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_text()) {
    dict.Set("text", (message.text()));
  }
  if (message.has_inline_data()) {
    dict.Set("inline_data", ::private_ai::proto::ToValue(message.inline_data()));
  }
  return base::Value(std::move(dict));
}
void MaybeToValue(const std::optional<Blob>& 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 Blob& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_mime_type()) {
    dict.Set("mime_type", (message.mime_type()));
  }
  if (message.has_data()) {
    dict.Set("data", base::Base64Encode(message.data()));
  }
  if (message.has_will_continue()) {
    dict.Set("will_continue", static_cast<bool>(message.will_continue()));
  }
  return base::Value(std::move(dict));
}
void MaybeToValue(const std::optional<GenerateContentResponse>& 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 GenerateContentResponse& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (!message.candidates().empty()) {
    base::ListValue list;
    for (const auto& value : message.candidates()) {
      list.Append(::private_ai::proto::ToValue(value));
    }
    dict.Set("candidates", std::move(list));
  }
  return base::Value(std::move(dict));
}
void MaybeToValue(const std::optional<Candidate>& 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 Candidate& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_index()) {
    dict.Set("index", (message.index()));
  }
  if (message.has_content()) {
    dict.Set("content", ::private_ai::proto::ToValue(message.content()));
  }
  if (message.has_finish_reason()) {
    dict.Set("finish_reason", ::private_ai::proto::Candidate_FinishReason_Name(message.finish_reason()));
  }
  return base::Value(std::move(dict));
}
void MaybeToValue(const std::optional<ChromeClientMetadata>& 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 ChromeClientMetadata& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_product_name()) {
    dict.Set("product_name", (message.product_name()));
  }
  if (message.has_platform()) {
    dict.Set("platform", ::private_ai::proto::ChromeClientMetadata_Platform_Name(message.platform()));
  }
  if (message.has_channel()) {
    dict.Set("channel", ::private_ai::proto::ChromeClientMetadata_Channel_Name(message.channel()));
  }
  return base::Value(std::move(dict));
}
void MaybeToValue(const std::optional<ClientMetadata>& 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 ClientMetadata& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_chrome_client_metadata()) {
    dict.Set("chrome_client_metadata", ::private_ai::proto::ToValue(message.chrome_client_metadata()));
  }
  return base::Value(std::move(dict));
}
void MaybeToValue(const std::optional<AnonymousTokenRequest>& 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 AnonymousTokenRequest& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_anonymous_token()) {
    dict.Set("anonymous_token", base::Base64Encode(message.anonymous_token()));
  }
  if (message.has_client_metadata()) {
    dict.Set("client_metadata", ::private_ai::proto::ToValue(message.client_metadata()));
  }
  return base::Value(std::move(dict));
}
}  // namespace proto
}  // namespace private_ai

