Loading...
Searching...
No Matches
pqxx::string_traits< TYPE > Struct Template Reference

Traits class for use in string conversions. More...

## Static Public Member Functions

static zview | to_buf (char *begin, char *end, TYPE const &value)
| Return a `string_view` representing value, plus terminating zero.
static char * | into_buf (char *begin, char *end, TYPE const &value)
| Write value's string representation into buffer at `begin`.
static TYPE | from_string (std::string_view text)
| Parse a string representation of a `TYPE` value.
static std::size_t | size_buffer (TYPE const &value) noexcept
| Estimate how much buffer space is needed to represent value.

## Static Public Attributes

static constexpr bool | converts_to_string {false}
| Is conversion from TYPE to strings supported?
static constexpr bool | converts_from_string {false}
| Is conversion from string_view to TYPE supported?

## Detailed Description

template<typename TYPE>
struct pqxx::string_traits< TYPE >

Traits class for use in string conversions.

Specialize this template for a type for which you wish to add to_string and from_string support.

String conversions are not meant to work for nulls. Check for null before converting a value of `TYPE` to a string, or vice versa, and handle them separately.

## Member Function Documentation

## from_string()

template<typename TYPE>

TYPE pqxx::string_traits< TYPE >::from_string | ( | std::string_view | text | ) |

inline static nodiscard

Parse a string representation of a `TYPE` value.

Throws `conversion_error` if `value` does not meet the expected format for a value of this type.

Warning
  A null value has no string representation. Do not parse a null.

## size_buffer()

template<typename TYPE>

std::size_t pqxx::string_traits< TYPE >::size_buffer | ( | TYPE const & | value | ) |

inline static nodiscard noexcept

Estimate how much buffer space is needed to represent value.

The estimate may be a little pessimistic, if it saves time.

The estimate includes the terminating zero.

## to_buf()

template<typename TYPE>

zview pqxx::string_traits< TYPE >::to_buf | ( | char * | begin,
|  | char * | end,
|  | TYPE const & | value )

inline static nodiscard

Return a `string_view` representing value, plus terminating zero.

Produces a `string_view` containing the PostgreSQL string representation for `value`.

Warning
  A null value has no string representation. Do not pass a null.

Uses the space from `begin` to `end` as a buffer, if needed. The returned string may lie somewhere in that buffer, or it may be a compile-time constant, or it may be null if value was a null value. Even if the string is stored in the buffer, its `begin()` may or may not be the same as `begin`.

The `string_view` is guaranteed to be valid as long as the buffer from `begin` to `end` remains accessible and unmodified.

Exceptions

  pqxx::conversion_overrun | if the provided buffer space may not be enough. For maximum performance, this is a conservative estimate. It may complain about a buffer which is actually large enough for your value, if an exact check gets too expensive.

## Member Data Documentation

## converts_from_string

template<typename TYPE>

bool pqxx::string_traits< TYPE >::converts_from_string {false}

static constexpr

Is conversion from string_view to TYPE supported?

When defining your own conversions, specialise this as true to indicate that your string traits support from_string.

## converts_to_string

template<typename TYPE>

bool pqxx::string_traits< TYPE >::converts_to_string {false}

static constexpr

Is conversion from TYPE to strings supported?

When defining your own conversions, specialise this as true to indicate that your string traits support the conversions to strings.

The documentation for this struct was generated from the following file:

- /build/libpqxx-hcWu4i/libpqxx-7.10.0/include/pqxx/strconv.hxx