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- f16and- bf16floats.
- std(Default) - Disable to allow use in a- no_stdenvironment.
§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;- parse-floatsor- parse-integers
- pub use options::WriteOptions;- write-floatsor- write-integers
- pub use result::Result;
Modules§
- algorithm
- Simple, shared algorithms for slices and iterators.
- ascii
- Utilities for working with ASCII characters.
- bf16f16
- Brain Floating Point implementation, a 16-bit type used in machine learning.
- digit
- Utilities to process digits.
- div128Non- compactand (write-floatsorwrite-integers)
- Optimized division algorithms for u128.
- extended_float parse-floatsorwrite-floats
- Extended precision floating-point type.
- f16f16
- Half-precision IEEE-754 floating point implementation.
- format
- The creation and processing of number format packed structs.
- iteratorparse-floatsorparse-integers
- 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.
- stepparse-floatsorparse-integersorwrite-floatsorwrite-integers
- The maximum digits that can be held in a u64 for a given radix without overflowing.
Macros§
- from_lexical parse-floatsorparse-integers
- Define the FromLexicaltrait.
- from_lexical_ with_ options parse-floatsorparse-integers
- Define the FromLexicalWithOptionstrait.
- to_lexical write-floatsorwrite-integers
- Define the ToLexicaltrait.
- to_lexical_ with_ options write-floatsorwrite-integers
- Define the ToLexicalWithOptionstrait.
Enums§
- Error
- Error code during parsing, indicating failure type.
Constants§
- BUFFER_SIZE write-floatsorwrite-integers
- Maximum number of bytes required to serialize any number with default options to string.
Traits§
- FormattedSize write-floatsorwrite-integers
- The size, in bytes, of formatted values.