MySQL 9.6.0
Source Code Documentation
out_str_write.h File Reference

Experimental API header. More...

Go to the source code of this file.

Namespaces

namespace  mysql
 
namespace  mysql::strconv
 
namespace  mysql::strconv::detail
 

Concepts

concept  mysql::strconv::Is_string_producer_counter
 True if Test can be invoked with a String_counter & argument and returns void or Return_status.
 
concept  mysql::strconv::Is_string_producer_writer
 True if Test can be invoked with a String_writer & argument and returns void or Return_status.
 
concept  mysql::strconv::Is_string_producer_pair
 True for pairs of string producer counters/writers that can be used with out_str_write, i.e., the counter accepts a String_counter &, the writer accepts a String_writer &, and the return types are either void or Return_status.
 
concept  mysql::strconv::Is_string_producer
 True for invocables that can be used with out_str_write, i.e., which accept either a String_writer & or a String_counter & argument, and the return type is either void or Return_status.
 

Typedefs

using mysql::strconv::detail::Nop_t = decltype(nop)
 Type of nop. More...
 

Functions

template<Is_out_str Out_str_t, class Producer_counter_t , class Producer_writer_t , std::invocable Oom_action_t>
requires Is_string_producer_pair<Producer_counter_t, Producer_writer_t>
mysql::utils::Return_status mysql::strconv::detail::do_out_str_write (const Out_str_t &out_str, const Producer_counter_t &producer_counter, const Producer_writer_t &producer_writer, const Oom_action_t &oom_action)
 Common implementation for the two overloads of out_str_write(out_str, producer_counter, producer_writer, oom_action). More...
 
template<Is_out_str Out_str_t, class Producer_counter_t , class Producer_writer_t , std::invocable Oom_action_t = detail::Nop_t>
requires Is_string_producer_pair<Producer_counter_t, Producer_writer_t>
mysql::utils::Return_status mysql::strconv::out_str_write (const Out_str_t &out_str, const Producer_counter_t &producer_counter, const Producer_writer_t &producer_writer, const Oom_action_t &oom_action=detail::nop)
 Given an Is_out_str object, a String_producer_counter, and a String_producer_writer, resizes the object as needed and then writes to it. More...
 
template<Is_out_str_fixed Out_str_t, class Producer_counter_t , class Producer_writer_t , std::invocable Oom_action_t = detail::Nop_t>
requires Is_string_producer_pair<Producer_counter_t, Producer_writer_t> && (std::same_as< std::invoke_result_t<Producer_counter_t, String_counter &>, void>) && (std::same_as< std::invoke_result_t<Producer_writer_t, String_writer &>, void>)
void mysql::strconv::out_str_write (const Out_str_t &out_str, const Producer_counter_t &producer_counter, const Producer_writer_t &producer_writer, const Oom_action_t &oom_action=detail::nop)
 Given an Is_out_str object, a String_producer_counter, and a String_producer_writer, resizes the object as needed and then writes to it. More...
 
template<std::invocable Oom_action_t = detail::Nop_t>
auto mysql::strconv::out_str_write (const Is_out_str auto &out_str, const Is_string_producer auto &producer, const Oom_action_t &oom_action=detail::nop)
 Given an Is_out_str object and an Is_string_producer, resize the object as needed and then write to it. More...
 
template<std::invocable Oom_action_t = detail::Nop_t>
auto mysql::strconv::out_str_copy (const Is_out_str auto &out_str, const std::string_view &sv, const Oom_action_t &oom_action=detail::nop)
 Copy the given string_view to the Output String Wrapper, resizing as needed. More...
 

Variables

auto mysql::strconv::detail::nop = [] {}
 Lambda that takes no argument, does nothing, and returns void. More...
 

Detailed Description

Experimental API header.