void serialize_field( const rosidl_typesupport_introspection_c__MessageMember * member, void * field, eprosima::fastcdr::Cdr & ser) { if (!member->is_array_) { ser << *static_cast<T *>(field); } else if (member->array_size_ && !member->is_upper_bound_) { ser.serializeArray(static_cast<T *>(field), member->array_size_); } else { auto & data = *reinterpret_cast<typename GenericCSequence<T>::type *>(field); ser.serializeSequence(reinterpret_cast<T *>(data.data), data.size); } }