This crate contains common utilities for crates within the
Some of these are highly unsafe macros that were only placed here because
#[macro_export] unconditionally causes macros to be publicly accessible.
To prevent them from being accessible from intended user-facing crates, this
_internals crate was made. The safety requirements of these macros may
change over time, so this crate should never be used outside of this system.
A basic for loop for const contexts
A serialization or deserialization error
Maximum bitwidth of an inline
Reciprocal binary logarithms of the numbers 2..=36 rounded up and in u16p15 fixed point format
Binary logarithms of the integers 2..=36 rounded up and in u16p13 fixed point format
Maximum value of an inline
This is used for quickly calculating the maximum number of bits
needed for a string representation of a number in some radix to be
represented. This may give more bits than needed, but is guaranteed to never
underestimate the number of bits needed.
Utility free function for converting a
This takes an input of significant bits and gives an upper bound for the
number of characters in the given
Computes x + y + z and returns the widened result as a tuple.
Computes (x * y) + z. This cannot overflow, because it returns the value widened into a tuple, where the first element is the least significant part of the integer and the second is the most significant.