// TJP COPYRIGHT HEADER #pragma once #include #include namespace tjp::core::internet { inline void join_(String &base, const StringView &url) { if (base.empty()) { concat_(base, url); } else if (!url.empty()) { if (base.back() == '/' && url.front() == '/') concat_(base, url.substr(1)); else if (base.back() != '/' && url.front() != '/') concat_(base, "/", url); else concat_(base, url); } } template String join(Args&& ...args) { String result; (join_(result, std::forward(args)), ...); return result; } } // namespace