#include <dpp/export.h>
#include <dpp/snowflake.h>
#include <dpp/misc-enum.h>
#include <string>
#include <vector>
#include <unordered_map>
#include <map>
#include <functional>
#include <cstddef>
#include <variant>
#include <memory>
#include <string_view>
Classes | |
struct | dpp::utility::dummy< T > |
Utility struct that has the same size and alignment as another but does nothing. More... | |
struct | dpp::utility::icon |
Wrapper class around a variant for either iconhash or image, for API objects that have one or the other (generally iconhash when receiving, image when uploading an image) More... | |
struct | dpp::utility::iconhash |
Store a 128 bit icon hash (profile picture, server icon etc) as a 128 bit binary value made of two uint64_t. More... | |
struct | dpp::utility::image_data |
Image to be received or sent to API calls. More... | |
struct | dpp::utility::uptime |
A class used to represent an uptime in hours, minutes, seconds and days, with helper functions to convert from time_t and display as a string. More... | |
Namespaces | |
dpp | |
The main namespace for D++ functions. | |
dpp::utility | |
Utility helper functions, generally for logging, running programs, time/date manipulation, etc. | |
Macros | |
#define | DPP_CHECK_ABI_COMPAT(a, b) |
Macro that expands to static_asserts checking sizeof and alignof are equal between two types. More... | |
Typedefs | |
typedef std::function< void(const std::string &output)> | dpp::utility::cmd_result_t |
Callback for the results of a command executed via dpp::utility::exec. More... | |
Enumerations | |
enum | dpp::utility::avx_type_t : uint8_t { dpp::utility::avx_none, dpp::utility::avx_1, dpp::utility::avx_2, dpp::utility::avx_512 } |
Supported AVX instruction set type for audio mixing. More... | |
enum | dpp::utility::guild_navigation_type { dpp::utility::gnt_customize, dpp::utility::gnt_browse, dpp::utility::gnt_guide } |
Guild navigation types for dpp::utility::guild_navigation() More... | |
enum | dpp::utility::time_format : uint8_t { dpp::utility::tf_long_date = 'D', dpp::utility::tf_long_datetime = 'F', dpp::utility::tf_relative_time = 'R', dpp::utility::tf_long_time = 'T', dpp::utility::tf_short_date = 'd', dpp::utility::tf_short_datetime = 'f', dpp::utility::tf_short_time = 't' } |
Timestamp formats for dpp::utility::timestamp() More... | |
Functions | |
std::string DPP_EXPORT | dpp::utility::avatar_size (uint32_t size) |
Get the url query parameter for the cdn endpoint. More... | |
std::string DPP_EXPORT | dpp::utility::bot_invite_url (const snowflake bot_id, const uint64_t permissions=0, const std::vector< std::string > &scopes={"bot", "applications.commands"}) |
Create a bot invite. More... | |
std::string DPP_EXPORT | dpp::utility::bytes (uint64_t c) |
Convert a byte count to display value. More... | |
std::string DPP_EXPORT | dpp::utility::cdn_endpoint_url (const std::vector< image_type > &allowed_formats, const std::string &path_without_extension, const dpp::image_type format, uint16_t size, bool prefer_animated=false, bool is_animated=false) |
Helper function to easily create discord's cdn endpoint urls. More... | |
std::string DPP_EXPORT | dpp::utility::cdn_endpoint_url_hash (const std::vector< image_type > &allowed_formats, const std::string &path_without_extension, const std::string &hash, const dpp::image_type format, uint16_t size, bool prefer_animated=false, bool is_animated=false) |
Helper function to easily create discord's cdn endpoint urls. More... | |
std::string DPP_EXPORT | dpp::utility::cdn_endpoint_url_sticker (snowflake sticker_id, sticker_format format) |
Helper function to easily create discord's cdn endpoint urls (specialised for stickers) More... | |
std::string DPP_EXPORT | dpp::utility::channel_mention (const snowflake &id) |
Create a mentionable channel. More... | |
std::string DPP_EXPORT | dpp::utility::channel_url (const snowflake &guild_id, const snowflake &channel_id) |
Create a URL for message. More... | |
uint32_t DPP_EXPORT | dpp::utility::cmyk (double c, double m, double y, double k) |
Convert doubles to CMYK for sending in embeds. More... | |
uint32_t DPP_EXPORT | dpp::utility::cmyk (int c, int m, int y, int k) |
Convert ints to CMYK for sending in embeds. More... | |
std::string DPP_EXPORT | dpp::utility::current_date_time () |
Returns current date and time. More... | |
std::string DPP_EXPORT | dpp::utility::debug_dump (uint8_t *data, size_t length) |
Output hex values of a section of memory for debugging. More... | |
std::string DPP_EXPORT | dpp::utility::emoji_mention (std::string_view name, snowflake id, bool is_animated=false) |
Create a mentionable emoji. More... | |
void DPP_EXPORT | dpp::utility::exec (const std::string &cmd, std::vector< std::string > parameters={}, cmd_result_t callback={}) |
Run a commandline program asynchronously. More... | |
std::string DPP_EXPORT | dpp::utility::file_extension (image_type type) |
Get the file extension for an image type. More... | |
std::string DPP_EXPORT | dpp::utility::file_extension (sticker_format format) |
Get the file extension for a sticker format. More... | |
std::string DPP_EXPORT | dpp::utility::guild_navigation (const snowflake guild_id, guild_navigation_type gnt) |
Create a mentionable guild navigation (used in a message). More... | |
bool DPP_EXPORT | dpp::utility::has_voice () |
Returns true if D++ was built with voice support. More... | |
uint32_t DPP_EXPORT | dpp::utility::hsl (double h, double s, double l) |
Convert doubles to HSL for sending in embeds. More... | |
uint32_t DPP_EXPORT | dpp::utility::hsl (int h, int s, int l) |
Convert ints to HSL for sending in embeds. More... | |
bool DPP_EXPORT | dpp::utility::is_coro_enabled () |
Returns true if D++ was built with coroutine support. More... | |
std::string DPP_EXPORT | dpp::utility::loglevel (dpp::loglevel in) |
Convert a dpp::loglevel enum value to a string. More... | |
std::string DPP_EXPORT | dpp::utility::make_url_parameters (const std::map< std::string, std::string > ¶meters) |
Build a URL parameter string e.g. More... | |
std::string DPP_EXPORT | dpp::utility::make_url_parameters (const std::map< std::string, uint64_t > ¶meters) |
Build a URL parameter string e.g. More... | |
std::string DPP_EXPORT | dpp::utility::markdown_escape (const std::string &text, bool escape_code_blocks=false) |
Escapes Discord's markdown sequences in a string. More... | |
std::string DPP_EXPORT | dpp::utility::message_url (const snowflake &guild_id, const snowflake &channel_id, const snowflake &message_id) |
Create a URL for message. More... | |
std::string DPP_EXPORT | dpp::utility::mime_type (image_type type) |
Get the mime type for an image type. More... | |
std::string DPP_EXPORT | dpp::utility::mime_type (sticker_format format) |
Get the mime type for a sticker format. More... | |
std::string DPP_EXPORT | dpp::utility::read_file (const std::string &filename) |
Read a whole file into a std::string. More... | |
uint32_t DPP_EXPORT | dpp::utility::rgb (double red, double green, double blue) |
Convert doubles to RGB for sending in embeds. More... | |
uint32_t DPP_EXPORT | dpp::utility::rgb (int red, int green, int blue) |
Convert ints to RGB for sending in embeds. More... | |
std::string DPP_EXPORT | dpp::utility::role_mention (const snowflake &id) |
Create a mentionable role. More... | |
void DPP_EXPORT | dpp::utility::set_thread_name (const std::string &name) |
Set the name of the current thread for debugging and statistical reporting. More... | |
std::string DPP_EXPORT | dpp::utility::slashcommand_mention (snowflake command_id, const std::string &command_name, const std::string &subcommand="") |
Create a mentionable slashcommand (used in a message). More... | |
std::string DPP_EXPORT | dpp::utility::slashcommand_mention (snowflake command_id, const std::string &command_name, const std::string &subcommand_group, const std::string &subcommand) |
Create a mentionable slashcommand (used in a message). More... | |
std::string DPP_EXPORT | dpp::utility::thread_url (const snowflake &guild_id, const snowflake &thread_id) |
Create a URL for message. More... | |
double DPP_EXPORT | dpp::utility::time_f () |
Return the current time with fractions of seconds. More... | |
std::string DPP_EXPORT | dpp::utility::timestamp (time_t ts, time_format tf=tf_short_datetime) |
Return a mentionable timestamp (used in a message). More... | |
std::vector< std::string > DPP_EXPORT | dpp::utility::tokenize (std::string const &in, const char *sep="\r\n") |
Split (tokenize) a string into a vector, using the given separators. More... | |
std::string DPP_EXPORT | dpp::utility::url_encode (const std::string &value) |
Encodes a url parameter similar to php urlencode() More... | |
std::string DPP_EXPORT | dpp::utility::user_mention (const snowflake &id) |
Create a mentionable user. More... | |
std::string DPP_EXPORT | dpp::utility::user_url (const snowflake &user_id) |
Create a URL for message. More... | |
size_t DPP_EXPORT | dpp::utility::utf8len (std::string_view str) |
Returns the length of a UTF-8 string in codepoints. More... | |
std::string DPP_EXPORT | dpp::utility::utf8substr (std::string_view str, size_t start, size_t length) |
Return substring of a UTF-8 encoded string in codepoints. More... | |
std::string_view DPP_EXPORT | dpp::utility::utf8subview (std::string_view str, size_t start, size_t length) |
Return subview of a UTF-8 encoded string in codepoints. More... | |
std::string DPP_EXPORT | dpp::utility::validate (const std::string &value, size_t _min, size_t _max, const std::string &exception_message) |
Validate a string value In the event the length of the string is less than _min, then an exception of type dpp:length_exception will be thrown. More... | |
std::string DPP_EXPORT | dpp::utility::version () |
Returns the library's version string. More... | |
avx_type_t DPP_EXPORT | dpp::utility::voice_avx () |
Returns an enum value indicating which AVX instruction set is used for mixing received voice data, if any. More... | |
Variables | |
template<typename F , typename R , typename... Args> | |
constexpr bool | dpp::utility::callable_returns_v = std::is_convertible_v<std::invoke_result_t<F, Args...>, R> |
Type trait to check if a callable F can be called using the arguments Args, and that its return value is convertible to R. More... | |
const std::string | dpp::utility::cdn_host = "https://cdn.discordapp.com" |
The base URL for CDN content such as profile pictures and guild icons. More... | |
const std::string | dpp::utility::url_host = "https://discord.com" |
The base URL for message/user/channel links. More... | |