Update
Integrated std::byte added to C++17 recently
This commit is contained in:
@ -15,41 +15,41 @@ namespace std::net
|
||||
};
|
||||
|
||||
template <typename F>
|
||||
static ParseResult<std::string> ParseUntil(char const* str, F func)
|
||||
static ParseResult<string> ParseUntil(char const* str, F func)
|
||||
{
|
||||
ParseResult<std::string> result{};
|
||||
ParseResult<string> result{};
|
||||
char const* ch = str;
|
||||
for (; *ch && !func(*ch); ++ch)
|
||||
{
|
||||
}
|
||||
|
||||
result.value = std::string(str, ch - str);
|
||||
result.value = string(str, ch - str);
|
||||
result.ch = ch;
|
||||
return result;
|
||||
}
|
||||
|
||||
template <typename F>
|
||||
static inline ParseResult<std::string> ParseWhile(char const* str, F func)
|
||||
static inline ParseResult<string> ParseWhile(char const* str, F func)
|
||||
{
|
||||
ParseResult<std::string> result{};
|
||||
ParseResult<string> result{};
|
||||
char const* ch = str;
|
||||
for (; *ch && func(*ch); ++ch)
|
||||
{
|
||||
}
|
||||
|
||||
result.value = std::string(str, ch - str);
|
||||
result.value = string(str, ch - str);
|
||||
result.ch = ch;
|
||||
return result;
|
||||
}
|
||||
|
||||
static inline ParseResult<std::string> ParseToken(char const* str)
|
||||
static inline ParseResult<string> ParseToken(char const* str)
|
||||
{
|
||||
auto token = ParseUntil(str, isspace);
|
||||
token.ch = ParseWhile(token.ch, isspace).ch;
|
||||
return token;
|
||||
}
|
||||
|
||||
static inline ParseResult<std::string> parseCrLf(char const* str)
|
||||
static inline ParseResult<string> parseCrLf(char const* str)
|
||||
{
|
||||
auto cr = ParseUntil(str, [](char ch) { return ch == '\r'; });
|
||||
if (*cr.ch == '\r')
|
||||
@ -60,7 +60,7 @@ namespace std::net
|
||||
});
|
||||
}
|
||||
|
||||
static inline ParseResult<std::string> ParseWhitespace(char const* str)
|
||||
static inline ParseResult<string> ParseWhitespace(char const* str)
|
||||
{
|
||||
return ParseWhile(str, isspace);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user