summaryrefslogtreecommitdiff
path: root/include/boost/sqlite/row.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/boost/sqlite/row.hpp')
-rw-r--r--include/boost/sqlite/row.hpp167
1 files changed, 0 insertions, 167 deletions
diff --git a/include/boost/sqlite/row.hpp b/include/boost/sqlite/row.hpp
deleted file mode 100644
index 6893f96..0000000
--- a/include/boost/sqlite/row.hpp
+++ /dev/null
@@ -1,167 +0,0 @@
-// Copyright (c) 2022 Klemens D. Morgenstern
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_SQLITE_ROW_HPP
-#define BOOST_SQLITE_ROW_HPP
-
-#include <boost/sqlite/field.hpp>
-
-BOOST_SQLITE_BEGIN_NAMESPACE
-
-/** @brief Representation of a row in a database.
- @ingroup reference
-
- Is a random-access range.
-
- All values that are obtained by view are valid until the next row is read.
-
- */
-struct row
-{
- /// The size of the row
- std::size_t size() const
- {
- return sqlite3_column_count(stm_);
- }
- /// Returns the field at `idx`, @throws std::out_of_range
- BOOST_SQLITE_DECL
- field at(std::size_t idx) const;
- /// Returns the field at `idx`.
- field operator[](std::size_t idx) const
- {
- field f;
- f.stm_ = stm_;
- f.col_ = static_cast<int>(idx);
- return f;
- }
- /// Random access iterator used to iterate over the columns.
- struct const_iterator
- {
- using difference_type = int;
- using reference = field&;
- using iterator_category = std::random_access_iterator_tag;
-
- const_iterator & operator++()
- {
- f_.col_++;
- return *this;
- }
-
- const_iterator operator++(int)
- {
- auto last = *this;
- ++(*this);
- return last;
- }
-
- const_iterator & operator--()
- {
- f_.col_--;
- return *this;
- }
-
- const_iterator operator--(int)
- {
- auto last = *this;
- --(*this);
- return last;
- }
-
- field operator[](int i) const
- {
- auto f = f_;
- f.col_ += i;
- return f;
- }
-
- const_iterator operator+(int i) const
- {
- auto r = *this;
- r.f_.col_ += i;
- return r;
- }
-
- const_iterator operator-(int i) const
- {
- auto r = *this;
- r.f_.col_ -= i;
- return r;
- }
-
- const_iterator & operator+=(int i)
- {
- f_.col_ += i;
- return *this;
- }
-
- const_iterator & operator-=(int i)
- {
- f_.col_ -= i;
- return *this;
- }
-
- const field & operator*() const
- {
- return f_;
- }
-
- const field * operator->() const
- {
- return &f_;
- }
-
- bool operator==(const const_iterator& other) const
- {
- return f_.col_ == other.f_.col_
- && f_.stm_ == other.f_.stm_;
- }
-
- bool operator!=(const const_iterator& other) const
- {
- return f_.col_ != other.f_.col_
- || f_.stm_ != other.f_.stm_;
- }
-
- bool operator<(const const_iterator& other) const
- {
- return f_.col_ < other.f_.col_
- && f_.stm_ < other.f_.stm_;
- }
-
- bool operator>(const const_iterator& other) const
- {
- return f_.col_ > other.f_.col_
- && f_.stm_ > other.f_.stm_;
- }
-
- const_iterator() = default;
- private:
- friend struct row;
- field f_;
- };
- /// Returns the begin of the column-range.
- const_iterator begin() const
- {
- const_iterator ci;
- ci.f_.col_ = 0;
- ci.f_.stm_ = stm_;
- return ci;
- }
- /// Returns the end of the column-range.
- const_iterator end() const
- {
- const_iterator ci;
- ci.f_.col_ = sqlite3_column_count(stm_);
- ci.f_.stm_ = stm_;
- return ci;
- }
- private:
- friend struct resultset;
- sqlite3_stmt * stm_;
-
-};
-
-BOOST_SQLITE_END_NAMESPACE
-
-#endif //BOOST_SQLITE_ROW_HPP