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 aRust
literal floating-point number.RUST_STRING
: Number format to parse aRust
float from string.PYTHON_LITERAL
: Number format for aPython
literal floating-point number.PYTHON_STRING
: Number format to parse aPython
float from string.PYTHON3_LITERAL
: Number format for aPython3
literal floating-point number.PYTHON3_STRING
: Number format to parse aPython3
float from string.PYTHON36_LITERAL
: Number format for aPython3.6
or higher literal floating-point number.PYTHON35_LITERAL
: Number format for aPython3.5
or lower literal floating-point number.PYTHON2_LITERAL
: Number format for aPython2
literal floating-point number.PYTHON2_STRING
: Number format to parse aPython2
float 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++20
literal floating-point number.CXX20_STRING
: Number format for aC++20
string floating-point number.CXX20_HEX_LITERAL
: Number format for aC++20
literal hexadecimal floating-point number.CXX20_HEX_STRING
: Number format for aC++20
string hexadecimal floating-point number.CXX17_LITERAL
: Number format for aC++17
literal floating-point number.CXX17_STRING
: Number format for aC++17
string floating-point number.CXX17_HEX_LITERAL
: Number format for aC++17
literal hexadecimal floating-point number.CXX17_HEX_STRING
: Number format for aC++17
string hexadecimal floating-point number.CXX14_LITERAL
: Number format for aC++14
literal floating-point number.CXX14_STRING
: Number format for aC++14
string floating-point number.CXX14_HEX_STRING
: Number format for aC++14
string hexadecimal floating-point number.CXX11_LITERAL
: Number format for aC++11
literal floating-point number.CXX11_STRING
: Number format for aC++11
string floating-point number.CXX11_HEX_STRING
: Number format for aC++11
string hexadecimal floating-point number.CXX03_LITERAL
: Number format for aC++03
literal floating-point number.CXX03_STRING
: Number format for aC++03
string floating-point number.CXX98_LITERAL
: Number format for aC++98
literal floating-point number.CXX98_STRING
: Number format for aC++98
string floating-point number.C_LITERAL
: Number format for aC
literal floating-point number.C_STRING
: Number format for aC
string floating-point number.C_HEX_LITERAL
: Number format for aC
literal hexadecimal floating-point number.C_HEX_STRING
: Number format for aC
string hexadecimal floating-point number.C18_LITERAL
: Number format for aC18
literal floating-point number.C18_STRING
: Number format for aC18
string floating-point number.C18_HEX_LITERAL
: Number format for aC18
literal hexadecimal floating-point number.C18_HEX_STRING
: Number format for aC18
string hexadecimal floating-point number.C11_LITERAL
: Number format for aC11
literal floating-point number.C11_STRING
: Number format for aC11
string floating-point number.C11_HEX_LITERAL
: Number format for aC11
literal hexadecimal floating-point number.C11_HEX_STRING
: Number format for aC11
string hexadecimal floating-point number.C99_LITERAL
: Number format for aC99
literal floating-point number.C99_STRING
: Number format for aC99
string floating-point number.C99_HEX_LITERAL
: Number format for aC99
literal hexadecimal floating-point number.C99_HEX_STRING
: Number format for aC99
string hexadecimal floating-point number.C90_LITERAL
: Number format for aC90
literal floating-point number.C90_STRING
: Number format for aC90
string floating-point number.C90_HEX_STRING
: Number format for aC90
string hexadecimal floating-point number.C89_LITERAL
: Number format for aC89
literal floating-point number.C89_STRING
: Number format for aC89
string floating-point number.C89_HEX_STRING
: Number format for aC89
string hexadecimal floating-point number.RUBY_LITERAL
: Number format for aRuby
literal floating-point number.RUBY_OCTAL_LITERAL
: Number format for an octalRuby
literal floating-point number.RUBY_STRING
: Number format to parse aRuby
float from string.SWIFT_LITERAL
: Number format for aSwift
literal floating-point number.SWIFT_STRING
: Number format to parse aSwift
float from string.GO_LITERAL
: Number format for aGolang
literal floating-point number.GO_STRING
: Number format to parse aGolang
float from string.HASKELL_LITERAL
: Number format for aHaskell
literal floating-point number.HASKELL_STRING
: Number format to parse aHaskell
float from string.JAVASCRIPT_LITERAL
: Number format for aJavascript
literal floating-point number.JAVASCRIPT_STRING
: Number format to parse aJavascript
float from string.PERL_LITERAL
: Number format for aPerl
literal floating-point number.PERL_STRING
: Number format to parse aPerl
float from string.PHP_LITERAL
: Number format for aPHP
literal floating-point number.PHP_STRING
: Number format to parse aPHP
float from string.JAVA_LITERAL
: Number format for aJava
literal floating-point number.JAVA_STRING
: Number format to parse aJava
float from string.R_LITERAL
: Number format for anR
literal floating-point number.R_STRING
: Number format to parse anR
float from string.KOTLIN_LITERAL
: Number format for aKotlin
literal floating-point number.KOTLIN_STRING
: Number format to parse aKotlin
float from string.JULIA_LITERAL
: Number format for aJulia
literal floating-point number.JULIA_STRING
: Number format to parse aJulia
float from string.JULIA_HEX_LITERAL
: Number format for aJulia
literal floating-point number.JULIA_HEX_STRING
: Number format to parse aJulia
float 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#7
literal floating-point number.CSHARP7_STRING
: Number format to parse aC#7
float from string.CSHARP6_LITERAL
: Number format for aC#6
literal floating-point number.CSHARP6_STRING
: Number format to parse aC#6
float from string.CSHARP5_LITERAL
: Number format for aC#5
literal floating-point number.CSHARP5_STRING
: Number format to parse aC#5
float from string.CSHARP4_LITERAL
: Number format for aC#4
literal floating-point number.CSHARP4_STRING
: Number format to parse aC#4
float from string.CSHARP3_LITERAL
: Number format for aC#3
literal floating-point number.CSHARP3_STRING
: Number format to parse aC#3
float from string.CSHARP2_LITERAL
: Number format for aC#2
literal floating-point number.CSHARP2_STRING
: Number format to parse aC#2
float from string.CSHARP1_LITERAL
: Number format for aC#1
literal floating-point number.CSHARP1_STRING
: Number format to parse aC#1
float from string.KAWA_LITERAL
: Number format for aKawa
literal floating-point number.KAWA_STRING
: Number format to parse aKawa
float from string.GAMBITC_LITERAL
: Number format for aGambit-C
literal floating-point number.GAMBITC_STRING
: Number format to parse aGambit-C
float from string.GUILE_LITERAL
: Number format for aGuile
literal floating-point number.GUILE_STRING
: Number format to parse aGuile
float from string.CLOJURE_LITERAL
: Number format for aClojure
literal floating-point number.CLOJURE_STRING
: Number format to parse aClojure
float from string.ERLANG_LITERAL
: Number format for anErlang
literal floating-point number.ERLANG_STRING
: Number format to parse anErlang
float from string.ELM_LITERAL
: Number format for anElm
literal floating-point number.ELM_STRING
: Number format to parse anElm
float from string.SCALA_LITERAL
: Number format for aScala
literal floating-point number.SCALA_STRING
: Number format to parse aScala
float from string.ELIXIR_LITERAL
: Number format for anElixir
literal floating-point number.ELIXIR_STRING
: Number format to parse anElixir
float from string.FORTRAN_LITERAL
: Number format for aFORTRAN
literal floating-point number.FORTRAN_STRING
: Number format to parse aFORTRAN
float from string.D_LITERAL
: Number format for aD
literal floating-point number.D_STRING
: Number format to parse aD
float from string.COFFEESCRIPT_LITERAL
: Number format for aCoffeescript
literal floating-point number.COFFEESCRIPT_STRING
: Number format to parse aCoffeescript
float from string.COBOL_LITERAL
: Number format for aCobol
literal floating-point number.COBOL_STRING
: Number format to parse aCobol
float 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 Basic
literal floating-point number.VB_STRING
: Number format to parse aVisual Basic
float from string.OCAML_LITERAL
: Number format for anOCaml
literal floating-point number.OCAML_STRING
: Number format to parse anOCaml
float from string.OBJECTIVEC_LITERAL
: Number format for anObjective-C
literal floating-point number.OBJECTIVEC_STRING
: Number format to parse anObjective-C
float from string.REASONML_LITERAL
: Number format for aReasonML
literal floating-point number.REASONML_STRING
: Number format to parse aReasonML
float from string.OCTAVE_LITERAL
: Number format for anOctave
literal floating-point number.OCTAVE_STRING
: Number format to parse anOctave
float from string.MATLAB_LITERAL
: Number format for anMatlab
literal floating-point number.MATLAB_STRING
: Number format to parse anMatlab
float from string.ZIG_LITERAL
: Number format for aZig
literal floating-point number.ZIG_STRING
: Number format to parse aZig
float from string.SAGE_LITERAL
: Number format for aSage
literal floating-point number.SAGE_STRING
: Number format to parse aSage
float from string.JSON
: Number format for aJSON
literal floating-point number.TOML
: Number format for aTOML
literal floating-point number.YAML
: Number format for aYAML
literal floating-point number.XML
: Number format for anXML
literal floating-point number.SQLITE
: Number format for aSQLite
literal floating-point number.POSTGRESQL
: Number format for aPostgreSQL
literal floating-point number.MYSQL
: Number format for aMySQL
literal floating-point number.MONGODB
: Number format for aMongoDB
literal 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
NumberFormat
from 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
C11
literal hexadecimal floating-point number. - C11_
HEX_ STRING - Number format for a
C11
string hexadecimal floating-point number. - C11_
LITERAL - Number format for a
C11
literal floating-point number. - C11_
STRING - Number format for a
C11
string floating-point number. - C18_
HEX_ LITERAL - Number format for a
C18
literal hexadecimal floating-point number. - C18_
HEX_ STRING - Number format for a
C18
string hexadecimal floating-point number. - C18_
LITERAL - Number format for a
C18
literal floating-point number. - C18_
STRING - Number format for a
C18
string floating-point number. - C89_
HEX_ STRING - Number format for a
C89
string hexadecimal floating-point number. - C89_
LITERAL - Number format for a
C89
literal floating-point number. - C89_
STRING - Number format for a
C89
string floating-point number. - C90_
HEX_ STRING - Number format for a
C90
string hexadecimal floating-point number. - C90_
LITERAL - Number format for a
C90
literal floating-point number. - C90_
STRING - Number format for a
C90
string floating-point number. - C99_
HEX_ LITERAL - Number format for a
C99
literal hexadecimal floating-point number. - C99_
HEX_ STRING - Number format for a
C99
string hexadecimal floating-point number. - C99_
LITERAL - Number format for a
C99
literal floating-point number. - C99_
STRING - Number format for a
C99
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_
HEX_ STRING - Number format for a
C++11
string hexadecimal 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_
HEX_ STRING - Number format for a
C++14
string hexadecimal 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_
HEX_ LITERAL - Number format for a
C++17
literal hexadecimal floating-point number. - CXX17_
HEX_ STRING - Number format for a
C++17
string hexadecimal 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_
HEX_ LITERAL - Number format for a
C++20
literal hexadecimal floating-point number. - CXX20_
HEX_ STRING - Number format for a
C++20
string hexadecimal 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_
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
C
literal hexadecimal floating-point number. - C_
HEX_ STRING - Number format to parse a
C
hexadecimal 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_
HEX_ LITERAL - Number format for a
Julia
literal floating-point number. - JULIA_
HEX_ STRING - Number format to parse a
Julia
float from string. - 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_
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
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_
OCTAL_ LITERAL - Number format for an octal
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 an
R
literal floating-point number. - R_
STRING - Number format to parse an
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 an
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§
- 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.