Expand description
The creation and processing of number format packed structs.
This creates the format specification as a 128-bit packed struct,
represented as a u128 through the NumberFormatBuilder and
with helpers to access format options through NumberFormat.
This has a consistent API whether or not the format
feature is enabled, however, most functionality will be disabled if the
feature is not enabled.
§Creating Formats
Formats can be created through NumberFormatBuilder:
use core::num;
use lexical_util::{NumberFormat, NumberFormatBuilder};
// create the format for literal Rustt floats
const RUST: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.required_digits(true)
.no_positive_mantissa_sign(true)
.no_special(true)
.internal_digit_separator(true)
.trailing_digit_separator(true)
.consecutive_digit_separator(true)
.build_strict();
// then, access the formats's properties
let format = NumberFormat::<{ RUST }> {};
assert!(format.no_positive_mantissa_sign());
assert!(format.no_special());
assert!(format.internal_digit_separator());
assert!(format.trailing_digit_separator());
assert!(format.consecutive_digit_separator());
assert!(!format.no_exponent_notation());These pre-built formats can then be used for FromLexicalWithOptions
and ToLexicalWithOptions conversions.
§Pre-Defined Formats
These are the pre-defined formats for parsing numbers from various programming, markup, and data languages.
STANDARD: Standard number format. This is identical to the Rust string format.RUST_LITERAL: Number format for aRustliteral floating-point number.RUST_STRING: Number format to parse aRustfloat from string.PYTHON_LITERAL: Number format for aPythonliteral floating-point number.PYTHON_STRING: Number format to parse aPythonfloat from string.PYTHON3_LITERAL: Number format for aPython3literal floating-point number.PYTHON3_STRING: Number format to parse aPython3float from string.PYTHON36_LITERAL: Number format for aPython3.6or higher literal floating-point number.PYTHON35_LITERAL: Number format for aPython3.5or lower literal floating-point number.PYTHON2_LITERAL: Number format for aPython2literal floating-point number.PYTHON2_STRING: Number format to parse aPython2float from string.CXX_LITERAL: Number format for aC++literal floating-point number.CXX_STRING: Number format to parse aC++float from string.CXX_HEX_LITERAL: Number format for aC++literal hexadecimal floating-point number.CXX_HEX_STRING: Number format to parse aC++hexadecimal float from string.CXX20_LITERAL: Number format for aC++20literal floating-point number.CXX20_STRING: Number format for aC++20string floating-point number.CXX20_HEX_LITERAL: Number format for aC++20literal hexadecimal floating-point number.CXX20_HEX_STRING: Number format for aC++20string hexadecimal floating-point number.CXX17_LITERAL: Number format for aC++17literal floating-point number.CXX17_STRING: Number format for aC++17string floating-point number.CXX17_HEX_LITERAL: Number format for aC++17literal hexadecimal floating-point number.CXX17_HEX_STRING: Number format for aC++17string hexadecimal floating-point number.CXX14_LITERAL: Number format for aC++14literal floating-point number.CXX14_STRING: Number format for aC++14string floating-point number.CXX14_HEX_STRING: Number format for aC++14string hexadecimal floating-point number.CXX11_LITERAL: Number format for aC++11literal floating-point number.CXX11_STRING: Number format for aC++11string floating-point number.CXX11_HEX_STRING: Number format for aC++11string hexadecimal floating-point number.CXX03_LITERAL: Number format for aC++03literal floating-point number.CXX03_STRING: Number format for aC++03string floating-point number.CXX98_LITERAL: Number format for aC++98literal floating-point number.CXX98_STRING: Number format for aC++98string floating-point number.C_LITERAL: Number format for aCliteral floating-point number.C_STRING: Number format for aCstring floating-point number.C_HEX_LITERAL: Number format for aCliteral hexadecimal floating-point number.C_HEX_STRING: Number format for aCstring hexadecimal floating-point number.C18_LITERAL: Number format for aC18literal floating-point number.C18_STRING: Number format for aC18string floating-point number.C18_HEX_LITERAL: Number format for aC18literal hexadecimal floating-point number.C18_HEX_STRING: Number format for aC18string hexadecimal floating-point number.C11_LITERAL: Number format for aC11literal floating-point number.C11_STRING: Number format for aC11string floating-point number.C11_HEX_LITERAL: Number format for aC11literal hexadecimal floating-point number.C11_HEX_STRING: Number format for aC11string hexadecimal floating-point number.C99_LITERAL: Number format for aC99literal floating-point number.C99_STRING: Number format for aC99string floating-point number.C99_HEX_LITERAL: Number format for aC99literal hexadecimal floating-point number.C99_HEX_STRING: Number format for aC99string hexadecimal floating-point number.C90_LITERAL: Number format for aC90literal floating-point number.C90_STRING: Number format for aC90string floating-point number.C90_HEX_STRING: Number format for aC90string hexadecimal floating-point number.C89_LITERAL: Number format for aC89literal floating-point number.C89_STRING: Number format for aC89string floating-point number.C89_HEX_STRING: Number format for aC89string hexadecimal floating-point number.RUBY_LITERAL: Number format for aRubyliteral floating-point number.RUBY_OCTAL_LITERAL: Number format for an octalRubyliteral floating-point number.RUBY_STRING: Number format to parse aRubyfloat from string.SWIFT_LITERAL: Number format for aSwiftliteral floating-point number.SWIFT_STRING: Number format to parse aSwiftfloat from string.GO_LITERAL: Number format for aGolangliteral floating-point number.GO_STRING: Number format to parse aGolangfloat from string.HASKELL_LITERAL: Number format for aHaskellliteral floating-point number.HASKELL_STRING: Number format to parse aHaskellfloat from string.JAVASCRIPT_LITERAL: Number format for aJavascriptliteral floating-point number.JAVASCRIPT_STRING: Number format to parse aJavascriptfloat from string.PERL_LITERAL: Number format for aPerlliteral floating-point number.PERL_STRING: Number format to parse aPerlfloat from string.PHP_LITERAL: Number format for aPHPliteral floating-point number.PHP_STRING: Number format to parse aPHPfloat from string.JAVA_LITERAL: Number format for aJavaliteral floating-point number.JAVA_STRING: Number format to parse aJavafloat from string.R_LITERAL: Number format for anRliteral floating-point number.R_STRING: Number format to parse anRfloat from string.KOTLIN_LITERAL: Number format for aKotlinliteral floating-point number.KOTLIN_STRING: Number format to parse aKotlinfloat from string.JULIA_LITERAL: Number format for aJulialiteral floating-point number.JULIA_STRING: Number format to parse aJuliafloat from string.JULIA_HEX_LITERAL: Number format for aJulialiteral floating-point number.JULIA_HEX_STRING: Number format to parse aJuliafloat from string.CSHARP_LITERAL: Number format for aC#literal floating-point number.CSHARP_STRING: Number format to parse aC#float from string.CSHARP7_LITERAL: Number format for aC#7literal floating-point number.CSHARP7_STRING: Number format to parse aC#7float from string.CSHARP6_LITERAL: Number format for aC#6literal floating-point number.CSHARP6_STRING: Number format to parse aC#6float from string.CSHARP5_LITERAL: Number format for aC#5literal floating-point number.CSHARP5_STRING: Number format to parse aC#5float from string.CSHARP4_LITERAL: Number format for aC#4literal floating-point number.CSHARP4_STRING: Number format to parse aC#4float from string.CSHARP3_LITERAL: Number format for aC#3literal floating-point number.CSHARP3_STRING: Number format to parse aC#3float from string.CSHARP2_LITERAL: Number format for aC#2literal floating-point number.CSHARP2_STRING: Number format to parse aC#2float from string.CSHARP1_LITERAL: Number format for aC#1literal floating-point number.CSHARP1_STRING: Number format to parse aC#1float from string.KAWA_LITERAL: Number format for aKawaliteral floating-point number.KAWA_STRING: Number format to parse aKawafloat from string.GAMBITC_LITERAL: Number format for aGambit-Cliteral floating-point number.GAMBITC_STRING: Number format to parse aGambit-Cfloat from string.GUILE_LITERAL: Number format for aGuileliteral floating-point number.GUILE_STRING: Number format to parse aGuilefloat from string.CLOJURE_LITERAL: Number format for aClojureliteral floating-point number.CLOJURE_STRING: Number format to parse aClojurefloat from string.ERLANG_LITERAL: Number format for anErlangliteral floating-point number.ERLANG_STRING: Number format to parse anErlangfloat from string.ELM_LITERAL: Number format for anElmliteral floating-point number.ELM_STRING: Number format to parse anElmfloat from string.SCALA_LITERAL: Number format for aScalaliteral floating-point number.SCALA_STRING: Number format to parse aScalafloat from string.ELIXIR_LITERAL: Number format for anElixirliteral floating-point number.ELIXIR_STRING: Number format to parse anElixirfloat from string.FORTRAN_LITERAL: Number format for aFORTRANliteral floating-point number.FORTRAN_STRING: Number format to parse aFORTRANfloat from string.D_LITERAL: Number format for aDliteral floating-point number.D_STRING: Number format to parse aDfloat from string.COFFEESCRIPT_LITERAL: Number format for aCoffeescriptliteral floating-point number.COFFEESCRIPT_STRING: Number format to parse aCoffeescriptfloat from string.COBOL_LITERAL: Number format for aCobolliteral floating-point number.COBOL_STRING: Number format to parse aCobolfloat from string.FSHARP_LITERAL: Number format for aF#literal floating-point number.FSHARP_STRING: Number format to parse aF#float from string.VB_LITERAL: Number format for aVisual Basicliteral floating-point number.VB_STRING: Number format to parse aVisual Basicfloat from string.OCAML_LITERAL: Number format for anOCamlliteral floating-point number.OCAML_STRING: Number format to parse anOCamlfloat from string.OBJECTIVEC_LITERAL: Number format for anObjective-Cliteral floating-point number.OBJECTIVEC_STRING: Number format to parse anObjective-Cfloat from string.REASONML_LITERAL: Number format for aReasonMLliteral floating-point number.REASONML_STRING: Number format to parse aReasonMLfloat from string.OCTAVE_LITERAL: Number format for anOctaveliteral floating-point number.OCTAVE_STRING: Number format to parse anOctavefloat from string.MATLAB_LITERAL: Number format for anMatlabliteral floating-point number.MATLAB_STRING: Number format to parse anMatlabfloat from string.ZIG_LITERAL: Number format for aZigliteral floating-point number.ZIG_STRING: Number format to parse aZigfloat from string.SAGE_LITERAL: Number format for aSageliteral floating-point number.SAGE_STRING: Number format to parse aSagefloat from string.JSON: Number format for aJSONliteral floating-point number.TOML: Number format for aTOMLliteral floating-point number.YAML: Number format for aYAMLliteral floating-point number.XML: Number format for anXMLliteral floating-point number.SQLITE: Number format for aSQLiteliteral floating-point number.POSTGRESQL: Number format for aPostgreSQLliteral floating-point number.MYSQL: Number format for aMySQLliteral floating-point number.MONGODB: Number format for aMongoDBliteral floating-point number.
§Low-Level Schema
This describes how to directly get and set flags from the NumberFormat
packed struct. It is not recommended to use these directly, but for example,
the following can be done:
use lexical_util::format;
assert_eq!(
format::NumberFormatBuilder::new()
.required_integer_digits(true)
.build_strict(),
format::STANDARD | format::REQUIRED_INTEGER_DIGITS
);§Syntax Flags
Bitflags to get and set syntax flags for the format packed struct.
REQUIRED_INTEGER_DIGITS: If digits are required before the decimal point.REQUIRED_FRACTION_DIGITS: If digits are required after the decimal point.REQUIRED_EXPONENT_DIGITS: If digits are required after the exponent character.REQUIRED_MANTISSA_DIGITS: If significant digits are required.REQUIRED_DIGITS: If at least 1 digit in the number is required.NO_POSITIVE_MANTISSA_SIGN: If a positive sign before the mantissa is not allowed.REQUIRED_MANTISSA_SIGN: If a sign symbol before the mantissa is required.NO_EXPONENT_NOTATION: If exponent notation is not allowed.NO_POSITIVE_EXPONENT_SIGN: If a positive sign before the exponent is not allowed.REQUIRED_EXPONENT_SIGN: If a sign symbol before the exponent is required.NO_EXPONENT_WITHOUT_FRACTION: If an exponent without fraction is not allowed.NO_SPECIAL: If special (non-finite) values are not allowed.CASE_SENSITIVE_SPECIAL: If special (non-finite) values are case-sensitive.NO_INTEGER_LEADING_ZEROS: If leading zeros before an integer are not allowed.NO_FLOAT_LEADING_ZEROS: If leading zeros before a float are not allowed.REQUIRED_EXPONENT_NOTATION: If exponent notation is required.CASE_SENSITIVE_EXPONENT: If exponent characters are case-sensitive.CASE_SENSITIVE_BASE_PREFIX: If base prefixes are case-sensitive.CASE_SENSITIVE_BASE_SUFFIX: If base suffixes are case-sensitive.
§Digit Separator Flags
Bitflags to get and set digit separators flags for the format packed struct.
INTEGER_INTERNAL_DIGIT_SEPARATOR: If digit separators are allowed between integer digits.FRACTION_INTERNAL_DIGIT_SEPARATOR: If digit separators are allowed between fraction digits.EXPONENT_INTERNAL_DIGIT_SEPARATOR: If digit separators are allowed between exponent digits.INTEGER_LEADING_DIGIT_SEPARATOR: If a digit separator is allowed before any integer digits.FRACTION_LEADING_DIGIT_SEPARATOR: If a digit separator is allowed before any integer digits.EXPONENT_LEADING_DIGIT_SEPARATOR: If a digit separator is allowed before any exponent digits.INTEGER_TRAILING_DIGIT_SEPARATOR: If a digit separator is allowed after any integer digits.FRACTION_TRAILING_DIGIT_SEPARATOR: If a digit separator is allowed after any fraction digits.EXPONENT_TRAILING_DIGIT_SEPARATOR: If a digit separator is allowed after any exponent digits.INTEGER_CONSECUTIVE_DIGIT_SEPARATOR: If multiple consecutive integer digit separators are allowed.FRACTION_CONSECUTIVE_DIGIT_SEPARATOR: If multiple consecutive fraction digit separators are allowed.EXPONENT_CONSECUTIVE_DIGIT_SEPARATOR: If multiple consecutive exponent digit separators are allowed.INTERNAL_DIGIT_SEPARATOR: If digit separators are allowed between digits.LEADING_DIGIT_SEPARATOR: Get if a digit separator is allowed before any digits.TRAILING_DIGIT_SEPARATOR: If a digit separator is allowed after any digits.CONSECUTIVE_DIGIT_SEPARATOR: If multiple consecutive digit separators are allowed.SPECIAL_DIGIT_SEPARATOR: If any digit separators are allowed in special (non-finite) values.
§Character Shifts and Masks
Bitmasks and bit shifts to get and set control characters for the format packed struct.
DIGIT_SEPARATOR_SHIFT: Shift to convert to and from a digit separator as au8.DIGIT_SEPARATOR: Mask to extract the digit separator character.BASE_PREFIX_SHIFT: Shift to convert to and from a base prefix as au8.BASE_PREFIX: Mask to extract the base prefix character.BASE_SUFFIX_SHIFT: Shift to convert to and from a base suffix as au8.BASE_SUFFIX: Mask to extract the base suffix character.MANTISSA_RADIX_SHIFT: Shift to convert to and from a mantissa radix as au32.MANTISSA_RADIX: Mask to extract the mantissa radix: the radix for the significant digits.RADIX_SHIFT: Alias forMANTISSA_RADIX_SHIFT.RADIX: Alias forMANTISSA_RADIX.EXPONENT_BASE_SHIFT: Shift to convert to and from an exponent base as au32.EXPONENT_BASE: Mask to extract the exponent base: the base the exponent is raised to.EXPONENT_RADIX_SHIFT: Shift to convert to and from an exponent radix as au32.EXPONENT_RADIX: Mask to extract the exponent radix: the radix for the exponent digits.
§Character Functions
Functions to get control characters from the format packed struct.
digit_separator: Extract the digit separator from the format packed struct.base_prefix: Extract the base prefix character from the format packed struct.base_suffix: Extract the base suffix character from the format packed struct.mantissa_radix: Extract the mantissa radix from the format packed struct.exponent_base: Extract the exponent base from the format packed struct.exponent_radix: Extract the exponent radix from the format packed struct.
§Validators
Functions to validate control characters for the format packed struct.
is_valid_exponent_flags: Determine if the provided exponent flags are valid.is_valid_digit_separator: Determine if the digit separator is valid.is_valid_base_prefix: Determine if the base prefix character is valid.is_valid_base_suffix: Determine if the base suffix character is valid.is_valid_punctuation: Determine if all of the “punctuation” characters are valid.is_valid_radix: Determine if the radix is valid.
Structs§
- Number
Format - Helper to access features from the packed format struct.
- Number
Format Builder - Validating builder for
NumberFormatfrom the provided specifications.
Constants§
- BASE_
PREFIX - Mask to extract the base prefix character.
- BASE_
PREFIX_ SHIFT - Shift to convert to and from a base prefix as a
u8. - BASE_
SUFFIX - Mask to extract the base suffix character.
- BASE_
SUFFIX_ SHIFT - Shift to convert to and from a base suffix as a
u8. - C11_
HEX_ LITERAL - Number format for a
C11literal hexadecimal floating-point number. - C11_
HEX_ STRING - Number format for a
C11string hexadecimal floating-point number. - C11_
LITERAL - Number format for a
C11literal floating-point number. - C11_
STRING - Number format for a
C11string floating-point number. - C18_
HEX_ LITERAL - Number format for a
C18literal hexadecimal floating-point number. - C18_
HEX_ STRING - Number format for a
C18string hexadecimal floating-point number. - C18_
LITERAL - Number format for a
C18literal floating-point number. - C18_
STRING - Number format for a
C18string floating-point number. - C89_
HEX_ STRING - Number format for a
C89string hexadecimal floating-point number. - C89_
LITERAL - Number format for a
C89literal floating-point number. - C89_
STRING - Number format for a
C89string floating-point number. - C90_
HEX_ STRING - Number format for a
C90string hexadecimal floating-point number. - C90_
LITERAL - Number format for a
C90literal floating-point number. - C90_
STRING - Number format for a
C90string floating-point number. - C99_
HEX_ LITERAL - Number format for a
C99literal hexadecimal floating-point number. - C99_
HEX_ STRING - Number format for a
C99string hexadecimal floating-point number. - C99_
LITERAL - Number format for a
C99literal floating-point number. - C99_
STRING - Number format for a
C99string floating-point number. - CASE_
SENSITIVE_ BASE_ PREFIX - Base prefixes are case-sensitive.
- CASE_
SENSITIVE_ BASE_ SUFFIX - Base suffixes are case-sensitive.
- CASE_
SENSITIVE_ EXPONENT - Exponent characters are case-sensitive.
- CASE_
SENSITIVE_ SPECIAL - Special (non-finite) values are case-sensitive.
- CLOJURE_
LITERAL - Number format for a
Clojureliteral floating-point number. - CLOJURE_
STRING - Number format to parse a
Clojurefloat from string. - COBOL_
LITERAL - Number format for a
Cobolliteral floating-point number. - COBOL_
STRING - Number format to parse a
Cobolfloat from string. - COFFEESCRIPT_
LITERAL - Number format for a
Coffeescriptliteral floating-point number. - COFFEESCRIPT_
STRING - Number format to parse a
Coffeescriptfloat from string. - CONSECUTIVE_
DIGIT_ SEPARATOR - Multiple consecutive digit separators are allowed.
- CSHAR
P1_ LITERAL - Number format for a
C#1literal floating-point number. - CSHAR
P1_ STRING - Number format to parse a
C#1float from string. - CSHAR
P2_ LITERAL - Number format for a
C#2literal floating-point number. - CSHAR
P2_ STRING - Number format to parse a
C#2float from string. - CSHAR
P3_ LITERAL - Number format for a
C#3literal floating-point number. - CSHAR
P3_ STRING - Number format to parse a
C#3float from string. - CSHAR
P4_ LITERAL - Number format for a
C#4literal floating-point number. - CSHAR
P4_ STRING - Number format to parse a
C#4float from string. - CSHAR
P5_ LITERAL - Number format for a
C#5literal floating-point number. - CSHAR
P5_ STRING - Number format to parse a
C#5float from string. - CSHAR
P6_ LITERAL - Number format for a
C#6literal floating-point number. - CSHAR
P6_ STRING - Number format to parse a
C#6float from string. - CSHAR
P7_ LITERAL - Number format for a
C#7literal floating-point number. - CSHAR
P7_ STRING - Number format to parse a
C#7float from string. - CSHARP_
LITERAL - Number format for a
C#literal floating-point number. - CSHARP_
STRING - Number format to parse a
C#float from string. - CXX03_
LITERAL - Number format for a
C++03literal floating-point number. - CXX03_
STRING - Number format for a
C++03string floating-point number. - CXX11_
HEX_ STRING - Number format for a
C++11string hexadecimal floating-point number. - CXX11_
LITERAL - Number format for a
C++11literal floating-point number. - CXX11_
STRING - Number format for a
C++11string floating-point number. - CXX14_
HEX_ STRING - Number format for a
C++14string hexadecimal floating-point number. - CXX14_
LITERAL - Number format for a
C++14literal floating-point number. - CXX14_
STRING - Number format for a
C++14string floating-point number. - CXX17_
HEX_ LITERAL - Number format for a
C++17literal hexadecimal floating-point number. - CXX17_
HEX_ STRING - Number format for a
C++17string hexadecimal floating-point number. - CXX17_
LITERAL - Number format for a
C++17literal floating-point number. - CXX17_
STRING - Number format for a
C++17string floating-point number. - CXX20_
HEX_ LITERAL - Number format for a
C++20literal hexadecimal floating-point number. - CXX20_
HEX_ STRING - Number format for a
C++20string hexadecimal floating-point number. - CXX20_
LITERAL - Number format for a
C++20literal floating-point number. - CXX20_
STRING - Number format for a
C++20string floating-point number. - CXX98_
LITERAL - Number format for a
C++98literal floating-point number. - CXX98_
STRING - Number format for a
C++98string floating-point number. - CXX_
HEX_ LITERAL - Number format for a
C++literal hexadecimal floating-point number. - CXX_
HEX_ STRING - Number format to parse a
C++hexadecimal float from string. - CXX_
LITERAL - Number format for a
C++literal floating-point number. - CXX_
STRING - Number format to parse a
C++float from string. - C_
HEX_ LITERAL - Number format for a
Cliteral hexadecimal floating-point number. - C_
HEX_ STRING - Number format to parse a
Chexadecimal float from string. - C_
LITERAL - Number format for a
Cliteral floating-point number. - C_
STRING - Number format to parse a
Cfloat from string. - DIGIT_
SEPARATOR - Mask to extract the digit separator character.
- DIGIT_
SEPARATOR_ SHIFT - Shift to convert to and from a digit separator as a
u8. - D_
LITERAL - Number format for a
Dliteral floating-point number. - D_
STRING - Number format to parse a
Dfloat from string. - ELIXIR_
LITERAL - Number format for an
Elixirliteral floating-point number. - ELIXIR_
STRING - Number format to parse an
Elixirfloat from string. - ELM_
LITERAL - Number format for an
Elmliteral floating-point number. - ELM_
STRING - Number format to parse an
Elmfloat from string. - ERLANG_
LITERAL - Number format for an
Erlangliteral floating-point number. - ERLANG_
STRING - Number format to parse an
Erlangfloat from string. - EXPONENT_
BASE - Mask to extract the exponent base: the base the exponent is raised to.
- EXPONENT_
BASE_ SHIFT - Shift to convert to and from an exponent base as a
u32. - EXPONENT_
CONSECUTIVE_ DIGIT_ SEPARATOR - Multiple consecutive exponent digit separators are allowed.
- EXPONENT_
INTERNAL_ DIGIT_ SEPARATOR - Digit separators are allowed between exponent digits.
- EXPONENT_
LEADING_ DIGIT_ SEPARATOR - A digit separator is allowed before any exponent digits.
- EXPONENT_
RADIX - Mask to extract the exponent radix: the radix for the exponent digits.
- EXPONENT_
RADIX_ SHIFT - Shift to convert to and from an exponent radix as a
u32. - EXPONENT_
TRAILING_ DIGIT_ SEPARATOR - A digit separator is allowed after any exponent digits.
- FORTRAN_
LITERAL - Number format for a
FORTRANliteral floating-point number. - FORTRAN_
STRING - Number format to parse a
FORTRANfloat from string. - FRACTION_
CONSECUTIVE_ DIGIT_ SEPARATOR - Multiple consecutive fraction digit separators are allowed.
- FRACTION_
INTERNAL_ DIGIT_ SEPARATOR - Digit separators are allowed between fraction digits.
- FRACTION_
LEADING_ DIGIT_ SEPARATOR - A digit separator is allowed before any fraction digits.
- FRACTION_
TRAILING_ DIGIT_ SEPARATOR - A digit separator is allowed after any fraction digits.
- FSHARP_
LITERAL - Number format for a
F#literal floating-point number. - FSHARP_
STRING - Number format to parse a
F#float from string. - GAMBITC_
LITERAL - Number format for a
Gambit-Cliteral floating-point number. - GAMBITC_
STRING - Number format to parse a
Gambit-Cfloat from string. - GO_
LITERAL - Number format for a
Golangliteral floating-point number. - GO_
STRING - Number format to parse a
Golangfloat from string. - GUILE_
LITERAL - Number format for a
Guileliteral floating-point number. - GUILE_
STRING - Number format to parse a
Guilefloat from string. - HASKELL_
LITERAL - Number format for a
Haskellliteral floating-point number. - HASKELL_
STRING - Number format to parse a
Haskellfloat from string. - INTEGER_
CONSECUTIVE_ DIGIT_ SEPARATOR - Multiple consecutive integer digit separators are allowed.
- INTEGER_
INTERNAL_ DIGIT_ SEPARATOR - Digit separators are allowed between integer digits.
- INTEGER_
LEADING_ DIGIT_ SEPARATOR - A digit separator is allowed before any integer digits.
- INTEGER_
TRAILING_ DIGIT_ SEPARATOR - A digit separator is allowed after any integer digits.
- INTERNAL_
DIGIT_ SEPARATOR - Digit separators are allowed between digits.
- JAVASCRIPT_
LITERAL - Number format for a
Javascriptliteral floating-point number. - JAVASCRIPT_
STRING - Number format to parse a
Javascriptfloat from string. - JAVA_
LITERAL - Number format for a
Javaliteral floating-point number. - JAVA_
STRING - Number format to parse a
Javafloat from string. - JSON
- Number format for a
JSONliteral floating-point number. - JULIA_
HEX_ LITERAL - Number format for a
Julialiteral floating-point number. - JULIA_
HEX_ STRING - Number format to parse a
Juliafloat from string. - JULIA_
LITERAL - Number format for a
Julialiteral floating-point number. - JULIA_
STRING - Number format to parse a
Juliafloat from string. - KAWA_
LITERAL - Number format for a
Kawaliteral floating-point number. - KAWA_
STRING - Number format to parse a
Kawafloat from string. - KOTLIN_
LITERAL - Number format for a
Kotlinliteral floating-point number. - KOTLIN_
STRING - Number format to parse a
Kotlinfloat from string. - LEADING_
DIGIT_ SEPARATOR - A digit separator is allowed before any digits.
- MANTISSA_
RADIX - Mask to extract the mantissa radix: the radix for the significant digits.
- MANTISSA_
RADIX_ SHIFT - Shift to convert to and from a mantissa radix as a
u32. - MATLAB_
LITERAL - Number format for an
Matlabliteral floating-point number. - MATLAB_
STRING - Number format to parse an
Matlabfloat from string. - MONGODB
- Number format for a
MongoDBliteral floating-point number. - MYSQL
- Number format for a
MySQLliteral floating-point number. - NO_
EXPONENT_ NOTATION - Exponent notation is not allowed.
- NO_
EXPONENT_ WITHOUT_ FRACTION - Exponent without a fraction component is not allowed.
- NO_
FLOAT_ LEADING_ ZEROS - Leading zeros before a float value are not allowed.
- NO_
INTEGER_ LEADING_ ZEROS - Leading zeros before an integer value are not allowed.
- NO_
POSITIVE_ EXPONENT_ SIGN - Positive sign before the exponent is not allowed.
- NO_
POSITIVE_ MANTISSA_ SIGN - Positive sign before the mantissa is not allowed.
- NO_
SPECIAL - Special (non-finite) values are not allowed.
- OBJECTIVEC_
LITERAL - Number format for an
Objective-Cliteral floating-point number. - OBJECTIVEC_
STRING - Number format to parse an
Objective-Cfloat from string. - OCAML_
LITERAL - Number format for an
OCamlliteral floating-point number. - OCAML_
STRING - Number format to parse an
OCamlfloat from string. - OCTAVE_
LITERAL - Number format for an
Octaveliteral floating-point number. - OCTAVE_
STRING - Number format to parse an
Octavefloat from string. - PERL_
LITERAL - Number format for a
Perlliteral floating-point number. - PERL_
STRING - Number format to parse a
Perlfloat from string. - PHP_
LITERAL - Number format for a
PHPliteral floating-point number. - PHP_
STRING - Number format to parse a
PHPfloat from string. - POSTGRESQL
- Number format for a
PostgreSQLliteral floating-point number. - PYTHO
N2_ LITERAL - Number format for a
Python2literal floating-point number. - PYTHO
N2_ STRING - Number format to parse a
Python2float from string. - PYTHO
N3_ LITERAL - Number format for a
Python3literal floating-point number. - PYTHO
N3_ STRING - Number format to parse a
Python3float from string. - PYTHO
N35_ LITERAL - Number format for a
Python3.5or lower literal floating-point number. - PYTHO
N36_ LITERAL - Number format for a
Python3.6or higher literal floating-point number. - PYTHON_
LITERAL - Number format for a
Pythonliteral floating-point number. - PYTHON_
STRING - Number format to parse a
Pythonfloat from string. - RADIX
- Alias for
MANTISSA_RADIX. - RADIX_
MASK - Mask to extract the exponent radix: the radix for the exponent digits.
- RADIX_
SHIFT - Alias for
MANTISSA_RADIX_SHIFT. - REASONML_
LITERAL - Number format for a
ReasonMLliteral floating-point number. - REASONML_
STRING - Number format to parse a
ReasonMLfloat from string. - REQUIRED_
DIGITS - At least 1 digit in the number is required.
- REQUIRED_
EXPONENT_ DIGITS - Digits are required after the exponent character. This check will only occur if the exponent character is present.
- REQUIRED_
EXPONENT_ NOTATION - Exponent notation is required.
- REQUIRED_
EXPONENT_ SIGN - Positive sign before the exponent is required.
- REQUIRED_
FRACTION_ DIGITS - Digits are required after the decimal point. This check will only occur if the decimal point is present.
- REQUIRED_
INTEGER_ DIGITS - Digits are required before the decimal point.
- REQUIRED_
MANTISSA_ DIGITS - Mantissa digits are required (either before or after the decimal point).
- REQUIRED_
MANTISSA_ SIGN - Positive sign before the mantissa is required.
- RUBY_
LITERAL - Number format for a
Rubyliteral floating-point number. - RUBY_
OCTAL_ LITERAL - Number format for an octal
Rubyliteral floating-point number. - RUBY_
STRING - Number format to parse a
Rubyfloat from string. - RUST_
LITERAL - Number format for a
Rustliteral floating-point number. - RUST_
STRING - Number format to parse a
Rustfloat from string. - R_
LITERAL - Number format for an
Rliteral floating-point number. - R_
STRING - Number format to parse an
Rfloat from string. - SAGE_
LITERAL - Number format for a
Sageliteral floating-point number. - SAGE_
STRING - Number format to parse a
Sagefloat from string. - SCALA_
LITERAL - Number format for a
Scalaliteral floating-point number. - SCALA_
STRING - Number format to parse a
Scalafloat from string. - SPECIAL_
DIGIT_ SEPARATOR - Any digit separators are allowed in special (non-finite) values.
- SQLITE
- Number format for a
SQLiteliteral floating-point number. - STANDARD
- Standard number format. This is identical to the Rust string format.
- SWIFT_
LITERAL - Number format for a
Swiftliteral floating-point number. - SWIFT_
STRING - Number format to parse a
Swiftfloat from string. - TOML
- Number format for a
TOMLliteral floating-point number. - TRAILING_
DIGIT_ SEPARATOR - A digit separator is allowed after any digits.
- VB_
LITERAL - Number format for a
Visual Basicliteral floating-point number. - VB_
STRING - Number format to parse a
Visual Basicfloat from string. - XML
- Number format for an
XMLliteral floating-point number. - YAML
- Number format for a
YAMLliteral floating-point number. - ZIG_
LITERAL - Number format for a
Zigliteral floating-point number. - ZIG_
STRING - Number format to parse a
Zigfloat from string.
Functions§
- format_
error - Get the error type from the format packed struct.
- format_
is_ valid - Determine if the format packed struct is valid.
- is_
valid_ base_ prefix - Determine if the base prefix character is valid.
- is_
valid_ base_ suffix - Determine if the base suffix character is valid.
- is_
valid_ digit_ separator - Determine if the digit separator is valid.
- is_
valid_ exponent_ flags - Determine if the provided exponent flags are valid.
- is_
valid_ punctuation - Determine if all of the “punctuation” characters are valid.
- is_
valid_ radix - Determine if the radix is valid.