11#if !defined(ALIB_C20_MODULES) || ((ALIB_C20_MODULES != 0) && (ALIB_C20_MODULES != 1))
12# error "Symbol ALIB_C20_MODULES has to be given to the compiler as either 0 or 1"
20# include <unordered_map>
32 export module ALib.Format.PropertyFormatters;
36 import ALib.EnumRecords;
37 import ALib.Exceptions;
39 import ALib.Format.PropertyFormatter;
40 import ALib.Variables;
159template<
typename TFormattable,
typename TVariables >
170 std::unordered_map<TVariables, PropertyFormatter*>
formatters;
207 ,
config ( configuration )
224 delete formatter.second;
234 void Format(
AString& target, TVariables option, TFormattable& formattable )
242 if( varEntryIt.Enum() == option )
252 std::make_pair( option,
259 "No entry for option {!Q<>} found in option table of PropertyFormatters.",
260 static_cast<std::underlying_type_t<TVariables>
>(option) )
263 formatter->second->Format( target, formattable );
275template<
typename TFormattable,
typename TOptionEnum >
291 TFormattable& pFormattable )
306 namespace APPENDABLES {
314template<
typename TFormattable,
typename TOptionEnum >
332template<
typename TFormattable,
typename TOptionEnum >
353template<
typename TFormattable,
typename TOptionEnum >
constexpr bool IsEmpty() const
Priority GetPriority() const
#define ALIB_CALLER_NULLED
#define ALIB_ASSERT_ERROR(cond, domain,...)
LocalString< 256 > String256
Type alias name for TLocalString<character,256>.
strings::TAString< character, lang::HeapAllocator > AString
Type alias in namespace alib.
variables::Variable Variable
Type alias in namespace alib.
format::PropertyFormatters< TFormattable, TOptionEnum > PropertyFormatters
Type alias in namespace alib.
enumrecords::EnumRecords< TEnum > EnumRecords
Type alias in namespace alib.
format::PropertyFormatter PropertyFormatter
Type alias in namespace alib.
exceptions::Exception Exception
Type alias in namespace alib.
containers::SharedPtr< format::Formatter > SPFormatter
characters::character character
Type alias in namespace alib.