Crate awint_internals[−][src]
Expand description
This crate contains common utilities for crates within the awint
system.
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.
Macros
binop_for_each | If |
binop_for_each_mut | If |
const_for | A basic for loop for const contexts |
for_each |
|
for_each_mut |
|
subdigits_mut | Runs |
Enums
SerdeError | A serialization or deserialization error |
Constants
BITS | Maximum bitwidth of an inline |
INV_LB_I1F15 | Reciprocal binary logarithms of the numbers 2..=36 rounded up and in u16p15 fixed point format |
LB_I3F13 | Binary logarithms of the integers 2..=36 rounded up and in u16p13 fixed point format |
MAX | Maximum value of an inline |
Functions
bits_upper_bound | 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.
Returns |
bw | Utility free function for converting a |
chars_upper_bound | This takes an input of significant bits and gives an upper bound for the
number of characters in the given |
dd_division | Divides |
digits | |
extra | |
regular_digits | |
widen_add | Computes x + y + z and returns the widened result as a tuple. |
widen_mul_add | 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. |