Made Stream::readAsString() and Stream::c_readAsString() work with arbitrary std::basic_string instances.

This commit is contained in:
Patrick 2025-07-09 00:57:19 +02:00
parent cf860392a5
commit addae96c91

View File

@ -281,11 +281,11 @@ public:
StreamError readLine(std::string& outString); StreamError readLine(std::string& outString);
mijin::Task<StreamError> c_readLine(std::string& outString); mijin::Task<StreamError> c_readLine(std::string& outString);
template<typename TChar = char> template<typename TChar = char, typename TTraits = std::char_traits<TChar>, typename TAllocator = MIJIN_DEFAULT_ALLOCATOR<char>>
StreamError readAsString(std::basic_string<TChar>& outString); StreamError readAsString(std::basic_string<TChar, TTraits, TAllocator>& outString);
template<typename TChar = char> template<typename TChar = char, typename TTraits = std::char_traits<TChar>, typename TAllocator = MIJIN_DEFAULT_ALLOCATOR<char>>
mijin::Task<StreamError> c_readAsString(std::basic_string<TChar>& outString); mijin::Task<StreamError> c_readAsString(std::basic_string<TChar, TTraits, TAllocator>& outString);
StreamError writeText(std::string_view str) StreamError writeText(std::string_view str)
{ {
@ -438,8 +438,8 @@ mijin::Task<StreamError> Stream::c_readRest(BaseTypelessBuffer<TAllocator>& outB
co_return StreamError::SUCCESS; co_return StreamError::SUCCESS;
} }
template<typename TChar> template<typename TChar, typename TTraits, typename TAllocator>
StreamError Stream::readAsString(std::basic_string<TChar>& outString) StreamError Stream::readAsString(std::basic_string<TChar, TTraits, TAllocator>& outString)
{ {
static_assert(sizeof(TChar) == 1, "Can only read to 8-bit character types (char, unsigned char or char8_t"); static_assert(sizeof(TChar) == 1, "Can only read to 8-bit character types (char, unsigned char or char8_t");
@ -474,8 +474,8 @@ StreamError Stream::readAsString(std::basic_string<TChar>& outString)
return StreamError::SUCCESS; return StreamError::SUCCESS;
} }
template<typename TChar> template<typename TChar, typename TTraits, typename TAllocator>
mijin::Task<StreamError> Stream::c_readAsString(std::basic_string<TChar>& outString) mijin::Task<StreamError> Stream::c_readAsString(std::basic_string<TChar, TTraits, TAllocator>& outString)
{ {
static_assert(sizeof(TChar) == 1, "Can only read to 8-bit character types (char, unsigned char or char8_t"); static_assert(sizeof(TChar) == 1, "Can only read to 8-bit character types (char, unsigned char or char8_t");