11 #ifndef PQXX_H_BINARYSTRING
12 #define PQXX_H_BINARYSTRING
14 #include "pqxx/compiler-public.hxx"
15 #include "pqxx/internal/compiler-internal-pre.hxx"
19 #include <string_view>
21 #include "pqxx/result.hxx"
57 using value_type = std::char_traits<char_type>::char_type;
84 [[nodiscard]]
bool empty() const noexcept {
return size() == 0; }
94 return *(data() + m_size - 1);
116 [[nodiscard]] PQXX_PURE
bool operator==(
binarystring const &)
const noexcept;
119 return not operator==(rhs);
125 const_reference at(size_type)
const;
134 [[nodiscard]]
char const *
get() const noexcept
136 return reinterpret_cast<char const *
>(m_buf.get());
140 [[nodiscard]] std::string_view
view() const noexcept
142 return std::string_view(get(), size());
151 [[nodiscard]] std::string str()
const;
154 std::shared_ptr<value_type> m_buf;
159 #include "pqxx/internal/compiler-internal-post.hxx"
const_reverse_iterator crend() const
Definition: binarystring.hxx:106
const_reference front() const noexcept
Definition: binarystring.hxx:91
std::reverse_iterator< const_iterator > const_reverse_iterator
Definition: binarystring.hxx:63
value_type const * const_pointer
Definition: binarystring.hxx:61
The home of all libpqxx classes, functions, templates, etc.
Definition: array.hxx:25
PQXX_PURE bool operator==(binarystring const &) const noexcept
Definition: binarystring.cxx:66
void swap(binarystring &)
Swap contents with other binarystring.
Definition: binarystring.cxx:90
std::string to_string(field const &value)
Convert a field to a string.
Definition: result.cxx:478
long difference_type
Definition: binarystring.hxx:59
const_iterator cbegin() const noexcept
Definition: binarystring.hxx:87
unsigned char char_type
Definition: binarystring.hxx:56
value_type const & const_reference
Definition: binarystring.hxx:60
binarystring & operator=(binarystring const &)
bool empty() const noexcept
Definition: binarystring.hxx:84
const_reverse_iterator rend() const
Definition: binarystring.hxx:102
const_reference back() const noexcept
Definition: binarystring.hxx:92
std::string str() const
Read as regular C++ string (may include null characters).
Definition: binarystring.cxx:101
const_reference at(size_type) const
Index contained string, checking for valid index.
Definition: binarystring.cxx:76
binarystring(binarystring const &)=default
const_reverse_iterator rbegin() const
Definition: binarystring.hxx:97
const_iterator end() const noexcept
Definition: binarystring.hxx:88
const_pointer const_iterator
Definition: binarystring.hxx:62
size_type length() const noexcept
Size of converted string in bytes.
Definition: binarystring.hxx:83
size_type size() const noexcept
Size of converted string in bytes.
Definition: binarystring.hxx:81
const value_type * data() const noexcept
Unescaped field contents.
Definition: binarystring.hxx:109
const_iterator cend() const noexcept
Definition: binarystring.hxx:89
const_reverse_iterator crbegin() const
Definition: binarystring.hxx:101
const_iterator begin() const noexcept
Definition: binarystring.hxx:86
const char * c_str() const
Read as plain C string.
Definition: field.cxx:62
Reference to a field in a result set.
Definition: field.hxx:32
size_t size_type
Definition: binarystring.hxx:58
const char * get() const noexcept
Raw character buffer (no terminating zero is added).
Definition: binarystring.hxx:134
std::string_view view() const noexcept
Read contents as a std::string_view.
Definition: binarystring.hxx:140
bool operator!=(binarystring const &rhs) const noexcept
Definition: binarystring.hxx:117
std::char_traits< char_type >::char_type value_type
Definition: binarystring.hxx:57
Binary data corresponding to PostgreSQL's "BYTEA" binary-string type.
Definition: binarystring.hxx:53
const_reference operator[](size_type i) const noexcept
Definition: binarystring.hxx:111