4#ifndef _Stroika_Foundation_DataExchange_InternetMediaType_h_
5#define _Stroika_Foundation_DataExchange_InternetMediaType_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
10#include "Stroika/Foundation/Containers/Mapping.h"
12#include "Stroika/Foundation/DataExchange/DefaultSerializer.h"
23 using Characters::String;
74 explicit InternetMediaType (AtomType type, AtomType subType, optional<AtomType> suffix,
77 explicit InternetMediaType (
const String& type,
const String& subType,
const optional<String>& suffix,
88 template <
typename RETURN_TYPE = String>
97 template <
typename RETURN_TYPE = String>
108 template <
typename RETURN_TYPE = String>
123 template <
typename T>
124 nonvirtual T
As ()
const;
130 nonvirtual
bool empty ()
const;
136 nonvirtual
void clear ();
151 nonvirtual strong_ordering THREEWAYCOMPARE_ (
const InternetMediaType& rhs)
const;
157 nonvirtual
String ToString ()
const;
162 optional<AtomType> fSuffix_;
174 struct hash<Stroika::Foundation::DataExchange::InternetMediaType> {
180 struct DefaultSerializer<Stroika::Foundation::DataExchange::InternetMediaType> {
190#include "InternetMediaType.inl"
String is like std::u32string, except it is much easier to use, often much more space efficient,...
Memory::BLOB operator()(const T &t) const