Crate lexical_util

Crate lexical_util 

Source
Expand description

Shared utilities for lexical conversion routines.

These are not meant to be used publicly for any numeric conversion routines, but provide optimized math routines, format packed struct definitions, and custom iterators for all workspaces.

§Features

  • power-of-two - Add support for parsing and writing power-of-two integer strings.
  • radix - Add support for parsing and writing strings of any radix.
  • format - Add support for custom number formats.
  • write-integers - Add support for writing integers (used for lexical-write-integer).
  • write-floats - Add support for writing floats (used for lexical-write-float).
  • parse-integers - Add support for parsing integers (used for lexical-parse-integer).
  • parse-floats - Add support for parsing floats (used for lexical-write-float).
  • compact - Reduce code size at the cost of performance.
  • f16 - Enable support for half-precision f16 and bf16 floats.
  • std (Default) - Disable to allow use in a no_std environment.

§Public API

lexical-util mainly exists as an implementation detail for the other lexical crates, although its API is mostly 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 without a dependency on alloc, please look at lexical-core instead.

Any undocumented, implementation details may change release-to-release without major or minor version changes. Use internal implementation details at your own risk. Any changes other than to NumberFormatBuilder, NumberFormat, format, and options will not be considered a breaking change.

§Version Support

The minimum, standard, required version is 1.63.0, for const generic support. Older versions of lexical support older Rust versions.

§Safety Guarantees

For a detailed breakdown on the use of unsafe, how and why our traits are implemented safely, and how to verify this, see Safety.

Re-exports§

pub use format::NumberFormat;
pub use format::NumberFormatBuilder;
pub use options::ParseOptions;
pub use options::WriteOptions;
pub use result::Result;

Modules§

algorithm
Simple, shared algorithms for slices and iterators.
ascii
Utilities for working with ASCII characters.
digit
Utilities to process digits.
div128
Optimized division algorithms for u128.
extended_float
Extended precision floating-point type.
format
The creation and processing of number format packed structs.
iterator
Specialized iterator traits.
mul
Fast multiplication routines.
num
Utilities for Rust numbers.
options
Shared traits for the options API.
result
Result type for numeric parsing functions.
step
The maximum digits that can be held in a u64 for a given radix without overflowing.

Macros§

from_lexical
Define the FromLexical trait.
from_lexical_with_options
Define the FromLexicalWithOptions trait.
to_lexical
Define the ToLexical trait.
to_lexical_with_options
Define the ToLexicalWithOptions trait.

Enums§

Error
Error code during parsing, indicating failure type.

Constants§

BUFFER_SIZE
Maximum number of bytes required to serialize any number with default options to string.

Traits§

FormattedSize
The size, in bytes, of formatted values.