// generated from rosidl_generator_cpp/resource/idl__traits.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__TRAITS_HPP_
#define G29_MSG__MSG__DETAIL__G29_MSG__TRAITS_HPP_

#include <stdint.h>

#include <sstream>
#include <string>
#include <type_traits>

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

namespace g29_msg
{

namespace msg
{

inline void to_flow_style_yaml(
  const G29Msg & msg,
  std::ostream & out)
{
  out << "{";
  // member: heartbeat
  {
    out << "heartbeat: ";
    rosidl_generator_traits::value_to_yaml(msg.heartbeat, out);
    out << ", ";
  }

  // member: axis0
  {
    out << "axis0: ";
    rosidl_generator_traits::value_to_yaml(msg.axis0, out);
    out << ", ";
  }

  // member: axis1
  {
    out << "axis1: ";
    rosidl_generator_traits::value_to_yaml(msg.axis1, out);
    out << ", ";
  }

  // member: axis2
  {
    out << "axis2: ";
    rosidl_generator_traits::value_to_yaml(msg.axis2, out);
    out << ", ";
  }

  // member: axis3
  {
    out << "axis3: ";
    rosidl_generator_traits::value_to_yaml(msg.axis3, out);
    out << ", ";
  }

  // member: axis4
  {
    out << "axis4: ";
    rosidl_generator_traits::value_to_yaml(msg.axis4, out);
    out << ", ";
  }

  // member: axis5
  {
    out << "axis5: ";
    rosidl_generator_traits::value_to_yaml(msg.axis5, out);
    out << ", ";
  }

  // member: button0
  {
    out << "button0: ";
    rosidl_generator_traits::value_to_yaml(msg.button0, out);
    out << ", ";
  }

  // member: button1
  {
    out << "button1: ";
    rosidl_generator_traits::value_to_yaml(msg.button1, out);
    out << ", ";
  }

  // member: button2
  {
    out << "button2: ";
    rosidl_generator_traits::value_to_yaml(msg.button2, out);
    out << ", ";
  }

  // member: button3
  {
    out << "button3: ";
    rosidl_generator_traits::value_to_yaml(msg.button3, out);
    out << ", ";
  }

  // member: button4
  {
    out << "button4: ";
    rosidl_generator_traits::value_to_yaml(msg.button4, out);
    out << ", ";
  }

  // member: button5
  {
    out << "button5: ";
    rosidl_generator_traits::value_to_yaml(msg.button5, out);
    out << ", ";
  }

  // member: button6
  {
    out << "button6: ";
    rosidl_generator_traits::value_to_yaml(msg.button6, out);
    out << ", ";
  }

  // member: button7
  {
    out << "button7: ";
    rosidl_generator_traits::value_to_yaml(msg.button7, out);
    out << ", ";
  }

  // member: button8
  {
    out << "button8: ";
    rosidl_generator_traits::value_to_yaml(msg.button8, out);
    out << ", ";
  }

  // member: button9
  {
    out << "button9: ";
    rosidl_generator_traits::value_to_yaml(msg.button9, out);
    out << ", ";
  }

  // member: button10
  {
    out << "button10: ";
    rosidl_generator_traits::value_to_yaml(msg.button10, out);
    out << ", ";
  }

  // member: button11
  {
    out << "button11: ";
    rosidl_generator_traits::value_to_yaml(msg.button11, out);
    out << ", ";
  }

  // member: button12
  {
    out << "button12: ";
    rosidl_generator_traits::value_to_yaml(msg.button12, out);
    out << ", ";
  }

  // member: button13
  {
    out << "button13: ";
    rosidl_generator_traits::value_to_yaml(msg.button13, out);
    out << ", ";
  }

  // member: button14
  {
    out << "button14: ";
    rosidl_generator_traits::value_to_yaml(msg.button14, out);
    out << ", ";
  }

  // member: button15
  {
    out << "button15: ";
    rosidl_generator_traits::value_to_yaml(msg.button15, out);
    out << ", ";
  }

  // member: button16
  {
    out << "button16: ";
    rosidl_generator_traits::value_to_yaml(msg.button16, out);
    out << ", ";
  }

  // member: button17
  {
    out << "button17: ";
    rosidl_generator_traits::value_to_yaml(msg.button17, out);
    out << ", ";
  }

  // member: button18
  {
    out << "button18: ";
    rosidl_generator_traits::value_to_yaml(msg.button18, out);
    out << ", ";
  }

  // member: button19
  {
    out << "button19: ";
    rosidl_generator_traits::value_to_yaml(msg.button19, out);
    out << ", ";
  }

  // member: button20
  {
    out << "button20: ";
    rosidl_generator_traits::value_to_yaml(msg.button20, out);
    out << ", ";
  }

  // member: button21
  {
    out << "button21: ";
    rosidl_generator_traits::value_to_yaml(msg.button21, out);
    out << ", ";
  }

  // member: button22
  {
    out << "button22: ";
    rosidl_generator_traits::value_to_yaml(msg.button22, out);
    out << ", ";
  }

  // member: button23
  {
    out << "button23: ";
    rosidl_generator_traits::value_to_yaml(msg.button23, out);
    out << ", ";
  }

  // member: button24
  {
    out << "button24: ";
    rosidl_generator_traits::value_to_yaml(msg.button24, out);
  }
  out << "}";
}  // NOLINT(readability/fn_size)

inline void to_block_style_yaml(
  const G29Msg & msg,
  std::ostream & out, size_t indentation = 0)
{
  // member: heartbeat
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "heartbeat: ";
    rosidl_generator_traits::value_to_yaml(msg.heartbeat, out);
    out << "\n";
  }

  // member: axis0
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "axis0: ";
    rosidl_generator_traits::value_to_yaml(msg.axis0, out);
    out << "\n";
  }

  // member: axis1
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "axis1: ";
    rosidl_generator_traits::value_to_yaml(msg.axis1, out);
    out << "\n";
  }

  // member: axis2
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "axis2: ";
    rosidl_generator_traits::value_to_yaml(msg.axis2, out);
    out << "\n";
  }

  // member: axis3
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "axis3: ";
    rosidl_generator_traits::value_to_yaml(msg.axis3, out);
    out << "\n";
  }

  // member: axis4
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "axis4: ";
    rosidl_generator_traits::value_to_yaml(msg.axis4, out);
    out << "\n";
  }

  // member: axis5
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "axis5: ";
    rosidl_generator_traits::value_to_yaml(msg.axis5, out);
    out << "\n";
  }

  // member: button0
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button0: ";
    rosidl_generator_traits::value_to_yaml(msg.button0, out);
    out << "\n";
  }

  // member: button1
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button1: ";
    rosidl_generator_traits::value_to_yaml(msg.button1, out);
    out << "\n";
  }

  // member: button2
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button2: ";
    rosidl_generator_traits::value_to_yaml(msg.button2, out);
    out << "\n";
  }

  // member: button3
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button3: ";
    rosidl_generator_traits::value_to_yaml(msg.button3, out);
    out << "\n";
  }

  // member: button4
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button4: ";
    rosidl_generator_traits::value_to_yaml(msg.button4, out);
    out << "\n";
  }

  // member: button5
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button5: ";
    rosidl_generator_traits::value_to_yaml(msg.button5, out);
    out << "\n";
  }

  // member: button6
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button6: ";
    rosidl_generator_traits::value_to_yaml(msg.button6, out);
    out << "\n";
  }

  // member: button7
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button7: ";
    rosidl_generator_traits::value_to_yaml(msg.button7, out);
    out << "\n";
  }

  // member: button8
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button8: ";
    rosidl_generator_traits::value_to_yaml(msg.button8, out);
    out << "\n";
  }

  // member: button9
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button9: ";
    rosidl_generator_traits::value_to_yaml(msg.button9, out);
    out << "\n";
  }

  // member: button10
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button10: ";
    rosidl_generator_traits::value_to_yaml(msg.button10, out);
    out << "\n";
  }

  // member: button11
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button11: ";
    rosidl_generator_traits::value_to_yaml(msg.button11, out);
    out << "\n";
  }

  // member: button12
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button12: ";
    rosidl_generator_traits::value_to_yaml(msg.button12, out);
    out << "\n";
  }

  // member: button13
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button13: ";
    rosidl_generator_traits::value_to_yaml(msg.button13, out);
    out << "\n";
  }

  // member: button14
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button14: ";
    rosidl_generator_traits::value_to_yaml(msg.button14, out);
    out << "\n";
  }

  // member: button15
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button15: ";
    rosidl_generator_traits::value_to_yaml(msg.button15, out);
    out << "\n";
  }

  // member: button16
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button16: ";
    rosidl_generator_traits::value_to_yaml(msg.button16, out);
    out << "\n";
  }

  // member: button17
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button17: ";
    rosidl_generator_traits::value_to_yaml(msg.button17, out);
    out << "\n";
  }

  // member: button18
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button18: ";
    rosidl_generator_traits::value_to_yaml(msg.button18, out);
    out << "\n";
  }

  // member: button19
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button19: ";
    rosidl_generator_traits::value_to_yaml(msg.button19, out);
    out << "\n";
  }

  // member: button20
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button20: ";
    rosidl_generator_traits::value_to_yaml(msg.button20, out);
    out << "\n";
  }

  // member: button21
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button21: ";
    rosidl_generator_traits::value_to_yaml(msg.button21, out);
    out << "\n";
  }

  // member: button22
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button22: ";
    rosidl_generator_traits::value_to_yaml(msg.button22, out);
    out << "\n";
  }

  // member: button23
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button23: ";
    rosidl_generator_traits::value_to_yaml(msg.button23, out);
    out << "\n";
  }

  // member: button24
  {
    if (indentation > 0) {
      out << std::string(indentation, ' ');
    }
    out << "button24: ";
    rosidl_generator_traits::value_to_yaml(msg.button24, out);
    out << "\n";
  }
}  // NOLINT(readability/fn_size)

inline std::string to_yaml(const G29Msg & msg, bool use_flow_style = false)
{
  std::ostringstream out;
  if (use_flow_style) {
    to_flow_style_yaml(msg, out);
  } else {
    to_block_style_yaml(msg, out);
  }
  return out.str();
}

}  // namespace msg

}  // namespace g29_msg

namespace rosidl_generator_traits
{

[[deprecated("use g29_msg::msg::to_block_style_yaml() instead")]]
inline void to_yaml(
  const g29_msg::msg::G29Msg & msg,
  std::ostream & out, size_t indentation = 0)
{
  g29_msg::msg::to_block_style_yaml(msg, out, indentation);
}

[[deprecated("use g29_msg::msg::to_yaml() instead")]]
inline std::string to_yaml(const g29_msg::msg::G29Msg & msg)
{
  return g29_msg::msg::to_yaml(msg);
}

template<>
inline const char * data_type<g29_msg::msg::G29Msg>()
{
  return "g29_msg::msg::G29Msg";
}

template<>
inline const char * name<g29_msg::msg::G29Msg>()
{
  return "g29_msg/msg/G29Msg";
}

template<>
struct has_fixed_size<g29_msg::msg::G29Msg>
  : std::integral_constant<bool, true> {};

template<>
struct has_bounded_size<g29_msg::msg::G29Msg>
  : std::integral_constant<bool, true> {};

template<>
struct is_message<g29_msg::msg::G29Msg>
  : std::true_type {};

}  // namespace rosidl_generator_traits

#endif  // G29_MSG__MSG__DETAIL__G29_MSG__TRAITS_HPP_
