/* * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 * Copyright (C) 2008-2016 TrinityCore * Copyright (C) 2005-2009 MaNGOS */ #ifndef __STRING_FORMAT_H__ #define __STRING_FORMAT_H__ #include "fmt/printf.h" namespace ACORE { /// Default AC string format function. template inline std::string StringFormat(Format&& fmt, Args&& ... args) { try { return fmt::sprintf(std::forward(fmt), std::forward(args)...); } catch (const fmt::format_error& formatError) { std::string error = "An error occurred formatting string \"" + std::string(fmt) + "\" : " + std::string(formatError.what()); return error; } } /// Returns true if the given char pointer is null. inline bool IsFormatEmptyOrNull(char const* fmt) { return fmt == nullptr; } /// Returns true if the given std::string is empty. inline bool IsFormatEmptyOrNull(std::string const& fmt) { return fmt.empty(); } } #endif