31#ifndef MYSQLX_DETAIL_ROW_H
32#define MYSQLX_DETAIL_ROW_H
41#include "../document.h"
53template <
class COLS>
class Row_result_detail;
54struct Table_insert_detail;
57class PUBLIC_API Row_detail
63 std::shared_ptr<Impl> m_impl;
66 Row_detail() =
default;
68 Row_detail(std::shared_ptr<Impl> &&impl)
70 m_impl = std::move(impl);
73 col_count_t col_count()
const;
74 bytes get_bytes(col_count_t)
const;
75 Value& get_val(col_count_t);
84 const Impl& get_impl()
const
86 return const_cast<Row_detail*
>(
this)->get_impl();
91 using Args_prc = Args_processor<Row_detail, std::pair<Impl*, col_count_t>*>;
93 template<
typename... Types>
94 void set_values(col_count_t pos, Types... args)
98 std::pair<Impl*, col_count_t> data{ m_impl.get(), pos };
99 Args_prc::process_args(&data, args...);
102 static void process_one(std::pair<Impl*, col_count_t>*,
const Value &val);
104 friend Table_insert_detail;
105 friend Row_result_detail<Columns>;