D++ (DPP)  10.0.30
C++ Discord API Bot Library
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1234]
 Cdpp::active_thread_infoA thread alongside the bot's optional thread_member object tied to it
 Cdpp::activityAn activity is a representation of what a user is doing
 Cdpp::activity_assetsAn activity asset are the images and the hover text displayed in the rich presence
 Cdpp::activity_buttonAn activity button is a custom button shown in the rich presence
 Cdpp::activity_partyInformation for the current party of the player
 Cdpp::activity_secretsSecrets for Rich Presence joining and spectating
 Cdpp::message::allowed_refAllowed mentions details
 Cdpp::poll_results::answer_countRepresents a reference to an answer and its count of votes
 Cdpp::app_teamRepresents a team of users who maintain a bot/application
 Cdpp::application_install_paramsRepresents the settings for the bot/application's in-app authorization link
 Cdpp::detail::when_any::arg_helper_s< T >Type trait helper to obtain the actual type that will be used by a when_any when a type is passed as a parameter
 Cdpp::detail::when_any::arg_helper_s< dpp::event_router_t< T > >
 Cdpp::detail::async::async_base< R >Base class of dpp::async
 Cdpp::detail::async::async_callback_data< R >State of the async and its callback
 Cdpp::async_dummy
 Cdpp::attachmentRepresents an attachment in a dpp::message
 Cdpp::audio_mixerA class for audio mixing operations using x64 instructions
 Cdpp::audit_changeDefines audit log changes
 Cdpp::audit_extraExtra information for an audit log entry
 Cdpp::detail::event_router::awaitable< T >Awaitable object representing an event
 Cdpp::detail::event_router::awaitable< dpp::autocomplete_t >
 Cdpp::detail::event_router::awaitable< dpp::automod_rule_create_t >
 Cdpp::detail::event_router::awaitable< dpp::automod_rule_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::automod_rule_execute_t >
 Cdpp::detail::event_router::awaitable< dpp::automod_rule_update_t >
 Cdpp::detail::event_router::awaitable< dpp::button_click_t >
 Cdpp::detail::event_router::awaitable< dpp::channel_create_t >
 Cdpp::detail::event_router::awaitable< dpp::channel_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::channel_pins_update_t >
 Cdpp::detail::event_router::awaitable< dpp::channel_update_t >
 Cdpp::detail::event_router::awaitable< dpp::entitlement_create_t >
 Cdpp::detail::event_router::awaitable< dpp::entitlement_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::entitlement_update_t >
 Cdpp::detail::event_router::awaitable< dpp::form_submit_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_audit_log_entry_create_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_ban_add_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_ban_remove_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_create_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_emojis_update_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_integrations_update_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_join_request_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_member_add_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_member_remove_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_member_update_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_members_chunk_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_role_create_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_role_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_role_update_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_scheduled_event_create_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_scheduled_event_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_scheduled_event_update_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_scheduled_event_user_add_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_scheduled_event_user_remove_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_stickers_update_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_update_t >
 Cdpp::detail::event_router::awaitable< dpp::integration_create_t >
 Cdpp::detail::event_router::awaitable< dpp::integration_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::integration_update_t >
 Cdpp::detail::event_router::awaitable< dpp::interaction_create_t >
 Cdpp::detail::event_router::awaitable< dpp::invite_create_t >
 Cdpp::detail::event_router::awaitable< dpp::invite_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::log_t >
 Cdpp::detail::event_router::awaitable< dpp::message_context_menu_t >
 Cdpp::detail::event_router::awaitable< dpp::message_create_t >
 Cdpp::detail::event_router::awaitable< dpp::message_delete_bulk_t >
 Cdpp::detail::event_router::awaitable< dpp::message_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::message_poll_vote_add_t >
 Cdpp::detail::event_router::awaitable< dpp::message_poll_vote_remove_t >
 Cdpp::detail::event_router::awaitable< dpp::message_reaction_add_t >
 Cdpp::detail::event_router::awaitable< dpp::message_reaction_remove_all_t >
 Cdpp::detail::event_router::awaitable< dpp::message_reaction_remove_emoji_t >
 Cdpp::detail::event_router::awaitable< dpp::message_reaction_remove_t >
 Cdpp::detail::event_router::awaitable< dpp::message_update_t >
 Cdpp::detail::event_router::awaitable< dpp::presence_update_t >
 Cdpp::detail::event_router::awaitable< dpp::ready_t >
 Cdpp::detail::event_router::awaitable< dpp::resumed_t >
 Cdpp::detail::event_router::awaitable< dpp::select_click_t >
 Cdpp::detail::event_router::awaitable< dpp::slashcommand_t >
 Cdpp::detail::event_router::awaitable< dpp::stage_instance_create_t >
 Cdpp::detail::event_router::awaitable< dpp::stage_instance_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::stage_instance_update_t >
 Cdpp::detail::event_router::awaitable< dpp::thread_create_t >
 Cdpp::detail::event_router::awaitable< dpp::thread_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::thread_list_sync_t >
 Cdpp::detail::event_router::awaitable< dpp::thread_member_update_t >
 Cdpp::detail::event_router::awaitable< dpp::thread_members_update_t >
 Cdpp::detail::event_router::awaitable< dpp::thread_update_t >
 Cdpp::detail::event_router::awaitable< dpp::typing_start_t >
 Cdpp::detail::event_router::awaitable< dpp::user_context_menu_t >
 Cdpp::detail::event_router::awaitable< dpp::user_update_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_buffer_send_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_client_disconnect_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_client_speaking_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_ready_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_receive_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_server_update_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_state_update_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_track_marker_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_user_talking_t >
 Cdpp::detail::event_router::awaitable< dpp::webhooks_update_t >
 Cdpp::when_any< Args >::awaiterObject returned by operator co_await()
 Cdpp::bucket_tA rate limit bucket
 Cdpp::cache< T >A cache object maintains a cache of dpp::managed objects
 Cdpp::cache_policy_tRepresents the caching policy of the cluster
 Cdpp::clusterGroup of shards and a command queue for sending and receiving commands from discord via HTTP
 Cdpp::collector< T, C >Collects objects from events during a specified time period
 Cdpp::command_data_optionValues in the command interaction
 Cdpp::command_info_tRepresents the details of a command added to the command handler class
 Cdpp::command_interactionDetails of a command within an interaction
 Cdpp::command_resolvedResolved snowflake ids to users, guild members, roles and channels
 Cdpp::command_sourceRepresents the sending source of a command
 Cdpp::commandhandlerGroup of commands, prefixed or slash commands with handling functions
 Cdpp::anonymous_namespace{queues.cpp}::compare_requestComparator for sorting a request container
 Cdpp::request_queue::completed_requestA completed request
 Cdpp::component_default_valueA Default value structure for components
 Cdpp::component_interactionA button click for a button component
 Cdpp::confirmationConfirmation object represents any true or false simple REST request
 Cdpp::confirmation_callback_tThe results of a REST call wrapped in a convenient struct
 Cdpp::coroutineBase type for a coroutine, starts on co_await
 Cdpp::detail::coroutine::coroutine_base< R >Base class of dpp::coroutine<R>
 Cdpp::coroutine_dummy
 Cdpp::detail::std_coroutine::coroutine_traits< dpp::coroutine< R >, Args... >Specialization of std::coroutine_traits, helps the standard library figure out a promise type from a coroutine function
 Cdpp::detail::std_coroutine::coroutine_traits< dpp::job, Args... >Specialization of std::coroutine_traits, helps the standard library figure out a promise type from a coroutine function
 Cdpp::detail::std_coroutine::coroutine_traits< dpp::task< T >, Args... >Specialization of std::coroutine_traits, helps the standard library figure out a promise_t type from a coroutine function
 Cdpp::dns_cache_entryRepresents a cached DNS result
 Cdpp::utility::dummy< T >Utility struct that has the same size and alignment as another but does nothing
 Cdpp::embedA rich embed for display within a dpp::message
 Cdpp::embed_authorAuthor within a dpp::embed object
 Cdpp::embed_fieldA dpp::embed may contain zero or more fields
 Cdpp::embed_footerA footer in a dpp::embed
 Cdpp::embed_imageAn video, image or thumbnail in a dpp::embed
 Cdpp::embed_providerEmbed provider in a dpp::embed
 Cdpp::detail::when_any::emptyEmpty result from void-returning awaitable
 Cdpp::detail::empty_tag_tEmpty struct used for overload resolution
 Cdpp::error_detailThe details of a field in an error response
 Cdpp::error_infoThe full details of an error from a REST response
 Cdpp::etf_bufferRepresents a buffer of bytes being encoded into ETF
 Cdpp::etf_parserCan serialise and deserialise ETF (Erlang Term Format) into and out of an nlohmann::json object, so that layers above the websocket don't have to be any different for handling ETF
 Cdpp::events::eventAn event object represents an event handled internally, passed from the websocket e.g
 Cdpp::event_dispatch_tBase event parameter struct
 Cdpp::event_entitiesEntities for the event
 Cdpp::event_memberRepresents a guild member/user who has registered interest in an event
 Cdpp::event_router_t< T >Handles routing of an event to multiple listeners
 Cdpp::event_router_t< dpp::autocomplete_t >
 Cdpp::event_router_t< dpp::automod_rule_create_t >
 Cdpp::event_router_t< dpp::automod_rule_delete_t >
 Cdpp::event_router_t< dpp::automod_rule_execute_t >
 Cdpp::event_router_t< dpp::automod_rule_update_t >
 Cdpp::event_router_t< dpp::button_click_t >
 Cdpp::event_router_t< dpp::channel_create_t >
 Cdpp::event_router_t< dpp::channel_delete_t >
 Cdpp::event_router_t< dpp::channel_pins_update_t >
 Cdpp::event_router_t< dpp::channel_update_t >
 Cdpp::event_router_t< dpp::entitlement_create_t >
 Cdpp::event_router_t< dpp::entitlement_delete_t >
 Cdpp::event_router_t< dpp::entitlement_update_t >
 Cdpp::event_router_t< dpp::form_submit_t >
 Cdpp::event_router_t< dpp::guild_audit_log_entry_create_t >
 Cdpp::event_router_t< dpp::guild_ban_add_t >
 Cdpp::event_router_t< dpp::guild_ban_remove_t >
 Cdpp::event_router_t< dpp::guild_create_t >
 Cdpp::event_router_t< dpp::guild_delete_t >
 Cdpp::event_router_t< dpp::guild_emojis_update_t >
 Cdpp::event_router_t< dpp::guild_integrations_update_t >
 Cdpp::event_router_t< dpp::guild_join_request_delete_t >
 Cdpp::event_router_t< dpp::guild_member_add_t >
 Cdpp::event_router_t< dpp::guild_member_remove_t >
 Cdpp::event_router_t< dpp::guild_member_update_t >
 Cdpp::event_router_t< dpp::guild_members_chunk_t >
 Cdpp::event_router_t< dpp::guild_role_create_t >
 Cdpp::event_router_t< dpp::guild_role_delete_t >
 Cdpp::event_router_t< dpp::guild_role_update_t >
 Cdpp::event_router_t< dpp::guild_scheduled_event_create_t >
 Cdpp::event_router_t< dpp::guild_scheduled_event_delete_t >
 Cdpp::event_router_t< dpp::guild_scheduled_event_update_t >
 Cdpp::event_router_t< dpp::guild_scheduled_event_user_add_t >
 Cdpp::event_router_t< dpp::guild_scheduled_event_user_remove_t >
 Cdpp::event_router_t< dpp::guild_stickers_update_t >
 Cdpp::event_router_t< dpp::guild_update_t >
 Cdpp::event_router_t< dpp::integration_create_t >
 Cdpp::event_router_t< dpp::integration_delete_t >
 Cdpp::event_router_t< dpp::integration_update_t >
 Cdpp::event_router_t< dpp::interaction_create_t >
 Cdpp::event_router_t< dpp::invite_create_t >
 Cdpp::event_router_t< dpp::invite_delete_t >
 Cdpp::event_router_t< dpp::log_t >
 Cdpp::event_router_t< dpp::message_context_menu_t >
 Cdpp::event_router_t< dpp::message_create_t >
 Cdpp::event_router_t< dpp::message_delete_bulk_t >
 Cdpp::event_router_t< dpp::message_delete_t >
 Cdpp::event_router_t< dpp::message_poll_vote_add_t >
 Cdpp::event_router_t< dpp::message_poll_vote_remove_t >
 Cdpp::event_router_t< dpp::message_reaction_add_t >
 Cdpp::event_router_t< dpp::message_reaction_remove_all_t >
 Cdpp::event_router_t< dpp::message_reaction_remove_emoji_t >
 Cdpp::event_router_t< dpp::message_reaction_remove_t >
 Cdpp::event_router_t< dpp::message_update_t >
 Cdpp::event_router_t< dpp::presence_update_t >
 Cdpp::event_router_t< dpp::ready_t >
 Cdpp::event_router_t< dpp::resumed_t >
 Cdpp::event_router_t< dpp::select_click_t >
 Cdpp::event_router_t< dpp::slashcommand_t >
 Cdpp::event_router_t< dpp::stage_instance_create_t >
 Cdpp::event_router_t< dpp::stage_instance_delete_t >
 Cdpp::event_router_t< dpp::stage_instance_update_t >
 Cdpp::event_router_t< dpp::thread_create_t >
 Cdpp::event_router_t< dpp::thread_delete_t >
 Cdpp::event_router_t< dpp::thread_list_sync_t >
 Cdpp::event_router_t< dpp::thread_member_update_t >
 Cdpp::event_router_t< dpp::thread_members_update_t >
 Cdpp::event_router_t< dpp::thread_update_t >
 Cdpp::event_router_t< dpp::typing_start_t >
 Cdpp::event_router_t< dpp::user_context_menu_t >
 Cdpp::event_router_t< dpp::user_update_t >
 Cdpp::event_router_t< dpp::voice_buffer_send_t >
 Cdpp::event_router_t< dpp::voice_client_disconnect_t >
 Cdpp::event_router_t< dpp::voice_client_speaking_t >
 Cdpp::event_router_t< dpp::voice_ready_t >
 Cdpp::event_router_t< dpp::voice_receive_t >
 Cdpp::event_router_t< dpp::voice_server_update_t >
 Cdpp::event_router_t< dpp::voice_state_update_t >
 Cdpp::event_router_t< dpp::voice_track_marker_t >
 Cdpp::event_router_t< dpp::voice_user_talking_t >
 Cdpp::event_router_t< dpp::webhooks_update_t >
 Cstd::exceptionSTL class
 Cfalse_type
 Cdpp::detail::coroutine::final_awaiter< R >Struct returned by a coroutine's final_suspend, resumes the continuation
 Cdpp::detail::task::final_awaiter< R >The object automatically co_await-ed at the end of a task
 Cstd::hash< dpp::snowflake >
 Cdpp::http_connect_infoRepresents a HTTP scheme, hostname and port split into parts for easy use in https_client
 Cdpp::http_requestA HTTP request
 Cdpp::http_request_completion_tThe result of any HTTP request
 Cdpp::utility::iconWrapper 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)
 Cdpp::utility::iconhashStore a 128 bit icon hash (profile picture, server icon etc) as a 128 bit binary value made of two uint64_t
 Cdpp::utility::image_dataImage to be received or sent to API calls
 Cdpp::in_threadRepresents a thread in the thread pool handling requests to HTTP(S) servers
 Cdpp::integration_accountThe account information for an integration
 Cdpp::integration_appAn application that has been integrated
 Cdpp::jobExtremely light coroutine object designed to send off a coroutine to execute on its own. Can be used in conjunction with coroutine events via event routers, or on its own
 Canonymous_namespace{coro.cpp}::job_awaitable
 Cdpp::job_dummy
 Cdpp::json_interface< T >Represents an interface for an object that can optionally implement functions for converting to and from nlohmann::json
 Cdpp::json_interface< application >
 Cdpp::json_interface< application_role_connection >
 Cdpp::json_interface< application_role_connection_metadata >
 Cdpp::json_interface< audit_entry >
 Cdpp::json_interface< auditlog >
 Cdpp::json_interface< automod_action >
 Cdpp::json_interface< automod_metadata >
 Cdpp::json_interface< automod_rule >
 Cdpp::json_interface< ban >
 Cdpp::json_interface< channel >
 Cdpp::json_interface< command_option >
 Cdpp::json_interface< command_option_choice >
 Cdpp::json_interface< command_permission >
 Cdpp::json_interface< component >
 Cdpp::json_interface< connection >
 Cdpp::json_interface< dtemplate >
 Cdpp::json_interface< emoji >
 Cdpp::json_interface< entitlement >
 Cdpp::json_interface< forum_tag >
 Cdpp::json_interface< gateway >
 Cdpp::json_interface< guild >
 Cdpp::json_interface< guild_command_permissions >
 Cdpp::json_interface< guild_member >
 Cdpp::json_interface< guild_widget >
 Cdpp::json_interface< integration >
 Cdpp::json_interface< interaction >
 Cdpp::json_interface< interaction_modal_response >
 Cdpp::json_interface< interaction_response >
 Cdpp::json_interface< invite >
 Cdpp::json_interface< message >
 Cdpp::json_interface< onboarding >
 Cdpp::json_interface< onboarding_prompt >
 Cdpp::json_interface< onboarding_prompt_option >
 Cdpp::json_interface< presence >
 Cdpp::json_interface< prune >
 Cdpp::json_interface< role >
 Cdpp::json_interface< scheduled_event >
 Cdpp::json_interface< select_option >
 Cdpp::json_interface< sku >
 Cdpp::json_interface< slashcommand >
 Cdpp::json_interface< stage_instance >
 Cdpp::json_interface< sticker >
 Cdpp::json_interface< sticker_pack >
 Cdpp::json_interface< thread >
 Cdpp::json_interface< thread_member >
 Cdpp::json_interface< user >
 Cdpp::json_interface< user_identified >
 Cdpp::json_interface< voiceregion >
 Cdpp::json_interface< voicestate >
 Cdpp::json_interface< webhook >
 Cdpp::json_interface< welcome_channel >
 Cdpp::json_interface< welcome_screen >
 Cdpp::keepalive_cache_tKeepalive cache record
 Cdpp::managedBase class for various types that can be stored in a cache that are identified by a dpp::snowflake id
 Cdpp::message_file_dataThe data for a file attached to a message
 Cdpp::message::message_interaction_structReference to an interaction
 Cdpp::message::message_refReference to another message, e.g
 Cdpp::moving_averager
 Cdpp::multipart_contentRepresents a multipart mime body and the correct top-level mime type If a non-multipart request is passed in, this is represented as a plain body and the application/json mime type
 Cdpp::oneshot_timerTrigger a timed event once
 Cdpp::openssl_connectionThis is an opaque class containing openssl library specific structures
 Cdpp::openssl_context_deleterCustom deleter for SSL_CTX
 COpusDecoder
 COpusEncoder
 COpusRepacketizer
 Cdpp::param_infoDetails of a command parameter used in registration
 Cdpp::partial_emojiAn emoji reference for a component (select menus included) or a poll
 Cdpp::permissionRepresents a permission bitmask (refer to enum dpp::permissions) which are held in an uint64_t
 Cdpp::permission_overwriteChannel permission overwrites
 Cdpp::pollRepresents a poll
 Cdpp::poll_answerRepresents an answer in a poll
 Cdpp::poll_mediaStructure representing a poll media, for example the poll question or a possible poll answer
 Cdpp::poll_resultsRepresents the results of a poll
 Cdpp::detail::job::promise< Args >Coroutine promise type for a job
 Cdpp::detail::task::promise_baseBase implementation of task::promise_t, without the logic that would depend on the return type
 Cdpp::detail::coroutine::promise_t< R >Promise type for coroutine
 Cdpp::detail::task::promise_t< R >A task's promise_t type, with special logic for handling nested tasks
 Cdpp::detail::coroutine::promise_t< void >Struct returned by a coroutine's final_suspend, resumes the continuation
 Cdpp::detail::task::promise_base::proxy_awaiter< A >Proxy awaitable that wraps any co_await inside the task and checks for cancellation on resumption
 Cdpp::request_queue::queued_deleting_requestA request queued for deletion in the queue
 Cdpp::reactionRepresents a reaction to a dpp::message
 Cdpp::request_queueManages rate limits and marshalls HTTP requests that have been built as http_request objects
 Cdpp::resolved_userDpp::resolved_user contains both a dpp::guild_member and a dpp::user
 Cdpp::when_any< Args >::resultObject returned by operator co_await() on resumption
 Cdpp::rtp_headerRepresents an RTP packet
 Cdpp::discord_voice_client::voice_payload_parking_lot::seq_range_tThe range of RTP packet sequence number and timestamp in the lot
 Canonymous_namespace{coro.cpp}::simple_awaitable
 Cdpp::snowflakeA container for a 64 bit unsigned value representing many things on discord
 Cdpp::ssl_clientImplements a simple non-blocking SSL stream client
 Cdpp::taskA coroutine task. It starts immediately on construction and can be co_await-ed, making it perfect for parallel coroutines returning a value
 Cdpp::detail::task::task_base< R >Base class of dpp::task
 Cdpp::task_dummy
 Cdpp::team_memberRepresents a team member on a team who maintain a bot/application
 Ctest_t
 Cdpp::thread_metadataMetadata for threads
 Cdpp::timed_listener< attached_event, listening_function >A timed_listener is a way to temporarily attach to an event for a specific timeframe, then detach when complete
 Cdpp::timed_listener< dpp::event_router_t< T >, std::function< void(const T &)> >
 Cdpp::timer_tUsed internally to store state of active timers
 Ctrue_type
 Cdpp::utility::uptimeA 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
 Cuser_project_id_tConvenience functor to get the snowflake of a certain type
 Cdpp::voice_out_packetAn opus-encoded RTP packet to be sent out to a voice channel
 Cdpp::voiceconnRepresents a connection to a voice channel
 Cdpp::when_any< Args >Experimental class to co_await on a bunch of awaitable objects, resuming when the first one completes. On completion, returns a result object that contains the index of the awaitable that finished first. A user can call result::index() and result::get<N>() on the result object to get the result, similar to std::variant
 Cdpp::zlibcontextThis is an opaque class containing zlib library specific structures