diff options
author | tastytea | 2020-01-08 16:46:27 +0100 |
---|---|---|
committer | tastytea | 2020-01-08 16:46:27 +0100 |
commit | 1f78b00205f885c6becdbb51688393cd37573899 (patch) | |
tree | 4c03cb30162cd5cc68432b4339a7887743a150dd | |
parent | 2ab0018df9b2f8d17278d05095c1ac0428b93aa4 (diff) | |
download | mastodonpp-1f78b00205f885c6becdbb51688393cd37573899.tar mastodonpp-1f78b00205f885c6becdbb51688393cd37573899.tar.gz mastodonpp-1f78b00205f885c6becdbb51688393cd37573899.zip |
Replace string with string_view where possible.
-rw-r--r-- | include/api.hpp | 2 | ||||
-rw-r--r-- | include/connection.hpp | 11 | ||||
-rw-r--r-- | include/curl_wrapper.hpp | 4 | ||||
-rw-r--r-- | include/instance.hpp | 4 | ||||
-rw-r--r-- | src/connection.cpp | 6 | ||||
-rw-r--r-- | src/curl_wrapper.cpp | 20 | ||||
-rw-r--r-- | src/instance.cpp | 2 |
7 files changed, 27 insertions, 22 deletions
diff --git a/include/api.hpp b/include/api.hpp index e508fa1..7c89af4 100644 --- a/include/api.hpp +++ b/include/api.hpp @@ -312,7 +312,7 @@ public: [[nodiscard]] inline string_view to_string_view() const { - return _endpoint_map.at(_endpoint).data(); + return _endpoint_map.at(_endpoint); } private: diff --git a/include/connection.hpp b/include/connection.hpp index 90027fb..fcb2a23 100644 --- a/include/connection.hpp +++ b/include/connection.hpp @@ -33,7 +33,12 @@ using std::string; using std::string_view; using std::variant; -using endpoint_variant = variant<API::endpoint_type,string>; +/*! + * @brief An endpoint. Either API::endpoint_type or `std::string_view`. + * + * @since 0.1.0 + */ +using endpoint_variant = variant<API::endpoint_type,string_view>; /*! * @brief Represents a connection to an instance. Used for requests. @@ -66,7 +71,7 @@ public: * })}; * @endcode * - * @param endpoint Endpoint as API::endpoint_type or `std::string`. + * @param endpoint Endpoint as API::endpoint_type or `std::string_view`. * @param parameters A map of parameters. * * @@ -83,7 +88,7 @@ public: * auto answer{connection.get("/api/v1/instance")}; * @endcode * - * @param endpoint Endpoint as API::endpoint_type or `std::string`. + * @param endpoint Endpoint as API::endpoint_type or `std::string_view`. * * @since 0.1.0 */ diff --git a/include/curl_wrapper.hpp b/include/curl_wrapper.hpp index 146e481..ecc30e1 100644 --- a/include/curl_wrapper.hpp +++ b/include/curl_wrapper.hpp @@ -58,13 +58,13 @@ enum class http_method * parametermap parameters * { * {"id", "12"}, - * {"poll[options]", vector<string>{"Yes", "No", "Maybe"}} + * {"poll[options]", vector<string_view>{"Yes", "No", "Maybe"}} * }; * @endcode * * @since 0.1.0 */ -using parametermap = map<string, variant<string, vector<string>>>; +using parametermap = map<string_view, variant<string_view, vector<string_view>>>; /*! * @brief Handles the details of network connections. diff --git a/include/instance.hpp b/include/instance.hpp index 914a470..cecb324 100644 --- a/include/instance.hpp +++ b/include/instance.hpp @@ -50,8 +50,8 @@ public: * * @since 0.1.0 */ - explicit Instance(const string_view &hostname, - const string_view &access_token); + explicit Instance(const string_view hostname, + const string_view access_token); /*! * @brief Returns the hostname. diff --git a/src/connection.cpp b/src/connection.cpp index 794247b..f471c4e 100644 --- a/src/connection.cpp +++ b/src/connection.cpp @@ -29,16 +29,16 @@ Connection::Connection(Instance &instance) answer_type Connection::get(const endpoint_variant &endpoint, const parametermap ¶meters) { - string uri{[&] + const string uri{[&] { if (holds_alternative<API::endpoint_type>(endpoint)) { return string(_baseuri).append( API{std::get<API::endpoint_type>(endpoint)}.to_string_view()); } - - return std::get<string>(endpoint); + return string(std::get<string_view>(endpoint)); }()}; + return make_request(http_method::GET, uri, parameters); } diff --git a/src/curl_wrapper.cpp b/src/curl_wrapper.cpp index 1e1040b..7b0eb79 100644 --- a/src/curl_wrapper.cpp +++ b/src/curl_wrapper.cpp @@ -88,32 +88,32 @@ answer_type CURLWrapper::make_request(const http_method &method, string uri, if (pos != string::npos) { uri.replace(pos, param.first.size() + 2, - get<string>(param.second)); + get<string_view>(param.second)); } continue; } static bool first{true}; if (first) { - uri.append("?"); + uri += "?"; first = false; } else { - uri.append("&"); + uri += "&"; } - if (holds_alternative<string>(param.second)) + if (holds_alternative<string_view>(param.second)) { - uri.append(param.first + '=' + get<string>(param.second)); + ((uri += param.first) += "=") += get<string_view>(param.second); } else { - for (const auto &arg : get<vector<string>>(param.second)) + for (const auto &arg : get<vector<string_view>>(param.second)) { - uri.append(param.first + "[]=" + arg); - if (arg != *get<vector<string>>(param.second).rbegin()) + ((uri += param.first) += "[]=") += arg; + if (arg != *get<vector<string_view>>(param.second).rbegin()) { - uri.append("&"); + uri += "&"; } } } @@ -238,7 +238,7 @@ void CURLWrapper::setup_curl() // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg) code = curl_easy_setopt(_connection, CURLOPT_USERAGENT, - string("mastorss/").append(version).c_str()); + (string("mastorss/") += version).c_str()); if (code != CURLE_OK) { throw CURLException{code, "Failed to set User-Agent", diff --git a/src/instance.cpp b/src/instance.cpp index e10675f..72369e5 100644 --- a/src/instance.cpp +++ b/src/instance.cpp @@ -23,7 +23,7 @@ namespace mastodonpp using std::stoull; -Instance::Instance(const string_view &hostname, const string_view &access_token) +Instance::Instance(const string_view hostname, const string_view access_token) : _hostname{hostname} , _baseuri{"https://" + _hostname} , _access_token{access_token} |