Ruby 3.5.0dev (2025-09-16 revision 1213adfe5526d65cce81a9fb127074130c8faea7)
|
A structure represents an arbitrary-sized integer. More...
#include <pm_integer.h>
Public Member Functions | |
PRISM_EXPORTED_FUNCTION void | pm_integer_string (pm_buffer_t *buffer, const pm_integer_t *integer) |
Convert an integer to a decimal string. | |
PRISM_EXPORTED_FUNCTION void | pm_integer_free (pm_integer_t *integer) |
Free the internal memory of an integer. | |
Data Fields | |
size_t | length |
The number of allocated values. | |
uint32_t * | values |
List of 32-bit integers. | |
uint32_t | value |
Embedded value for small integer. | |
bool | negative |
Whether or not the integer is negative. | |
A structure represents an arbitrary-sized integer.
Definition at line 20 of file pm_integer.h.
PRISM_EXPORTED_FUNCTION void pm_integer_free | ( | pm_integer_t * | integer | ) |
Free the internal memory of an integer.
This memory will only be allocated if the integer exceeds the size of a single node in the linked list.
integer | The integer to free. |
Definition at line 666 of file pm_integer.c.
PRISM_EXPORTED_FUNCTION void pm_integer_string | ( | pm_buffer_t * | buffer, |
const pm_integer_t * | integer | ||
) |
Convert an integer to a decimal string.
buffer | The buffer to append the string to. |
integer | The integer to convert to a string. |
Definition at line 607 of file pm_integer.c.
size_t pm_integer_t::length |
The number of allocated values.
length is set to 0 if the integer fits into uint32_t.
Definition at line 25 of file pm_integer.h.
Referenced by pm_integer_compare(), pm_integer_string(), and pm_integers_reduce().
bool pm_integer_t::negative |
Whether or not the integer is negative.
It is stored this way so that a zeroed pm_integer_t is always positive zero.
Definition at line 42 of file pm_integer.h.
Referenced by pm_integer_compare(), and pm_integer_string().
uint32_t pm_integer_t::value |
Embedded value for small integer.
This value is set to 0 if the value does not fit into uint32_t.
Definition at line 36 of file pm_integer.h.
Referenced by pm_integer_compare(), pm_integer_parse(), pm_integer_string(), and pm_integers_reduce().
uint32_t* pm_integer_t::values |
List of 32-bit integers.
Set to NULL if the integer fits into uint32_t.
Definition at line 30 of file pm_integer.h.
Referenced by pm_integer_compare(), pm_integer_free(), and pm_integer_string().