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

#ifndef G29_MSG__MSG__DETAIL__G29_MSG__BUILDER_HPP_
#define G29_MSG__MSG__DETAIL__G29_MSG__BUILDER_HPP_

#include <algorithm>
#include <utility>

#include "g29_msg/msg/detail/g29_msg__struct.hpp"
#include "rosidl_runtime_cpp/message_initialization.hpp"


namespace g29_msg
{

namespace msg
{

namespace builder
{

class Init_G29Msg_button24
{
public:
  explicit Init_G29Msg_button24(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  ::g29_msg::msg::G29Msg button24(::g29_msg::msg::G29Msg::_button24_type arg)
  {
    msg_.button24 = std::move(arg);
    return std::move(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button23
{
public:
  explicit Init_G29Msg_button23(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button24 button23(::g29_msg::msg::G29Msg::_button23_type arg)
  {
    msg_.button23 = std::move(arg);
    return Init_G29Msg_button24(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button22
{
public:
  explicit Init_G29Msg_button22(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button23 button22(::g29_msg::msg::G29Msg::_button22_type arg)
  {
    msg_.button22 = std::move(arg);
    return Init_G29Msg_button23(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button21
{
public:
  explicit Init_G29Msg_button21(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button22 button21(::g29_msg::msg::G29Msg::_button21_type arg)
  {
    msg_.button21 = std::move(arg);
    return Init_G29Msg_button22(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button20
{
public:
  explicit Init_G29Msg_button20(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button21 button20(::g29_msg::msg::G29Msg::_button20_type arg)
  {
    msg_.button20 = std::move(arg);
    return Init_G29Msg_button21(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button19
{
public:
  explicit Init_G29Msg_button19(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button20 button19(::g29_msg::msg::G29Msg::_button19_type arg)
  {
    msg_.button19 = std::move(arg);
    return Init_G29Msg_button20(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button18
{
public:
  explicit Init_G29Msg_button18(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button19 button18(::g29_msg::msg::G29Msg::_button18_type arg)
  {
    msg_.button18 = std::move(arg);
    return Init_G29Msg_button19(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button17
{
public:
  explicit Init_G29Msg_button17(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button18 button17(::g29_msg::msg::G29Msg::_button17_type arg)
  {
    msg_.button17 = std::move(arg);
    return Init_G29Msg_button18(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button16
{
public:
  explicit Init_G29Msg_button16(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button17 button16(::g29_msg::msg::G29Msg::_button16_type arg)
  {
    msg_.button16 = std::move(arg);
    return Init_G29Msg_button17(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button15
{
public:
  explicit Init_G29Msg_button15(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button16 button15(::g29_msg::msg::G29Msg::_button15_type arg)
  {
    msg_.button15 = std::move(arg);
    return Init_G29Msg_button16(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button14
{
public:
  explicit Init_G29Msg_button14(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button15 button14(::g29_msg::msg::G29Msg::_button14_type arg)
  {
    msg_.button14 = std::move(arg);
    return Init_G29Msg_button15(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button13
{
public:
  explicit Init_G29Msg_button13(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button14 button13(::g29_msg::msg::G29Msg::_button13_type arg)
  {
    msg_.button13 = std::move(arg);
    return Init_G29Msg_button14(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button12
{
public:
  explicit Init_G29Msg_button12(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button13 button12(::g29_msg::msg::G29Msg::_button12_type arg)
  {
    msg_.button12 = std::move(arg);
    return Init_G29Msg_button13(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button11
{
public:
  explicit Init_G29Msg_button11(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button12 button11(::g29_msg::msg::G29Msg::_button11_type arg)
  {
    msg_.button11 = std::move(arg);
    return Init_G29Msg_button12(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button10
{
public:
  explicit Init_G29Msg_button10(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button11 button10(::g29_msg::msg::G29Msg::_button10_type arg)
  {
    msg_.button10 = std::move(arg);
    return Init_G29Msg_button11(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button9
{
public:
  explicit Init_G29Msg_button9(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button10 button9(::g29_msg::msg::G29Msg::_button9_type arg)
  {
    msg_.button9 = std::move(arg);
    return Init_G29Msg_button10(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button8
{
public:
  explicit Init_G29Msg_button8(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button9 button8(::g29_msg::msg::G29Msg::_button8_type arg)
  {
    msg_.button8 = std::move(arg);
    return Init_G29Msg_button9(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button7
{
public:
  explicit Init_G29Msg_button7(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button8 button7(::g29_msg::msg::G29Msg::_button7_type arg)
  {
    msg_.button7 = std::move(arg);
    return Init_G29Msg_button8(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button6
{
public:
  explicit Init_G29Msg_button6(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button7 button6(::g29_msg::msg::G29Msg::_button6_type arg)
  {
    msg_.button6 = std::move(arg);
    return Init_G29Msg_button7(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button5
{
public:
  explicit Init_G29Msg_button5(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button6 button5(::g29_msg::msg::G29Msg::_button5_type arg)
  {
    msg_.button5 = std::move(arg);
    return Init_G29Msg_button6(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button4
{
public:
  explicit Init_G29Msg_button4(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button5 button4(::g29_msg::msg::G29Msg::_button4_type arg)
  {
    msg_.button4 = std::move(arg);
    return Init_G29Msg_button5(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button3
{
public:
  explicit Init_G29Msg_button3(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button4 button3(::g29_msg::msg::G29Msg::_button3_type arg)
  {
    msg_.button3 = std::move(arg);
    return Init_G29Msg_button4(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button2
{
public:
  explicit Init_G29Msg_button2(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button3 button2(::g29_msg::msg::G29Msg::_button2_type arg)
  {
    msg_.button2 = std::move(arg);
    return Init_G29Msg_button3(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button1
{
public:
  explicit Init_G29Msg_button1(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button2 button1(::g29_msg::msg::G29Msg::_button1_type arg)
  {
    msg_.button1 = std::move(arg);
    return Init_G29Msg_button2(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_button0
{
public:
  explicit Init_G29Msg_button0(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button1 button0(::g29_msg::msg::G29Msg::_button0_type arg)
  {
    msg_.button0 = std::move(arg);
    return Init_G29Msg_button1(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_axis5
{
public:
  explicit Init_G29Msg_axis5(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_button0 axis5(::g29_msg::msg::G29Msg::_axis5_type arg)
  {
    msg_.axis5 = std::move(arg);
    return Init_G29Msg_button0(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_axis4
{
public:
  explicit Init_G29Msg_axis4(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_axis5 axis4(::g29_msg::msg::G29Msg::_axis4_type arg)
  {
    msg_.axis4 = std::move(arg);
    return Init_G29Msg_axis5(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_axis3
{
public:
  explicit Init_G29Msg_axis3(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_axis4 axis3(::g29_msg::msg::G29Msg::_axis3_type arg)
  {
    msg_.axis3 = std::move(arg);
    return Init_G29Msg_axis4(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_axis2
{
public:
  explicit Init_G29Msg_axis2(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_axis3 axis2(::g29_msg::msg::G29Msg::_axis2_type arg)
  {
    msg_.axis2 = std::move(arg);
    return Init_G29Msg_axis3(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_axis1
{
public:
  explicit Init_G29Msg_axis1(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_axis2 axis1(::g29_msg::msg::G29Msg::_axis1_type arg)
  {
    msg_.axis1 = std::move(arg);
    return Init_G29Msg_axis2(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_axis0
{
public:
  explicit Init_G29Msg_axis0(::g29_msg::msg::G29Msg & msg)
  : msg_(msg)
  {}
  Init_G29Msg_axis1 axis0(::g29_msg::msg::G29Msg::_axis0_type arg)
  {
    msg_.axis0 = std::move(arg);
    return Init_G29Msg_axis1(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

class Init_G29Msg_heartbeat
{
public:
  Init_G29Msg_heartbeat()
  : msg_(::rosidl_runtime_cpp::MessageInitialization::SKIP)
  {}
  Init_G29Msg_axis0 heartbeat(::g29_msg::msg::G29Msg::_heartbeat_type arg)
  {
    msg_.heartbeat = std::move(arg);
    return Init_G29Msg_axis0(msg_);
  }

private:
  ::g29_msg::msg::G29Msg msg_;
};

}  // namespace builder

}  // namespace msg

template<typename MessageType>
auto build();

template<>
inline
auto build<::g29_msg::msg::G29Msg>()
{
  return g29_msg::msg::builder::Init_G29Msg_heartbeat();
}

}  // namespace g29_msg

#endif  // G29_MSG__MSG__DETAIL__G29_MSG__BUILDER_HPP_
