Module lexical_parse_integer::format
source · Expand description
Public API for the number format packed struct.
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.
§Pre-Defined Formats
These are the pre-defined formats for parsing numbers from various programming, markup, and data languages.
- STANDARD
RUST_LITERALRUST_STRINGPYTHON_LITERALPYTHON_STRINGPYTHON3_LITERALPYTHON3_STRINGPYTHON36_LITERALPYTHON35_LITERALPYTHON2_LITERALPYTHON2_STRINGCXX_LITERALCXX_STRINGCXX_HEX_LITERALCXX_HEX_STRINGCXX20_LITERALCXX20_STRINGCXX20_HEX_LITERALCXX20_HEX_STRINGCXX17_LITERALCXX17_STRINGCXX17_HEX_LITERALCXX17_HEX_STRINGCXX14_LITERALCXX14_STRINGCXX14_HEX_STRINGCXX11_LITERALCXX11_STRINGCXX11_HEX_STRINGCXX03_LITERALCXX03_STRINGCXX98_LITERALCXX98_STRINGC_LITERALC_STRINGC_HEX_LITERALC_HEX_STRINGC18_LITERALC18_STRINGC18_HEX_LITERALC18_HEX_STRINGC11_LITERALC11_STRINGC11_HEX_LITERALC11_HEX_STRINGC99_LITERALC99_STRINGC99_HEX_LITERALC99_HEX_STRINGC90_LITERALC90_STRINGC90_HEX_STRINGC89_LITERALC89_STRINGC89_HEX_STRINGRUBY_LITERALRUBY_OCTAL_LITERALRUBY_STRINGSWIFT_LITERALSWIFT_STRINGGO_LITERALGO_STRINGHASKELL_LITERALHASKELL_STRINGJAVASCRIPT_LITERALJAVASCRIPT_STRINGPERL_LITERALPERL_STRINGPHP_LITERALPHP_STRINGJAVA_LITERALJAVA_STRINGR_LITERALR_STRINGKOTLIN_LITERALKOTLIN_STRINGJULIA_LITERALJULIA_STRINGJULIA_HEX_LITERALJULIA_HEX_STRINGCSHARP_LITERALCSHARP_STRINGCSHARP7_LITERALCSHARP7_STRINGCSHARP6_LITERALCSHARP6_STRINGCSHARP5_LITERALCSHARP5_STRINGCSHARP4_LITERALCSHARP4_STRINGCSHARP3_LITERALCSHARP3_STRINGCSHARP2_LITERALCSHARP2_STRINGCSHARP1_LITERALCSHARP1_STRINGKAWA_LITERALKAWA_STRINGGAMBITC_LITERALGAMBITC_STRINGGUILE_LITERALGUILE_STRINGCLOJURE_LITERALCLOJURE_STRINGERLANG_LITERALERLANG_STRINGELM_LITERALELM_STRINGSCALA_LITERALSCALA_STRINGELIXIR_LITERALELIXIR_STRINGFORTRAN_LITERALFORTRAN_STRINGD_LITERALD_STRINGCOFFEESCRIPT_LITERALCOFFEESCRIPT_STRINGCOBOL_LITERALCOBOL_STRINGFSHARP_LITERALFSHARP_STRINGVB_LITERALVB_STRINGOCAML_LITERALOCAML_STRINGOBJECTIVEC_LITERALOBJECTIVEC_STRINGREASONML_LITERALREASONML_STRINGOCTAVE_LITERALOCTAVE_STRINGMATLAB_LITERALMATLAB_STRINGZIG_LITERALZIG_STRINGSAGE_LITERALSAGE_STRINGJSONTOMLYAMLXMLSQLITEPOSTGRESQLMYSQLMONGODB
§Syntax Flags
Bitflags to get and set syntax flags for the format packed struct.
REQUIRED_INTEGER_DIGITSREQUIRED_FRACTION_DIGITSREQUIRED_EXPONENT_DIGITSREQUIRED_MANTISSA_DIGITSREQUIRED_DIGITSNO_POSITIVE_MANTISSA_SIGNREQUIRED_MANTISSA_SIGNNO_EXPONENT_NOTATIONNO_POSITIVE_EXPONENT_SIGNREQUIRED_EXPONENT_SIGNNO_EXPONENT_WITHOUT_FRACTIONNO_SPECIALCASE_SENSITIVE_SPECIALNO_INTEGER_LEADING_ZEROSNO_FLOAT_LEADING_ZEROSREQUIRED_EXPONENT_NOTATIONCASE_SENSITIVE_EXPONENTCASE_SENSITIVE_BASE_PREFIXCASE_SENSITIVE_BASE_SUFFIX
§Digit Separator Flags
Bitflags to get and set digit separators flags for the format packed struct.
INTEGER_INTERNAL_DIGIT_SEPARATORFRACTION_INTERNAL_DIGIT_SEPARATOREXPONENT_INTERNAL_DIGIT_SEPARATORINTEGER_LEADING_DIGIT_SEPARATORFRACTION_LEADING_DIGIT_SEPARATOREXPONENT_LEADING_DIGIT_SEPARATORINTEGER_TRAILING_DIGIT_SEPARATORFRACTION_TRAILING_DIGIT_SEPARATOREXPONENT_TRAILING_DIGIT_SEPARATORINTEGER_CONSECUTIVE_DIGIT_SEPARATORFRACTION_CONSECUTIVE_DIGIT_SEPARATOREXPONENT_CONSECUTIVE_DIGIT_SEPARATORINTERNAL_DIGIT_SEPARATORLEADING_DIGIT_SEPARATORTRAILING_DIGIT_SEPARATORCONSECUTIVE_DIGIT_SEPARATORSPECIAL_DIGIT_SEPARATOR
§Character Shifts and Masks
Bitmasks and bitshifts to get and set control characters for the format packed struct.
DIGIT_SEPARATOR_SHIFTDIGIT_SEPARATORBASE_PREFIX_SHIFTBASE_PREFIXBASE_SUFFIX_SHIFTBASE_SUFFIXMANTISSA_RADIX_SHIFTMANTISSA_RADIXRADIX_SHIFTRADIXEXPONENT_BASE_SHIFTEXPONENT_BASEEXPONENT_RADIX_SHIFTEXPONENT_RADIX
§Character Functions
Functions to get control characters from the format packed struct.
digit_separatorbase_prefixbase_suffixmantissa_radixexponent_baseexponent_radixradix_from_flags
§Validators
Functions to validate control characters for the format packed struct.
Structs§
- Build number format from specifications.
Constants§
- Mask to extract the base prefix character.
- Shift to convert to and from a base prefix as a
u8. - Mask to extract the base suffix character.
- Shift to convert to and from a base suffix as a
u8. - Number format for a
C11literal hexadecimal floating-point number. - Number format for a
C11string hexadecimal floating-point number. - Number format for a
C11literal floating-point number. - Number format for a
C11string floating-point number. - Number format for a
C18literal hexadecimal floating-point number. - Number format for a
C18string hexadecimal floating-point number. - Number format for a
C18literal floating-point number. - Number format for a
C18string floating-point number. - Number format for a
C89string hexadecimal floating-point number. - Number format for a
C89literal floating-point number. - Number format for a
C89string floating-point number. - Number format for a
C90string hexadecimal floating-point number. - Number format for a
C90literal floating-point number. - Number format for a
C90string floating-point number. - Number format for a
C99literal hexadecimal floating-point number. - Number format for a
C99string hexadecimal floating-point number. - Number format for a
C99literal floating-point number. - Number format for a
C99string floating-point number. - Base prefixes are case-sensitive.
- Base suffixes are case-sensitive.
- Exponent characters are case-sensitive.
- Special (non-finite) values are case-sensitive.
- Number format for a
Clojureliteral floating-point number. - Number format to parse a
Clojurefloat from string. - Number format for a
Cobolliteral floating-point number. - Number format to parse a
Cobolfloat from string. - Number format for a
Coffeescriptliteral floating-point number. - Number format to parse a
Coffeescriptfloat from string. - Multiple consecutive digit separators are allowed.
- Number format for a
C#1literal floating-point number. - Number format to parse a
C#1float from string. - Number format for a
C#2literal floating-point number. - Number format to parse a
C#2float from string. - Number format for a
C#3literal floating-point number. - Number format to parse a
C#3float from string. - Number format for a
C#4literal floating-point number. - Number format to parse a
C#4float from string. - Number format for a
C#5literal floating-point number. - Number format to parse a
C#5float from string. - Number format for a
C#6literal floating-point number. - Number format to parse a
C#6float from string. - Number format for a
C#7literal floating-point number. - Number format to parse a
C#7float from string. - Number format for a
C#literal floating-point number. - Number format to parse a
C#float from string. - Number format for a
C++03literal floating-point number. - Number format for a
C++03string floating-point number. - Number format for a
C++11string hexadecimal floating-point number. - Number format for a
C++11literal floating-point number. - Number format for a
C++11string floating-point number. - Number format for a
C++14string hexadecimal floating-point number. - Number format for a
C++14literal floating-point number. - Number format for a
C++14string floating-point number. - Number format for a
C++17literal hexadecimal floating-point number. - Number format for a
C++17string hexadecimal floating-point number. - Number format for a
C++17literal floating-point number. - Number format for a
C++17string floating-point number. - Number format for a
C++20literal hexadecimal floating-point number. - Number format for a
C++20string hexadecimal floating-point number. - Number format for a
C++20literal floating-point number. - Number format for a
C++20string floating-point number. - Number format for a
C++98literal floating-point number. - Number format for a
C++98string floating-point number. - Number format for a
C++literal hexadecimal floating-point number. - Number format to parse a
C++hexadecimal float from string. - Number format for a
C++literal floating-point number. - Number format to parse a
C++float from string. - Number format for a
Cliteral hexadecimal floating-point number. - Number format to parse a
Chexadecimal float from string. - Number format for a C literal floating-point number.
- Number format to parse a
Cfloat from string. - Mask to extract the digit separator character.
- Shift to convert to and from a digit separator as a
u8. - Number format for a
Dliteral floating-point number. - Number format to parse a
Dfloat from string. - Number format for an
Elixirliteral floating-point number. - Number format to parse an
Elixirfloat from string. - Number format for an
Elmliteral floating-point number. - Number format to parse an
Elmfloat from string. - Number format for an
Erlangliteral floating-point number. - Number format to parse an
Erlangfloat from string. - Mask to extract the exponent base: the base the exponent is raised to.
- Shift to convert to and from an exponent base as a
u32. - Multiple consecutive exponent digit separators are allowed.
- Digit separators are allowed between exponent digits.
- A digit separator is allowed before any exponent digits.
- Mask to extract the exponent radix: the radix for the exponent digits.
- Shift to convert to and from an exponent radix as a
u32. - A digit separator is allowed after any exponent digits.
- Number format for a
FORTRANliteral floating-point number. - Number format to parse a
FORTRANfloat from string. - Multiple consecutive fraction digit separators are allowed.
- Digit separators are allowed between fraction digits.
- A digit separator is allowed before any fraction digits.
- A digit separator is allowed after any fraction digits.
- Number format for a
F#literal floating-point number. - Number format to parse a
F#float from string. - Number format for a
Gambit-Cliteral floating-point number. - Number format to parse a
Gambit-Cfloat from string. - Number format for a
Golangliteral floating-point number. - Number format to parse a
Golangfloat from string. - Number format for a
Guileliteral floating-point number. - Number format to parse a
Guilefloat from string. - Number format for a
Haskellliteral floating-point number. - Number format to parse a
Haskellfloat from string. - Multiple consecutive integer digit separators are allowed.
- Digit separators are allowed between integer digits.
- A digit separator is allowed before any integer digits.
- A digit separator is allowed after any integer digits.
- Digit separators are allowed between digits.
- Number format for a
Javascriptliteral floating-point number. - Number format to parse a
Javascriptfloat from string. - Number format for a
Javaliteral floating-point number. - Number format to parse a
Javafloat from string. - Number format for a
JSONliteral floating-point number. - Number format for a
Julialiteral floating-point number. - Number format to parse a
Juliafloat from string. - Number format for a
Julialiteral floating-point number. - Number format to parse a
Juliafloat from string. - Number format for a
Kawaliteral floating-point number. - Number format to parse a
Kawafloat from string. - Number format for a
Kotlinliteral floating-point number. - Number format to parse a
Kotlinfloat from string. - A digit separator is allowed before any digits.
- Mask to extract the mantissa radix: the radix for the significant digits.
- Shift to convert to and from a mantissa radix as a
u32. - Number format for an
Matlabliteral floating-point number. - Number format to parse an
Matlabfloat from string. - Number format for a
MongoDBliteral floating-point number. - Number format for a
MySQLliteral floating-point number. - Exponent notation is not allowed.
- Exponent without a fraction component is not allowed.
- Leading zeros before a float value are not allowed.
- Leading zeros before an integer value are not allowed.
- Positive sign before the exponent is not allowed.
- Positive sign before the mantissa is not allowed.
- Special (non-finite) values are not allowed.
- Number format for an
Objective-Cliteral floating-point number. - Number format to parse an
Objective-Cfloat from string. - Number format for an
OCamlliteral floating-point number. - Number format to parse an
OCamlfloat from string. - Number format for an
Octaveliteral floating-point number. - Number format to parse an
Octavefloat from string. - Number format for a
Perlliteral floating-point number. - Number format to parse a
Perlfloat from string. - Number format for a
PHPliteral floating-point number. - Number format to parse a
PHPfloat from string. - Number format for a
PostgreSQLliteral floating-point number. - Number format for a
Python2literal floating-point number. - Number format to parse a
Python2float from string. - Number format for a
Python3literal floating-point number. - Number format to parse a
Python3float from string. - Number format for a
Python3.5or lower literal floating-point number. - Number format for a
Python3.6or higher literal floating-point number. - Number format for a
Pythonliteral floating-point number. - Number format to parse a
Pythonfloat from string. - Alias for
MANTISSA_RADIX. - Alias for
MANTISSA_RADIX_SHIFT. - Number format for a
ReasonMLliteral floating-point number. - Number format to parse a
ReasonMLfloat from string. - At least 1 digit in the number is required.
- Digits are required after the exponent character. This check will only occur if the exponent character is present.
- Exponent notation is required.
- Positive sign before the exponent is required.
- Digits are required after the decimal point. This check will only occur if the decimal point is present.
- Digits are required before the decimal point.
- Mantissa digits are required (either before or after the decimal point).
- Positive sign before the mantissa is required.
- Number format for a
Rubyliteral floating-point number. - Number format for a
Rubyliteral floating-point number. - Number format to parse a
Rubyfloat from string. - Number format for a
Rustliteral floating-point number. - Number format to parse a
Rustfloat from string. - Number format for a
Rliteral floating-point number. - Number format to parse a
Rfloat from string. - Number format for a
Sageliteral floating-point number. - Number format to parse a
Sagefloat from string. - Number format for a
Scalaliteral floating-point number. - Number format to parse a
Scalafloat from string. - Any digit separators are allowed in special (non-finite) values.
- Number format for a
SQLiteliteral floating-point number. - Standard number format. This is identical to the Rust string format.
- Number format for a
Swiftliteral floating-point number. - Number format to parse a
Swiftfloat from string. - Number format for a
TOMLliteral floating-point number. - A digit separator is allowed after any digits.
- Number format for a
Visual Basicliteral floating-point number. - Number format to parse a
Visual Basicfloat from string. - Number format for a
XMLliteral floating-point number. - Number format for a
YAMLliteral floating-point number. - Number format for a
Zigliteral floating-point number. - Number format to parse a
Zigfloat from string.
Functions§
- Extract the base prefix character from the format packed struct.
- Extract the base suffix character from the format packed struct.
- Extract the digit separator from the format packed struct.
- Extract the exponent base from the format packed struct. If not provided, defaults to
mantissa_radix. - Extract the exponent radix from the format packed struct. If not provided, defaults to
mantissa_radix. - Get the error type from the format packed struct.
- Determine if the format packed struct is valid.
- Determine if the base prefix character is valid.
- Determine if the base suffix character is valid.
- Determine if the digit separator is valid. Digit separators must not be valid digits or sign characters.
- Determine if the provided exponent flags are valid.
- Determine if all of the “punctuation” characters for the options API are valid.
- Determine if all of the “punctuation” characters are valid.
- Determine if the radix is valid.
- Extract the mantissa radix from the format packed struct.
- Extract a generic radix from the format and bitflags.
Type Aliases§
- Type with the exact same size as a
u8.