Crate lexical_write_integer
source · [−]Expand description
Fast lexical integer-to-string conversion routines.
The default implementations use power reduction to unroll 4 loops at a time to minimize the number of required divisions, leading to massive performance gains. In addition, decimal strings pre-calculate the number of digits, avoiding temporary buffers.
A compact, fallback algorithm uses a naive, simple algorithm, where each loop generates a single digit. This comes at a performance penalty, but produces smaller binaries.
Features
std
- Use the standard library.power-of-two
- Add support for writing power-of-two integer strings.radix
- Add support for strings of any radix.compact
- Reduce code size at the cost of performance.safe
- Ensure only memory-safe indexing is used.
Note
Only documented functionality is considered part of the public API: any of the modules, internal functions, or structs may change release-to-release without major or minor version changes. Use internal implementation details at your own risk.
lexical-write-integer mainly exists as an implementation detail for
lexical-core, although its API is stable. If you would like to use
a high-level API that writes to and parses from String
and &str
,
respectively, please look at lexical
instead. If you would like an API that supports multiple numeric
conversions, please look at lexical-core
instead.
Version Support
The minimum, standard, required version is 1.51.0, for const generic support. Older versions of lexical support older Rust versions.
Design
Modules
Public API for the number format packed struct.
Configuration options for writing integers.
Structs
Build number format from specifications.
Immutable options to customize writing integers.
Builder for Options
.
Constants
Maximum number of bytes required to serialize any number to string.
Traits
The size, in bytes, of formatted values.
Trait for numerical types that can be serialized to bytes.
Trait for numerical types that can be serialized to bytes with custom options.
Shared trait for all writer options.