// generated from rosidl_generator_cpp/resource/idl__builder.hpp.em
// with input from virtual_robot_prococol:msg/RobotStatus.idl
// generated code does not contain a copyright notice

#ifndef VIRTUAL_ROBOT_PROCOCOL__MSG__DETAIL__ROBOT_STATUS__BUILDER_HPP_
#define VIRTUAL_ROBOT_PROCOCOL__MSG__DETAIL__ROBOT_STATUS__BUILDER_HPP_

#include <algorithm>
#include <utility>

#include "virtual_robot_prococol/msg/detail/robot_status__struct.hpp"
#include "rosidl_runtime_cpp/message_initialization.hpp"


namespace virtual_robot_prococol
{

namespace msg
{

namespace builder
{

class Init_RobotStatus_speed_y
{
public:
  explicit Init_RobotStatus_speed_y(::virtual_robot_prococol::msg::RobotStatus & msg)
  : msg_(msg)
  {}
  ::virtual_robot_prococol::msg::RobotStatus speed_y(::virtual_robot_prococol::msg::RobotStatus::_speed_y_type arg)
  {
    msg_.speed_y = std::move(arg);
    return std::move(msg_);
  }

private:
  ::virtual_robot_prococol::msg::RobotStatus msg_;
};

class Init_RobotStatus_speed_x
{
public:
  explicit Init_RobotStatus_speed_x(::virtual_robot_prococol::msg::RobotStatus & msg)
  : msg_(msg)
  {}
  Init_RobotStatus_speed_y speed_x(::virtual_robot_prococol::msg::RobotStatus::_speed_x_type arg)
  {
    msg_.speed_x = std::move(arg);
    return Init_RobotStatus_speed_y(msg_);
  }

private:
  ::virtual_robot_prococol::msg::RobotStatus msg_;
};

class Init_RobotStatus_pos_y
{
public:
  explicit Init_RobotStatus_pos_y(::virtual_robot_prococol::msg::RobotStatus & msg)
  : msg_(msg)
  {}
  Init_RobotStatus_speed_x pos_y(::virtual_robot_prococol::msg::RobotStatus::_pos_y_type arg)
  {
    msg_.pos_y = std::move(arg);
    return Init_RobotStatus_speed_x(msg_);
  }

private:
  ::virtual_robot_prococol::msg::RobotStatus msg_;
};

class Init_RobotStatus_pos_x
{
public:
  Init_RobotStatus_pos_x()
  : msg_(::rosidl_runtime_cpp::MessageInitialization::SKIP)
  {}
  Init_RobotStatus_pos_y pos_x(::virtual_robot_prococol::msg::RobotStatus::_pos_x_type arg)
  {
    msg_.pos_x = std::move(arg);
    return Init_RobotStatus_pos_y(msg_);
  }

private:
  ::virtual_robot_prococol::msg::RobotStatus msg_;
};

}  // namespace builder

}  // namespace msg

template<typename MessageType>
auto build();

template<>
inline
auto build<::virtual_robot_prococol::msg::RobotStatus>()
{
  return virtual_robot_prococol::msg::builder::Init_RobotStatus_pos_x();
}

}  // namespace virtual_robot_prococol

#endif  // VIRTUAL_ROBOT_PROCOCOL__MSG__DETAIL__ROBOT_STATUS__BUILDER_HPP_
