A container for a 64 bit unsigned value representing many things on discord. This value is known in distributed computing as a snowflake value.  
 More...
|  | 
| constexpr | snowflake () noexcept=default | 
|  | Construct a snowflake object.  More... 
 | 
|  | 
| constexpr | snowflake (const snowflake &rhs) noexcept=default | 
|  | Copy a snowflake object.  More... 
 | 
|  | 
| template<typename T , typename  = std::enable_if_t<std::is_same_v<T, std::string>>> | 
|  | snowflake (const T &string_value) noexcept | 
|  | Construct a snowflake object from an unsigned integer in a string.  More... 
 | 
|  | 
| constexpr | snowflake (snowflake &&rhs) noexcept=default | 
|  | Move a snowflake object.  More... 
 | 
|  | 
|  | snowflake (std::string_view string_value) noexcept | 
|  | Construct a snowflake object from an unsigned integer in a string.  More... 
 | 
|  | 
| template<typename T , typename  = std::enable_if_t<std::is_integral_v<T> && !std::is_same_v<T, bool>>> | 
| constexpr | snowflake (T snowflake_val) noexcept(std::is_unsigned_v< T >) | 
|  | Construct a snowflake from an integer value.  More... 
 | 
|  | 
| constexpr bool | empty () const noexcept | 
|  | Returns true if the snowflake holds an empty value (is 0)  More... 
 | 
|  | 
| constexpr double | get_creation_time () const noexcept | 
|  | Get the creation time of this snowflake according to Discord.  More... 
 | 
|  | 
| constexpr uint16_t | get_increment () const noexcept | 
|  | Get the increment, which is incremented for every snowflake created over the one millisecond resolution in the timestamp.  More... 
 | 
|  | 
| constexpr uint8_t | get_process_id () const noexcept | 
|  | Get the process id that produced this snowflake value.  More... 
 | 
|  | 
| constexpr uint8_t | get_worker_id () const noexcept | 
|  | Get the worker id that produced this snowflake value.  More... 
 | 
|  | 
|  | operator json () const | 
|  | For building json.  More... 
 | 
|  | 
| constexpr | operator uint64_t () const noexcept | 
|  | For acting like an integer.  More... 
 | 
|  | 
| constexpr | operator uint64_t & () noexcept | 
|  | For acting like an integer.  More... 
 | 
|  | 
| constexpr dpp::snowflake & | operator= (const dpp::snowflake &rhs) noexcept=default | 
|  | Copy value from another snowflake.  More... 
 | 
|  | 
| constexpr dpp::snowflake & | operator= (dpp::snowflake &&rhs) noexcept=default | 
|  | Move value from another snowflake.  More... 
 | 
|  | 
| template<typename T , typename  = std::enable_if_t<std::is_convertible_v<T, std::string_view>>> | 
| constexpr dpp::snowflake & | operator= (T &&snowflake_val) noexcept | 
|  | Assign value converted from a string to the snowflake.  More... 
 | 
|  | 
| template<typename T , typename  = std::enable_if_t<std::is_integral_v<T>>> | 
| constexpr dpp::snowflake & | operator= (T snowflake_val) noexcept(std::is_unsigned_v< T >) | 
|  | Assign integer value to the snowflake.  More... 
 | 
|  | 
| constexpr bool | operator== (dpp::snowflake snowflake_val) const noexcept | 
|  | Comparison operator with another snowflake.  More... 
 | 
|  | 
| bool | operator== (std::string_view snowflake_val) const noexcept | 
|  | Comparison operator with a string.  More... 
 | 
|  | 
| template<typename T , typename  = std::enable_if_t<std::is_integral_v<T>>> | 
| constexpr bool | operator== (T snowflake_val) const noexcept | 
|  | Comparison operator with an integer.  More... 
 | 
|  | 
| std::string | str () const | 
|  | Returns the stringified version of the snowflake value.  More... 
 | 
|  | 
A container for a 64 bit unsigned value representing many things on discord. This value is known in distributed computing as a snowflake value. 
Snowflakes are:
- Performant (very fast to generate at source and to compare in code)
- Uncoordinated (allowing high availability across clusters, data centres etc)
- Time ordered (newer snowflakes have higher IDs)
- Directly Sortable (due to time ordering)
- Compact (64 bit numbers, not 128 bit, or string)
An identical format of snowflake is used by Twitter, Instagram and several other platforms.
- See also
- https://en.wikipedia.org/wiki/Snowflake_ID 
- 
https://github.com/twitter-archive/snowflake/tree/b3f6a3c6ca8e1b6847baa6ff42bf72201e2c2231