50 fs.
name = std::move(fn_name);
52 const auto bracket = text.find(
'[');
53 const auto paren_open = text.find(
'(', bracket);
54 if (paren_open == std::string_view::npos)
57 std::size_t
depth = 1;
58 std::size_t paren_close = paren_open + 1;
59 while (paren_close < text.size() &&
depth > 0) {
60 if (text[paren_close] ==
'(') {
62 }
else if (text[paren_close] ==
')') {
69 fs.
params = std::string(text.substr(paren_open + 1, paren_close - paren_open - 1));
71 const auto arrow = text.find(
"->", paren_close);
72 const auto brace_open = text.find(
'{', paren_close);
73 if (brace_open == std::string_view::npos)
76 if (arrow != std::string_view::npos && arrow < brace_open) {
77 auto rt = text.substr(arrow + 2, brace_open - arrow - 2);
78 const auto b = rt.find_first_not_of(
" \t\n\r");
79 const auto e = rt.find_last_not_of(
" \t\n\r");
80 if (
b != std::string_view::npos)
85 std::size_t brace_close = brace_open + 1;
86 while (brace_close < text.size() &&
depth > 0) {
87 if (text[brace_close] ==
'{') {
89 }
else if (text[brace_close] ==
'}') {
96 fs.
body = std::string(text.substr(brace_open + 1, brace_close - brace_open - 1));