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§

format
Public API for the number format packed struct.
options
Configuration options for writing integers.

Structs§

NumberFormatBuilder
Build number format from specifications.
Options
Immutable options to customize writing integers.
OptionsBuilder
Builder for Options.

Constants§

BUFFER_SIZE
Maximum number of bytes required to serialize any number to string.

Traits§

FormattedSize
The size, in bytes, of formatted values.
ToLexical
Trait for numerical types that can be serialized to bytes.
ToLexicalWithOptions
Trait for numerical types that can be serialized to bytes with custom options.
WriteOptions
Shared trait for all writer options.