Skip to content

Commit ea12b13

Browse files
committed
Removed assertions in parts accessors, return empty string_view.
1 parent 6cb3fac commit ea12b13

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

src/uri.cpp

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -252,70 +252,73 @@ bool uri::has_scheme() const noexcept {
252252
}
253253

254254
uri::string_view uri::scheme() const noexcept {
255-
assert(has_scheme());
256-
return to_string_view(uri_, *uri_parts_->scheme);
255+
return has_scheme() ? to_string_view(uri_, *uri_parts_->scheme)
256+
: string_view{};
257257
}
258258

259259
bool uri::has_user_info() const noexcept {
260260
return static_cast<bool>(uri_parts_->hier_part.user_info);
261261
}
262262

263263
uri::string_view uri::user_info() const noexcept {
264-
assert(has_user_info());
265-
return to_string_view(uri_, *uri_parts_->hier_part.user_info);
264+
return has_user_info()
265+
? to_string_view(uri_, *uri_parts_->hier_part.user_info)
266+
: string_view{};
266267
}
267268

268269
bool uri::has_host() const noexcept {
269270
return static_cast<bool>(uri_parts_->hier_part.host);
270271
}
271272

272273
uri::string_view uri::host() const noexcept {
273-
assert(has_host());
274-
return to_string_view(uri_, *uri_parts_->hier_part.host);
274+
return has_host() ? to_string_view(uri_, *uri_parts_->hier_part.host)
275+
: string_view{};
275276
}
276277

277278
bool uri::has_port() const noexcept {
278279
return static_cast<bool>(uri_parts_->hier_part.port);
279280
}
280281

281282
uri::string_view uri::port() const noexcept {
282-
assert(has_port());
283-
return to_string_view(uri_, *uri_parts_->hier_part.port);
283+
return has_port() ? to_string_view(uri_, *uri_parts_->hier_part.port)
284+
: string_view{};
284285
}
285286

286287
bool uri::has_path() const noexcept {
287288
return static_cast<bool>(uri_parts_->hier_part.path);
288289
}
289290

290291
uri::string_view uri::path() const noexcept {
291-
assert(has_path());
292-
return to_string_view(uri_, *uri_parts_->hier_part.path);
292+
return has_path() ? to_string_view(uri_, *uri_parts_->hier_part.path)
293+
: string_view{};
293294
}
294295

295296
bool uri::has_query() const noexcept {
296297
return static_cast<bool>(uri_parts_->query);
297298
}
298299

299300
uri::string_view uri::query() const noexcept {
300-
assert(has_query());
301-
return to_string_view(uri_, *uri_parts_->query);
301+
return has_query() ? to_string_view(uri_, *uri_parts_->query) : string_view{};
302302
}
303303

304304
bool uri::has_fragment() const noexcept {
305305
return static_cast<bool>(uri_parts_->fragment);
306306
}
307307

308308
uri::string_view uri::fragment() const noexcept {
309-
assert(has_fragment());
310-
return to_string_view(uri_, *uri_parts_->fragment);
309+
return has_fragment() ? to_string_view(uri_, *uri_parts_->fragment)
310+
: string_view{};
311311
}
312312

313313
bool uri::has_authority() const noexcept {
314314
return has_host();
315315
}
316316

317317
uri::string_view uri::authority() const noexcept {
318-
assert(has_host());
318+
if (!has_host()) {
319+
return string_view{};
320+
}
321+
319322
auto host = this->host();
320323

321324
auto user_info = string_view{};

0 commit comments

Comments
 (0)