99 static constexpr auto eDecoded = StringPCTEncodedFlag::eDecoded;
100 static constexpr auto ePCTEncoded = StringPCTEncodedFlag::ePCTEncoded;
120 URI (
const optional<SchemeType>& scheme,
const optional<Authority>& authority,
const String& path =
String{},
121 const optional<String>& query = nullopt,
const optional<String>& fragment = nullopt);
123 template <Characters::IConvertibleToString STRISH_TYPE>
124 URI (STRISH_TYPE&& encodedURI);
125 URI (
const URI&) =
default;
127 URI (
URI&&) noexcept = default;
131 nonvirtual
URI& operator= (const
URI&) = default;
132 nonvirtual
URI& operator= (
URI&&) noexcept = default;
178 nonvirtual optional<SchemeType>
GetScheme () const;
188 nonvirtual
void SetScheme (const optional<SchemeType>& scheme);
189 nonvirtual
void SetScheme (const SchemeType& scheme);
200 nonvirtual
void SetAuthority (const optional<Authority>& authority);
215 nonvirtual
String GetPath () const;
283 nonvirtual optional<RETURN_TYPE> GetQuery () const;
288 nonvirtual
void SetQuery (const optional<
String>& query);
289 nonvirtual
void SetQuery (const optional<
Query>& query);
300 nonvirtual optional<
String> GetFragment () const;
305 nonvirtual
void SetFragment (const optional<
String>& query);
346 template <Common::IAnyOf<String,
string> T>
347 nonvirtual T
As (optional<StringPCTEncodedFlag> pctEncoded = {})
const;
350 nonvirtual
String AsString_ (optional<StringPCTEncodedFlag> pctEncoded)
const;
356 nonvirtual
explicit operator bool ()
const;
378 nonvirtual strong_ordering operator<=> (
const URI& rhs)
const;
383 nonvirtual
bool operator== (
const URI& rhs)
const;
386 static strong_ordering TWC_ (
const URI& lhs,
const URI& rhs);
395 static void CheckValidPathForAuthority_ (
const optional<Authority>& authority,
const String& path);
398 optional<SchemeType> fScheme_;
399 optional<Authority> fAuthority_;
401 optional<String> fQuery_;
402 optional<String> fFragment_;