20 inline const ConstColNamesPtr& names()
const noexcept {
return names_; }
21 inline void set_names(ConstColNamesPtr names) { names_ = std::move(names); }
22 inline std::vector<CSVRow>& rows()
noexcept {
return rows_; }
23 inline const std::vector<CSVRow>& rows()
const noexcept {
return rows_; }
24 inline size_t n_cols()
const noexcept {
return names_->size(); }
25 inline const RowOverlay* find_edits(
size_t)
const noexcept {
return nullptr; }
27 inline CellBinding bind(
size_t,
size_t column)
const {
28 validate_column(column, n_cols());
33 validate_column(column, n_cols());
34 return RowViewAccessor::view(rows_[row], column);
37 inline CSVRow make_inserted_row(
const std::vector<std::string>& row,
CSVError& error)
const {
38 if (!validate_row(row, n_cols(), error))
return {};
39 return RowStorageBuilder::make_row(row, names_);
42 inline void reserve_insert() { reserve_next(rows_); }
43 inline void insert_row(
size_t index,
CSVRow&& row) {
44 rows_.insert(rows_.begin() + index, std::move(row));
46 inline void erase_row(
size_t index) { rows_.erase(rows_.begin() + index); }
55 inline void replace_rows(std::vector<CSVRow>&& rows, ConstColNamesPtr names)
noexcept {
56 rows_ = std::move(rows);
57 names_ = std::move(names);
61 ConstColNamesPtr names_ = std::make_shared<ColNames>();
62 std::vector<CSVRow> rows_;