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

#include "components/optimization_guide/proto/model_execution.to_value.h"



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


namespace optimization_guide {
namespace proto {
void MaybeToValue(const std::optional<ExecuteRequest>& 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 ExecuteRequest& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_feature()) {
    dict.Set("feature", ::optimization_guide::proto::ModelExecutionFeature_Name(message.feature()));
  }
  if (message.has_request_metadata()) {
    dict.Set("request_metadata", ::optimization_guide::proto::ToValue(message.request_metadata()));
  }
  return base::Value(std::move(dict));
}
void MaybeToValue(const std::optional<PrivateExecuteRequest>& 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 PrivateExecuteRequest& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_request()) {
    dict.Set("request", ::optimization_guide::proto::ToValue(message.request()));
  }
  if (!message.variations().empty()) {
    base::ListValue list;
    for (const auto& value : message.variations()) {
      list.Append((value));
    }
    dict.Set("variations", std::move(list));
  }
  return base::Value(std::move(dict));
}
void MaybeToValue(const std::optional<ExecuteResponse>& 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 ExecuteResponse& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_model_version()) {
    dict.Set("model_version", ::proto_extras::ToNumericTypeForValue(message.model_version()));
  }
  if (message.has_response_metadata()) {
    dict.Set("response_metadata", ::optimization_guide::proto::ToValue(message.response_metadata()));
  }
  if (message.has_error_response()) {
    dict.Set("error_response", ::optimization_guide::proto::ToValue(message.error_response()));
  }
  if (message.has_server_execution_id()) {
    dict.Set("server_execution_id", (message.server_execution_id()));
  }
  return base::Value(std::move(dict));
}
void MaybeToValue(const std::optional<ErrorResponse>& 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 ErrorResponse& message) {
  base::DictValue dict;
  ::proto_extras::SerializeUnknownFields(message, dict);
  if (message.has_error_state()) {
    dict.Set("error_state", ::optimization_guide::proto::ErrorState_Name(message.error_state()));
  }
  return base::Value(std::move(dict));
}
}  // namespace proto
}  // namespace optimization_guide

