// generated from rosidl_generator_cpp/resource/idl__builder.hpp.em
// with input from bcr_bot:srv/GetVisualTopics.idl
// generated code does not contain a copyright notice

#ifndef BCR_BOT__SRV__DETAIL__GET_VISUAL_TOPICS__BUILDER_HPP_
#define BCR_BOT__SRV__DETAIL__GET_VISUAL_TOPICS__BUILDER_HPP_

#include <algorithm>
#include <utility>

#include "bcr_bot/srv/detail/get_visual_topics__struct.hpp"
#include "rosidl_runtime_cpp/message_initialization.hpp"


namespace bcr_bot
{

namespace srv
{

namespace builder
{

class Init_GetVisualTopics_Request_refresh
{
public:
  Init_GetVisualTopics_Request_refresh()
  : msg_(::rosidl_runtime_cpp::MessageInitialization::SKIP)
  {}
  ::bcr_bot::srv::GetVisualTopics_Request refresh(::bcr_bot::srv::GetVisualTopics_Request::_refresh_type arg)
  {
    msg_.refresh = std::move(arg);
    return std::move(msg_);
  }

private:
  ::bcr_bot::srv::GetVisualTopics_Request msg_;
};

}  // namespace builder

}  // namespace srv

template<typename MessageType>
auto build();

template<>
inline
auto build<::bcr_bot::srv::GetVisualTopics_Request>()
{
  return bcr_bot::srv::builder::Init_GetVisualTopics_Request_refresh();
}

}  // namespace bcr_bot


namespace bcr_bot
{

namespace srv
{

namespace builder
{

class Init_GetVisualTopics_Response_point_cloud_topics
{
public:
  explicit Init_GetVisualTopics_Response_point_cloud_topics(::bcr_bot::srv::GetVisualTopics_Response & msg)
  : msg_(msg)
  {}
  ::bcr_bot::srv::GetVisualTopics_Response point_cloud_topics(::bcr_bot::srv::GetVisualTopics_Response::_point_cloud_topics_type arg)
  {
    msg_.point_cloud_topics = std::move(arg);
    return std::move(msg_);
  }

private:
  ::bcr_bot::srv::GetVisualTopics_Response msg_;
};

class Init_GetVisualTopics_Response_camera_info_topics
{
public:
  explicit Init_GetVisualTopics_Response_camera_info_topics(::bcr_bot::srv::GetVisualTopics_Response & msg)
  : msg_(msg)
  {}
  Init_GetVisualTopics_Response_point_cloud_topics camera_info_topics(::bcr_bot::srv::GetVisualTopics_Response::_camera_info_topics_type arg)
  {
    msg_.camera_info_topics = std::move(arg);
    return Init_GetVisualTopics_Response_point_cloud_topics(msg_);
  }

private:
  ::bcr_bot::srv::GetVisualTopics_Response msg_;
};

class Init_GetVisualTopics_Response_rgb_image_topics
{
public:
  explicit Init_GetVisualTopics_Response_rgb_image_topics(::bcr_bot::srv::GetVisualTopics_Response & msg)
  : msg_(msg)
  {}
  Init_GetVisualTopics_Response_camera_info_topics rgb_image_topics(::bcr_bot::srv::GetVisualTopics_Response::_rgb_image_topics_type arg)
  {
    msg_.rgb_image_topics = std::move(arg);
    return Init_GetVisualTopics_Response_camera_info_topics(msg_);
  }

private:
  ::bcr_bot::srv::GetVisualTopics_Response msg_;
};

class Init_GetVisualTopics_Response_depth_image_topics
{
public:
  Init_GetVisualTopics_Response_depth_image_topics()
  : msg_(::rosidl_runtime_cpp::MessageInitialization::SKIP)
  {}
  Init_GetVisualTopics_Response_rgb_image_topics depth_image_topics(::bcr_bot::srv::GetVisualTopics_Response::_depth_image_topics_type arg)
  {
    msg_.depth_image_topics = std::move(arg);
    return Init_GetVisualTopics_Response_rgb_image_topics(msg_);
  }

private:
  ::bcr_bot::srv::GetVisualTopics_Response msg_;
};

}  // namespace builder

}  // namespace srv

template<typename MessageType>
auto build();

template<>
inline
auto build<::bcr_bot::srv::GetVisualTopics_Response>()
{
  return bcr_bot::srv::builder::Init_GetVisualTopics_Response_depth_image_topics();
}

}  // namespace bcr_bot

#endif  // BCR_BOT__SRV__DETAIL__GET_VISUAL_TOPICS__BUILDER_HPP_
