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_LITERAL
- RUST_STRING
- PYTHON_LITERAL
- PYTHON_STRING
- PYTHON3_LITERAL
- PYTHON3_STRING
- PYTHON36_LITERAL
- PYTHON35_LITERAL
- PYTHON2_LITERAL
- PYTHON2_STRING
- CXX_LITERAL
- CXX_STRING
- CXX20_LITERAL
- CXX20_STRING
- CXX17_LITERAL
- CXX17_STRING
- CXX14_LITERAL
- CXX14_STRING
- CXX11_LITERAL
- CXX11_STRING
- CXX03_LITERAL
- CXX03_STRING
- CXX98_LITERAL
- CXX98_STRING
- C_LITERAL
- C_STRING
- C18_LITERAL
- C18_STRING
- C11_LITERAL
- C11_STRING
- C99_LITERAL
- C99_STRING
- C90_LITERAL
- C90_STRING
- C89_LITERAL
- C89_STRING
- RUBY_LITERAL
- RUBY_STRING
- SWIFT_LITERAL
- SWIFT_STRING
- GO_LITERAL
- GO_STRING
- HASKELL_LITERAL
- HASKELL_STRING
- JAVASCRIPT_LITERAL
- JAVASCRIPT_STRING
- PERL_LITERAL
- PERL_STRING
- PHP_LITERAL
- PHP_STRING
- JAVA_LITERAL
- JAVA_STRING
- R_LITERAL
- R_STRING
- KOTLIN_LITERAL
- KOTLIN_STRING
- JULIA_LITERAL
- JULIA_STRING
- CSHARP_LITERAL
- CSHARP_STRING
- CSHARP7_LITERAL
- CSHARP7_STRING
- CSHARP6_LITERAL
- CSHARP6_STRING
- CSHARP5_LITERAL
- CSHARP5_STRING
- CSHARP4_LITERAL
- CSHARP4_STRING
- CSHARP3_LITERAL
- CSHARP3_STRING
- CSHARP2_LITERAL
- CSHARP2_STRING
- CSHARP1_LITERAL
- CSHARP1_STRING
- KAWA_LITERAL
- KAWA_STRING
- GAMBITC_LITERAL
- GAMBITC_STRING
- GUILE_LITERAL
- GUILE_STRING
- CLOJURE_LITERAL
- CLOJURE_STRING
- ERLANG_LITERAL
- ERLANG_STRING
- ELM_LITERAL
- ELM_STRING
- SCALA_LITERAL
- SCALA_STRING
- ELIXIR_LITERAL
- ELIXIR_STRING
- FORTRAN_LITERAL
- FORTRAN_STRING
- D_LITERAL
- D_STRING
- COFFEESCRIPT_LITERAL
- COFFEESCRIPT_STRING
- COBOL_LITERAL
- COBOL_STRING
- FSHARP_LITERAL
- FSHARP_STRING
- VB_LITERAL
- VB_STRING
- OCAML_LITERAL
- OCAML_STRING
- OBJECTIVEC_LITERAL
- OBJECTIVEC_STRING
- REASONML_LITERAL
- REASONML_STRING
- OCTAVE_LITERAL
- OCTAVE_STRING
- MATLAB_LITERAL
- MATLAB_STRING
- ZIG_LITERAL
- ZIG_STRING
- SAGE_LITERAL
- SAGE_STRING
- JSON
- TOML
- YAML
- XML
- SQLITE
- POSTGRESQL
- MYSQL
- MONGODB
§Syntax Flags
Bitflags to get and set syntax flags for the format packed struct.
- REQUIRED_INTEGER_DIGITS
- REQUIRED_FRACTION_DIGITS
- REQUIRED_EXPONENT_DIGITS
- REQUIRED_MANTISSA_DIGITS
- REQUIRED_DIGITS
- NO_POSITIVE_MANTISSA_SIGN
- REQUIRED_MANTISSA_SIGN
- NO_EXPONENT_NOTATION
- NO_POSITIVE_EXPONENT_SIGN
- REQUIRED_EXPONENT_SIGN
- NO_EXPONENT_WITHOUT_FRACTION
- NO_SPECIAL
- CASE_SENSITIVE_SPECIAL
- NO_INTEGER_LEADING_ZEROS
- NO_FLOAT_LEADING_ZEROS
- REQUIRED_EXPONENT_NOTATION
- CASE_SENSITIVE_EXPONENT
- CASE_SENSITIVE_BASE_PREFIX
- CASE_SENSITIVE_BASE_SUFFIX
§Digit Separator Flags
Bitflags to get and set digit separators flags for the format packed struct.
- INTEGER_INTERNAL_DIGIT_SEPARATOR
- FRACTION_INTERNAL_DIGIT_SEPARATOR
- EXPONENT_INTERNAL_DIGIT_SEPARATOR
- INTEGER_LEADING_DIGIT_SEPARATOR
- FRACTION_LEADING_DIGIT_SEPARATOR
- EXPONENT_LEADING_DIGIT_SEPARATOR
- INTEGER_TRAILING_DIGIT_SEPARATOR
- FRACTION_TRAILING_DIGIT_SEPARATOR
- EXPONENT_TRAILING_DIGIT_SEPARATOR
- INTEGER_CONSECUTIVE_DIGIT_SEPARATOR
- FRACTION_CONSECUTIVE_DIGIT_SEPARATOR
- EXPONENT_CONSECUTIVE_DIGIT_SEPARATOR
- INTERNAL_DIGIT_SEPARATOR
- LEADING_DIGIT_SEPARATOR
- TRAILING_DIGIT_SEPARATOR
- CONSECUTIVE_DIGIT_SEPARATOR
- SPECIAL_DIGIT_SEPARATOR
§Character Shifts and Masks
Bitmasks and bitshifts to get and set control characters for the format packed struct.
- DIGIT_SEPARATOR_SHIFT
- DIGIT_SEPARATOR
- BASE_PREFIX_SHIFT
- BASE_PREFIX
- BASE_SUFFIX_SHIFT
- BASE_SUFFIX
- MANTISSA_RADIX_SHIFT
- MANTISSA_RADIX
- RADIX_SHIFT
- RADIX
- EXPONENT_BASE_SHIFT
- EXPONENT_BASE
- EXPONENT_RADIX_SHIFT
- EXPONENT_RADIX
§Character Functions
Functions to get control characters from the format packed struct.
- digit_separator
- base_prefix
- base_suffix
- mantissa_radix
- exponent_base
- exponent_radix
- radix_from_flags
§Validators
Functions to validate control characters for the format packed struct.
Structs§
- Number
Format Builder - Build number format from 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_
LITERAL - Number format for a C++98 literal floating-point number.
- C11_
STRING - Number format for a C++98 string floating-point number.
- C18_
LITERAL - Number format for a C++98 literal floating-point number.
- C18_
STRING - Number format for a C++98 string floating-point number.
- C89_
LITERAL - Number format for a C++98 literal floating-point number.
- C89_
STRING - Number format for a C++98 string floating-point number.
- C90_
LITERAL - Number format for a C++98 literal floating-point number.
- C90_
STRING - Number format for a C++98 string floating-point number.
- C99_
LITERAL - Number format for a C++98 literal floating-point number.
- C99_
STRING - Number format for a C++98 string 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 Clojure literal floating-point number.
- CLOJURE_
STRING - Number format to parse a Clojure float from string.
- COBOL_
LITERAL - Number format for a Cobol literal floating-point number.
- COBOL_
STRING - Number format to parse a Cobol float from string.
- COFFEESCRIPT_
LITERAL - Number format for a Coffeescript literal floating-point number.
- COFFEESCRIPT_
STRING - Number format to parse a Coffeescript float from string.
- CONSECUTIVE_
DIGIT_ SEPARATOR - Multiple consecutive digit separators are allowed.
- CSHAR
P1_ LITERAL - Number format for a C#1 literal floating-point number.
- CSHAR
P1_ STRING - Number format to parse a C#1 float from string.
- CSHAR
P2_ LITERAL - Number format for a C#2 literal floating-point number.
- CSHAR
P2_ STRING - Number format to parse a C#2 float from string.
- CSHAR
P3_ LITERAL - Number format for a C#3 literal floating-point number.
- CSHAR
P3_ STRING - Number format to parse a C#3 float from string.
- CSHAR
P4_ LITERAL - Number format for a C#4 literal floating-point number.
- CSHAR
P4_ STRING - Number format to parse a C#4 float from string.
- CSHAR
P5_ LITERAL - Number format for a C#5 literal floating-point number.
- CSHAR
P5_ STRING - Number format to parse a C#5 float from string.
- CSHAR
P6_ LITERAL - Number format for a C#6 literal floating-point number.
- CSHAR
P6_ STRING - Number format to parse a C#6 float from string.
- CSHAR
P7_ LITERAL - Number format for a C#7 literal floating-point number.
- CSHAR
P7_ STRING - Number format to parse a C#7 float 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++03 literal floating-point number.
- CXX03_
STRING - Number format for a C++03 string floating-point number.
- CXX11_
LITERAL - Number format for a C++11 literal floating-point number.
- CXX11_
STRING - Number format for a C++11 string floating-point number.
- CXX14_
LITERAL - Number format for a C++14 literal floating-point number.
- CXX14_
STRING - Number format for a C++14 string floating-point number.
- CXX17_
LITERAL - Number format for a C++17 literal floating-point number.
- CXX17_
STRING - Number format for a C++17 string floating-point number.
- CXX20_
LITERAL - Number format for a C++20 literal floating-point number.
- CXX20_
STRING - Number format for a C++20 string floating-point number.
- CXX98_
LITERAL - Number format for a C++98 literal floating-point number.
- CXX98_
STRING - Number format for a C++98 string floating-point number.
- CXX_
LITERAL - Number format for a C++ literal floating-point number.
- CXX_
STRING - Number format to parse a C++ float from string.
- C_
LITERAL - Number format for a C literal floating-point number.
- C_
STRING - Number format to parse a C float 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 D literal floating-point number.
- D_
STRING - Number format to parse a D float from string.
- ELIXIR_
LITERAL - Number format for an Elixir literal floating-point number.
- ELIXIR_
STRING - Number format to parse an Elixir float from string.
- ELM_
LITERAL - Number format for an Elm literal floating-point number.
- ELM_
STRING - Number format to parse an Elm float from string.
- ERLANG_
LITERAL - Number format for an Erlang literal floating-point number.
- ERLANG_
STRING - Number format to parse an Erlang float 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 FORTRAN literal floating-point number.
- FORTRAN_
STRING - Number format to parse a FORTRAN float 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-C literal floating-point number.
- GAMBITC_
STRING - Number format to parse a Gambit-C float from string.
- GO_
LITERAL - Number format for a Golang literal floating-point number.
- GO_
STRING - Number format to parse a Golang float from string.
- GUILE_
LITERAL - Number format for a Guile literal floating-point number.
- GUILE_
STRING - Number format to parse a Guile float from string.
- HASKELL_
LITERAL - Number format for a Haskell literal floating-point number.
- HASKELL_
STRING - Number format to parse a Haskell float 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 Javascript literal floating-point number.
- JAVASCRIPT_
STRING - Number format to parse a Javascript float from string.
- JAVA_
LITERAL - Number format for a Java literal floating-point number.
- JAVA_
STRING - Number format to parse a Java float from string.
- JSON
- Number format for a JSON literal floating-point number.
- JULIA_
LITERAL - Number format for a Julia literal floating-point number.
- JULIA_
STRING - Number format to parse a Julia float from string.
- KAWA_
LITERAL - Number format for a Kawa literal floating-point number.
- KAWA_
STRING - Number format to parse a Kawa float from string.
- KOTLIN_
LITERAL - Number format for a Kotlin literal floating-point number.
- KOTLIN_
STRING - Number format to parse a Kotlin float 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 Matlab literal floating-point number.
- MATLAB_
STRING - Number format to parse an Matlab float from string.
- MONGODB
- Number format for a MongoDB literal floating-point number.
- MYSQL
- Number format for a MySQL literal 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-C literal floating-point number.
- OBJECTIVEC_
STRING - Number format to parse an Objective-C float from string.
- OCAML_
LITERAL - Number format for an OCaml literal floating-point number.
- OCAML_
STRING - Number format to parse an OCaml float from string.
- OCTAVE_
LITERAL - Number format for an Octave literal floating-point number.
- OCTAVE_
STRING - Number format to parse an Octave float from string.
- PERL_
LITERAL - Number format for a Perl literal floating-point number.
- PERL_
STRING - Number format to parse a Perl float from string.
- PHP_
LITERAL - Number format for a PHP literal floating-point number.
- PHP_
STRING - Number format to parse a PHP float from string.
- POSTGRESQL
- Number format for a PostgreSQL literal floating-point number.
- PYTHO
N2_ LITERAL - Number format for a Python2 literal floating-point number.
- PYTHO
N2_ STRING - Number format to parse a Python2 float from string.
- PYTHO
N3_ LITERAL - Number format for a Python3 literal floating-point number.
- PYTHO
N3_ STRING - Number format to parse a Python3 float from string.
- PYTHO
N35_ LITERAL - Number format for a Python3.5 or lower literal floating-point number.
- PYTHO
N36_ LITERAL - Number format for a Python3.6 or higher literal floating-point number.
- PYTHON_
LITERAL - Number format for a Python literal floating-point number.
- PYTHON_
STRING - Number format to parse a Python float from string.
- RADIX
- Alias for MANTISSA_RADIX.
- RADIX_
SHIFT - Alias for MANTISSA_RADIX_SHIFT.
- REASONML_
LITERAL - Number format for a ReasonML literal floating-point number.
- REASONML_
STRING - Number format to parse a ReasonML float 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 Ruby literal floating-point number.
- RUBY_
STRING - Number format to parse a Ruby float from string.
- RUST_
LITERAL - Number format for a Rust literal floating-point number.
- RUST_
STRING - Number format to parse a Rust float from string.
- R_
LITERAL - Number format for a R literal floating-point number.
- R_
STRING - Number format to parse a R float from string.
- SAGE_
LITERAL - Number format for a Sage literal floating-point number.
- SAGE_
STRING - Number format to parse a Sage float from string.
- SCALA_
LITERAL - Number format for a Scala literal floating-point number.
- SCALA_
STRING - Number format to parse a Scala float from string.
- SPECIAL_
DIGIT_ SEPARATOR - Any digit separators are allowed in special (non-finite) values.
- SQLITE
- Number format for a SQLite literal floating-point number.
- STANDARD
- Standard number format. This is identical to the Rust string format.
- SWIFT_
LITERAL - Number format for a Swift literal floating-point number.
- SWIFT_
STRING - Number format to parse a Swift float from string.
- TOML
- Number format for a TOML literal floating-point number.
- TRAILING_
DIGIT_ SEPARATOR - A digit separator is allowed after any digits.
- VB_
LITERAL - Number format for a Visual Basic literal floating-point number.
- VB_
STRING - Number format to parse a Visual Basic float from string.
- XML
- Number format for a XML literal floating-point number.
- YAML
- Number format for a YAML literal floating-point number.
- ZIG_
LITERAL - Number format for a Zig literal floating-point number.
- ZIG_
STRING - Number format to parse a Zig float from string.
Functions§
- base_
prefix - Extract the base prefix character from the format packed struct.
- base_
suffix - Extract the base suffix character from the format packed struct.
- digit_
separator - Extract the digit separator from the format packed struct.
- exponent_
base - Extract the exponent base from the format packed struct.
If not provided, defaults to
mantissa_radix
. - exponent_
radix - Extract the exponent radix from the format packed struct.
If not provided, defaults to
mantissa_radix
. - 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. Digit separators must not be valid digits or sign characters.
- is_
valid_ exponent_ flags - Determine if the provided exponent flags are valid.
- is_
valid_ options_ punctuation - Determine if all of the “punctuation” characters for the options API are valid.
- is_
valid_ punctuation - Determine if all of the “punctuation” characters are valid.
- is_
valid_ radix - Determine if the radix is valid.
- mantissa_
radix - Extract the mantissa radix from the format packed struct.
- radix_
from_ flags - Extract a generic radix from the format and bitflags.
Type Aliases§
- Option
U8 - Type with the exact same size as a
u8
.