#![cfg(feature = "format")]
use crate::error::Error;
use crate::format_builder::NumberFormatBuilder;
use crate::format_flags as flags;
use core::num;
use static_assertions::const_assert;
macro_rules! from_flag {
($format:ident, $flag:ident) => {{
$format & flags::$flag != 0
}};
}
#[doc(hidden)]
pub struct NumberFormat<const FORMAT: u128>;
#[rustfmt::skip]
impl<const FORMAT: u128> NumberFormat<FORMAT> {
pub const fn new() -> Self {
Self {}
}
pub const fn is_valid(&self) -> bool {
self.error().is_success()
}
#[allow(clippy::if_same_then_else)]
pub const fn error(&self) -> Error {
if !flags::is_valid_radix(self.mantissa_radix()) {
Error::InvalidMantissaRadix
} else if !flags::is_valid_radix(self.exponent_base()) {
Error::InvalidExponentBase
} else if !flags::is_valid_radix(self.exponent_radix()) {
Error::InvalidExponentRadix
} else if !flags::is_valid_digit_separator(FORMAT) {
Error::InvalidDigitSeparator
} else if !flags::is_valid_base_prefix(FORMAT) {
Error::InvalidBasePrefix
} else if !flags::is_valid_base_suffix(FORMAT) {
Error::InvalidBaseSuffix
} else if !flags::is_valid_punctuation(FORMAT) {
Error::InvalidPunctuation
} else if !flags::is_valid_exponent_flags(FORMAT) {
Error::InvalidExponentFlags
} else if self.no_positive_mantissa_sign() && self.required_mantissa_sign() {
Error::InvalidMantissaSign
} else if self.no_positive_exponent_sign() && self.required_exponent_sign() {
Error::InvalidExponentSign
} else if self.no_special() && self.case_sensitive_special() {
Error::InvalidSpecial
} else if self.no_special() && self.special_digit_separator() {
Error::InvalidSpecial
} else if self.integer_digit_separator_flags() == flags::INTEGER_CONSECUTIVE_DIGIT_SEPARATOR {
Error::InvalidConsecutiveIntegerDigitSeparator
} else if self.fraction_digit_separator_flags() == flags::FRACTION_CONSECUTIVE_DIGIT_SEPARATOR {
Error::InvalidConsecutiveFractionDigitSeparator
} else if self.exponent_digit_separator_flags() == flags::EXPONENT_CONSECUTIVE_DIGIT_SEPARATOR {
Error::InvalidConsecutiveExponentDigitSeparator
} else {
Error::Success
}
}
pub const REQUIRED_INTEGER_DIGITS: bool = from_flag!(FORMAT, REQUIRED_INTEGER_DIGITS);
#[inline(always)]
pub const fn required_integer_digits(&self) -> bool {
Self::REQUIRED_INTEGER_DIGITS
}
pub const REQUIRED_FRACTION_DIGITS: bool = from_flag!(FORMAT, REQUIRED_FRACTION_DIGITS);
#[inline(always)]
pub const fn required_fraction_digits(&self) -> bool {
Self::REQUIRED_FRACTION_DIGITS
}
pub const REQUIRED_EXPONENT_DIGITS: bool = from_flag!(FORMAT, REQUIRED_EXPONENT_DIGITS);
#[inline(always)]
pub const fn required_exponent_digits(&self) -> bool {
Self::REQUIRED_EXPONENT_DIGITS
}
pub const REQUIRED_MANTISSA_DIGITS: bool = from_flag!(FORMAT, REQUIRED_MANTISSA_DIGITS);
#[inline(always)]
pub const fn required_mantissa_digits(&self) -> bool {
Self::REQUIRED_MANTISSA_DIGITS
}
pub const REQUIRED_DIGITS: bool = from_flag!(FORMAT, REQUIRED_DIGITS);
#[inline(always)]
pub const fn required_digits(&self) -> bool {
Self::REQUIRED_DIGITS
}
pub const NO_POSITIVE_MANTISSA_SIGN: bool = from_flag!(FORMAT, NO_POSITIVE_MANTISSA_SIGN);
#[inline(always)]
pub const fn no_positive_mantissa_sign(&self) -> bool {
Self::NO_POSITIVE_MANTISSA_SIGN
}
pub const REQUIRED_MANTISSA_SIGN: bool = from_flag!(FORMAT, REQUIRED_MANTISSA_SIGN);
#[inline(always)]
pub const fn required_mantissa_sign(&self) -> bool {
Self::REQUIRED_MANTISSA_SIGN
}
pub const NO_EXPONENT_NOTATION: bool = from_flag!(FORMAT, NO_EXPONENT_NOTATION);
#[inline(always)]
pub const fn no_exponent_notation(&self) -> bool {
Self::NO_EXPONENT_NOTATION
}
pub const NO_POSITIVE_EXPONENT_SIGN: bool = from_flag!(FORMAT, NO_POSITIVE_EXPONENT_SIGN);
#[inline(always)]
pub const fn no_positive_exponent_sign(&self) -> bool {
Self::NO_POSITIVE_EXPONENT_SIGN
}
pub const REQUIRED_EXPONENT_SIGN: bool = from_flag!(FORMAT, REQUIRED_EXPONENT_SIGN);
#[inline(always)]
pub const fn required_exponent_sign(&self) -> bool {
Self::REQUIRED_EXPONENT_SIGN
}
pub const NO_EXPONENT_WITHOUT_FRACTION: bool = from_flag!(FORMAT, NO_EXPONENT_WITHOUT_FRACTION);
#[inline(always)]
pub const fn no_exponent_without_fraction(&self) -> bool {
Self::NO_EXPONENT_WITHOUT_FRACTION
}
pub const NO_SPECIAL: bool = from_flag!(FORMAT, NO_SPECIAL);
#[inline(always)]
pub const fn no_special(&self) -> bool {
Self::NO_SPECIAL
}
pub const CASE_SENSITIVE_SPECIAL: bool = from_flag!(FORMAT, CASE_SENSITIVE_SPECIAL);
#[inline(always)]
pub const fn case_sensitive_special(&self) -> bool {
Self::CASE_SENSITIVE_SPECIAL
}
pub const NO_INTEGER_LEADING_ZEROS: bool = from_flag!(FORMAT, NO_INTEGER_LEADING_ZEROS);
#[inline(always)]
pub const fn no_integer_leading_zeros(&self) -> bool {
Self::NO_INTEGER_LEADING_ZEROS
}
pub const NO_FLOAT_LEADING_ZEROS: bool = from_flag!(FORMAT, NO_FLOAT_LEADING_ZEROS);
#[inline(always)]
pub const fn no_float_leading_zeros(&self) -> bool {
Self::NO_FLOAT_LEADING_ZEROS
}
pub const REQUIRED_EXPONENT_NOTATION: bool = from_flag!(FORMAT, REQUIRED_EXPONENT_NOTATION);
#[inline(always)]
pub const fn required_exponent_notation(&self) -> bool {
Self::REQUIRED_EXPONENT_NOTATION
}
pub const CASE_SENSITIVE_EXPONENT: bool = from_flag!(FORMAT, CASE_SENSITIVE_EXPONENT);
#[inline(always)]
pub const fn case_sensitive_exponent(&self) -> bool {
Self::CASE_SENSITIVE_EXPONENT
}
pub const CASE_SENSITIVE_BASE_PREFIX: bool = from_flag!(FORMAT, CASE_SENSITIVE_BASE_PREFIX);
#[inline(always)]
pub const fn case_sensitive_base_prefix(&self) -> bool {
Self::CASE_SENSITIVE_BASE_PREFIX
}
pub const CASE_SENSITIVE_BASE_SUFFIX: bool = from_flag!(FORMAT, CASE_SENSITIVE_BASE_SUFFIX);
#[inline(always)]
pub const fn case_sensitive_base_suffix(&self) -> bool {
Self::CASE_SENSITIVE_BASE_SUFFIX
}
pub const INTEGER_INTERNAL_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, INTEGER_INTERNAL_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn integer_internal_digit_separator(&self) -> bool {
Self::INTEGER_INTERNAL_DIGIT_SEPARATOR
}
pub const FRACTION_INTERNAL_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, FRACTION_INTERNAL_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn fraction_internal_digit_separator(&self) -> bool {
Self::FRACTION_INTERNAL_DIGIT_SEPARATOR
}
pub const EXPONENT_INTERNAL_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, EXPONENT_INTERNAL_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn exponent_internal_digit_separator(&self) -> bool {
Self::EXPONENT_INTERNAL_DIGIT_SEPARATOR
}
pub const INTERNAL_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, INTERNAL_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn internal_digit_separator(&self) -> bool {
Self::INTERNAL_DIGIT_SEPARATOR
}
pub const INTEGER_LEADING_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, INTEGER_LEADING_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn integer_leading_digit_separator(&self) -> bool {
Self::INTEGER_LEADING_DIGIT_SEPARATOR
}
pub const FRACTION_LEADING_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, FRACTION_LEADING_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn fraction_leading_digit_separator(&self) -> bool {
Self::FRACTION_LEADING_DIGIT_SEPARATOR
}
pub const EXPONENT_LEADING_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, EXPONENT_LEADING_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn exponent_leading_digit_separator(&self) -> bool {
Self::EXPONENT_LEADING_DIGIT_SEPARATOR
}
pub const LEADING_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, LEADING_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn leading_digit_separator(&self) -> bool {
Self::LEADING_DIGIT_SEPARATOR
}
pub const INTEGER_TRAILING_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, INTEGER_TRAILING_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn integer_trailing_digit_separator(&self) -> bool {
Self::INTEGER_TRAILING_DIGIT_SEPARATOR
}
pub const FRACTION_TRAILING_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, FRACTION_TRAILING_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn fraction_trailing_digit_separator(&self) -> bool {
Self::FRACTION_TRAILING_DIGIT_SEPARATOR
}
pub const EXPONENT_TRAILING_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, EXPONENT_TRAILING_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn exponent_trailing_digit_separator(&self) -> bool {
Self::EXPONENT_TRAILING_DIGIT_SEPARATOR
}
pub const TRAILING_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, TRAILING_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn trailing_digit_separator(&self) -> bool {
Self::TRAILING_DIGIT_SEPARATOR
}
pub const INTEGER_CONSECUTIVE_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, INTEGER_CONSECUTIVE_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn integer_consecutive_digit_separator(&self) -> bool {
Self::INTEGER_CONSECUTIVE_DIGIT_SEPARATOR
}
pub const FRACTION_CONSECUTIVE_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, FRACTION_CONSECUTIVE_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn fraction_consecutive_digit_separator(&self) -> bool {
Self::FRACTION_CONSECUTIVE_DIGIT_SEPARATOR
}
pub const EXPONENT_CONSECUTIVE_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, EXPONENT_CONSECUTIVE_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn exponent_consecutive_digit_separator(&self) -> bool {
Self::EXPONENT_CONSECUTIVE_DIGIT_SEPARATOR
}
pub const CONSECUTIVE_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, CONSECUTIVE_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn consecutive_digit_separator(&self) -> bool {
Self::CONSECUTIVE_DIGIT_SEPARATOR
}
pub const SPECIAL_DIGIT_SEPARATOR: bool = from_flag!(FORMAT, SPECIAL_DIGIT_SEPARATOR);
#[inline(always)]
pub const fn special_digit_separator(&self) -> bool {
Self::SPECIAL_DIGIT_SEPARATOR
}
pub const DIGIT_SEPARATOR: u8 = flags::digit_separator(FORMAT);
#[inline(always)]
pub const fn digit_separator(&self) -> u8 {
Self::DIGIT_SEPARATOR
}
pub const BASE_PREFIX: u8 = flags::base_prefix(FORMAT);
#[inline(always)]
pub const fn base_prefix(&self) -> u8 {
Self::BASE_PREFIX
}
pub const BASE_SUFFIX: u8 = flags::base_suffix(FORMAT);
#[inline(always)]
pub const fn base_suffix(&self) -> u8 {
Self::BASE_SUFFIX
}
pub const MANTISSA_RADIX: u32 = flags::mantissa_radix(FORMAT);
#[inline(always)]
pub const fn mantissa_radix(&self) -> u32 {
Self::MANTISSA_RADIX
}
pub const RADIX: u32 = Self::MANTISSA_RADIX;
#[inline(always)]
pub const fn radix(&self) -> u32 {
Self::RADIX
}
pub const EXPONENT_BASE: u32 = flags::exponent_base(FORMAT);
#[inline(always)]
pub const fn exponent_base(&self) -> u32 {
Self::EXPONENT_BASE
}
pub const EXPONENT_RADIX: u32 = flags::exponent_radix(FORMAT);
#[inline(always)]
pub const fn exponent_radix(&self) -> u32 {
Self::EXPONENT_RADIX
}
#[inline(always)]
pub const fn flags(&self) -> u128 {
FORMAT & flags::FLAG_MASK
}
#[inline(always)]
pub const fn interface_flags(&self) -> u128 {
FORMAT & flags::INTERFACE_FLAG_MASK
}
#[inline(always)]
pub const fn digit_separator_flags(&self) -> u128 {
FORMAT & flags::DIGIT_SEPARATOR_FLAG_MASK
}
#[inline(always)]
pub const fn exponent_flags(&self) -> u128 {
FORMAT & flags::EXPONENT_FLAG_MASK
}
#[inline(always)]
pub const fn integer_digit_separator_flags(&self) -> u128 {
FORMAT & flags::INTEGER_DIGIT_SEPARATOR_FLAG_MASK
}
#[inline(always)]
pub const fn fraction_digit_separator_flags(&self) -> u128 {
FORMAT & flags::FRACTION_DIGIT_SEPARATOR_FLAG_MASK
}
#[inline(always)]
pub const fn exponent_digit_separator_flags(&self) -> u128 {
FORMAT & flags::EXPONENT_DIGIT_SEPARATOR_FLAG_MASK
}
#[inline]
pub const fn builder() -> NumberFormatBuilder {
NumberFormatBuilder::new()
}
#[inline]
pub const fn rebuild() -> NumberFormatBuilder {
NumberFormatBuilder::rebuild(FORMAT)
}
}
#[rustfmt::skip]
pub const RUST_LITERAL: 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();
const_assert!(NumberFormat::<{ RUST_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const RUST_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ RUST_STRING }> {}.is_valid());
pub const PYTHON_LITERAL: u128 = PYTHON3_LITERAL;
pub const PYTHON_STRING: u128 = PYTHON3_STRING;
pub const PYTHON3_LITERAL: u128 = PYTHON36_LITERAL;
#[rustfmt::skip]
pub const PYTHON3_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ PYTHON3_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const PYTHON36_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.no_special(true)
.no_integer_leading_zeros(true)
.internal_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ PYTHON36_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const PYTHON35_LITERAL: u128 = NumberFormatBuilder::new()
.no_special(true)
.no_integer_leading_zeros(true)
.build();
const_assert!(NumberFormat::<{ PYTHON35_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const PYTHON2_LITERAL: u128 = NumberFormatBuilder::new()
.no_special(true)
.build();
const_assert!(NumberFormat::<{ PYTHON2_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const PYTHON2_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ PYTHON2_STRING }> {}.is_valid());
pub const CXX_LITERAL: u128 = CXX20_LITERAL;
pub const CXX_STRING: u128 = CXX20_STRING;
#[cfg(feature = "power-of-two")]
pub const CXX_HEX_LITERAL: u128 = CXX20_HEX_LITERAL;
#[cfg(feature = "power-of-two")]
pub const CXX_HEX_STRING: u128 = CXX20_HEX_STRING;
#[rustfmt::skip]
pub const CXX20_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'\''))
.case_sensitive_special(true)
.internal_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ CXX20_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const CXX20_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ CXX20_STRING }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const CXX20_HEX_LITERAL: u128 = NumberFormatBuilder::new()
.required_exponent_notation(true)
.digit_separator(num::NonZeroU8::new(b'\''))
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.case_sensitive_special(true)
.internal_digit_separator(true)
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ CXX20_HEX_LITERAL }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const CXX20_HEX_STRING: u128 = NumberFormatBuilder::new()
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ CXX20_HEX_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const CXX17_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'\''))
.case_sensitive_special(true)
.internal_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ CXX17_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const CXX17_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ CXX17_STRING }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const CXX17_HEX_LITERAL: u128 = NumberFormatBuilder::new()
.required_exponent_notation(true)
.digit_separator(num::NonZeroU8::new(b'\''))
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.case_sensitive_special(true)
.internal_digit_separator(true)
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ CXX17_HEX_LITERAL }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const CXX17_HEX_STRING: u128 = NumberFormatBuilder::new()
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ CXX17_HEX_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const CXX14_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'\''))
.case_sensitive_special(true)
.internal_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ CXX14_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const CXX14_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ CXX14_STRING }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const CXX14_HEX_STRING: u128 = NumberFormatBuilder::new()
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ CXX14_HEX_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const CXX11_LITERAL: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ CXX11_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const CXX11_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ CXX11_STRING }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const CXX11_HEX_STRING: u128 = NumberFormatBuilder::new()
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ CXX11_HEX_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const CXX03_LITERAL: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ CXX03_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const CXX03_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ CXX03_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const CXX98_LITERAL: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ CXX98_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const CXX98_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ CXX98_STRING }> {}.is_valid());
pub const C_LITERAL: u128 = C18_LITERAL;
pub const C_STRING: u128 = C18_STRING;
#[cfg(feature = "power-of-two")]
pub const C_HEX_LITERAL: u128 = C18_HEX_LITERAL;
#[cfg(feature = "power-of-two")]
pub const C_HEX_STRING: u128 = C18_HEX_STRING;
#[rustfmt::skip]
pub const C18_LITERAL: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ C18_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const C18_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ C18_STRING }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const C18_HEX_LITERAL: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.required_exponent_notation(true)
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ C18_HEX_LITERAL }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const C18_HEX_STRING: u128 = NumberFormatBuilder::new()
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ C18_HEX_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const C11_LITERAL: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ C11_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const C11_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ C11_STRING }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const C11_HEX_LITERAL: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.required_exponent_notation(true)
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ C11_HEX_LITERAL }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const C11_HEX_STRING: u128 = NumberFormatBuilder::new()
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ C11_HEX_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const C99_LITERAL: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ C99_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const C99_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ C99_STRING }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const C99_HEX_LITERAL: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.required_exponent_notation(true)
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ C99_HEX_LITERAL }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const C99_HEX_STRING: u128 = NumberFormatBuilder::new()
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ C99_HEX_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const C90_LITERAL: u128 = NumberFormatBuilder::new()
.no_special(true)
.build();
const_assert!(NumberFormat::<{ C90_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const C90_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ C90_STRING }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const C90_HEX_STRING: u128 = NumberFormatBuilder::new()
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ C90_HEX_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const C89_LITERAL: u128 = NumberFormatBuilder::new()
.no_special(true)
.build();
const_assert!(NumberFormat::<{ C89_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const C89_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ C89_STRING }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const C89_HEX_STRING: u128 = NumberFormatBuilder::new()
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ C89_HEX_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const RUBY_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.required_digits(true)
.no_special(true)
.no_integer_leading_zeros(true)
.no_float_leading_zeros(true)
.internal_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ RUBY_LITERAL }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const RUBY_OCTAL_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.mantissa_radix(8)
.required_digits(true)
.no_special(true)
.internal_digit_separator(true)
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ RUBY_OCTAL_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const RUBY_STRING: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.no_special(true)
.internal_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ RUBY_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const SWIFT_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.required_digits(true)
.no_special(true)
.internal_digit_separator(true)
.trailing_digit_separator(true)
.consecutive_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ SWIFT_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const SWIFT_STRING: u128 = NumberFormatBuilder::new()
.required_fraction_digits(true)
.build();
const_assert!(NumberFormat::<{ SWIFT_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const GO_LITERAL: u128 = NumberFormatBuilder::new()
.required_fraction_digits(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ GO_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const GO_STRING: u128 = NumberFormatBuilder::new()
.required_fraction_digits(true)
.build();
const_assert!(NumberFormat::<{ GO_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const HASKELL_LITERAL: u128 = NumberFormatBuilder::new()
.required_digits(true)
.no_positive_mantissa_sign(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ HASKELL_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const HASKELL_STRING: u128 = NumberFormatBuilder::new()
.required_digits(true)
.no_positive_mantissa_sign(true)
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ HASKELL_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const JAVASCRIPT_LITERAL: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.no_float_leading_zeros(true)
.build();
const_assert!(NumberFormat::<{ JAVASCRIPT_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const JAVASCRIPT_STRING: u128 = NumberFormatBuilder::new()
.required_exponent_digits(false)
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ JAVASCRIPT_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const PERL_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.no_special(true)
.internal_digit_separator(true)
.fraction_leading_digit_separator(true)
.exponent_leading_digit_separator(true)
.trailing_digit_separator(true)
.consecutive_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ PERL_LITERAL }> {}.is_valid());
pub const PERL_STRING: u128 = PERMISSIVE;
#[rustfmt::skip]
pub const PHP_LITERAL: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ PHP_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const PHP_STRING: u128 = NumberFormatBuilder::new()
.required_exponent_digits(false)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ PHP_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const JAVA_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.no_special(true)
.internal_digit_separator(true)
.consecutive_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ JAVA_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const JAVA_STRING: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ JAVA_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const R_LITERAL: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ R_LITERAL }> {}.is_valid());
pub const R_STRING: u128 = PERMISSIVE;
#[rustfmt::skip]
pub const KOTLIN_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.no_special(true)
.no_integer_leading_zeros(true)
.internal_digit_separator(true)
.consecutive_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ KOTLIN_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const KOTLIN_STRING: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ KOTLIN_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const JULIA_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.case_sensitive_special(true)
.integer_internal_digit_separator(true)
.fraction_internal_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ JULIA_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const JULIA_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ JULIA_STRING }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const JULIA_HEX_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.case_sensitive_special(true)
.integer_internal_digit_separator(true)
.fraction_internal_digit_separator(true)
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ JULIA_HEX_LITERAL }> {}.is_valid());
#[rustfmt::skip]
#[cfg(feature = "power-of-two")]
pub const JULIA_HEX_STRING: u128 = NumberFormatBuilder::new()
.mantissa_radix(16)
.exponent_base(num::NonZeroU8::new(2))
.exponent_radix(num::NonZeroU8::new(10))
.build();
#[cfg(feature = "power-of-two")]
const_assert!(NumberFormat::<{ JULIA_HEX_STRING }> {}.is_valid());
pub const CSHARP_LITERAL: u128 = CSHARP7_LITERAL;
pub const CSHARP_STRING: u128 = CSHARP7_STRING;
#[rustfmt::skip]
pub const CSHARP7_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.required_fraction_digits(true)
.no_special(true)
.internal_digit_separator(true)
.consecutive_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ CSHARP7_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const CSHARP7_STRING: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ CSHARP7_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const CSHARP6_LITERAL: u128 = NumberFormatBuilder::new()
.required_fraction_digits(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ CSHARP6_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const CSHARP6_STRING: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ CSHARP6_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const CSHARP5_LITERAL: u128 = NumberFormatBuilder::new()
.required_fraction_digits(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ CSHARP5_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const CSHARP5_STRING: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ CSHARP5_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const CSHARP4_LITERAL: u128 = NumberFormatBuilder::new()
.required_fraction_digits(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ CSHARP4_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const CSHARP4_STRING: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ CSHARP4_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const CSHARP3_LITERAL: u128 = NumberFormatBuilder::new()
.required_fraction_digits(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ CSHARP3_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const CSHARP3_STRING: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ CSHARP3_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const CSHARP2_LITERAL: u128 = NumberFormatBuilder::new()
.required_fraction_digits(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ CSHARP2_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const CSHARP2_STRING: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ CSHARP2_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const CSHARP1_LITERAL: u128 = NumberFormatBuilder::new()
.required_fraction_digits(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ CSHARP1_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const CSHARP1_STRING: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ CSHARP1_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const KAWA_LITERAL: u128 = NumberFormatBuilder::new()
.no_special(true)
.build();
const_assert!(NumberFormat::<{ KAWA_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const KAWA_STRING: u128 = NumberFormatBuilder::new()
.no_special(true)
.build();
const_assert!(NumberFormat::<{ KAWA_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const GAMBITC_LITERAL: u128 = NumberFormatBuilder::new()
.no_special(true)
.build();
const_assert!(NumberFormat::<{ GAMBITC_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const GAMBITC_STRING: u128 = NumberFormatBuilder::new()
.no_special(true)
.build();
const_assert!(NumberFormat::<{ GAMBITC_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const GUILE_LITERAL: u128 = NumberFormatBuilder::new()
.no_special(true)
.build();
const_assert!(NumberFormat::<{ GUILE_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const GUILE_STRING: u128 = NumberFormatBuilder::new()
.no_special(true)
.build();
const_assert!(NumberFormat::<{ GUILE_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const CLOJURE_LITERAL: u128 = NumberFormatBuilder::new()
.required_integer_digits(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ CLOJURE_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const CLOJURE_STRING: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ CLOJURE_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const ERLANG_LITERAL: u128 = NumberFormatBuilder::new()
.required_digits(true)
.no_exponent_without_fraction(true)
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ ERLANG_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const ERLANG_STRING: u128 = NumberFormatBuilder::new()
.required_digits(true)
.no_exponent_without_fraction(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ ERLANG_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const ELM_LITERAL: u128 = NumberFormatBuilder::new()
.required_digits(true)
.no_positive_mantissa_sign(true)
.no_integer_leading_zeros(true)
.no_float_leading_zeros(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ ELM_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const ELM_STRING: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ ELM_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const SCALA_LITERAL: u128 = NumberFormatBuilder::new()
.required_digits(true)
.no_special(true)
.no_integer_leading_zeros(true)
.no_float_leading_zeros(true)
.build();
const_assert!(NumberFormat::<{ SCALA_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const SCALA_STRING: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ SCALA_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const ELIXIR_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.required_digits(true)
.no_exponent_without_fraction(true)
.no_special(true)
.internal_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ ELIXIR_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const ELIXIR_STRING: u128 = NumberFormatBuilder::new()
.required_digits(true)
.no_exponent_without_fraction(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ ELIXIR_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const FORTRAN_LITERAL: u128 = NumberFormatBuilder::new()
.no_special(true)
.build();
const_assert!(NumberFormat::<{ FORTRAN_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const FORTRAN_STRING: u128 = NumberFormatBuilder::new().build();
const_assert!(NumberFormat::<{ FORTRAN_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const D_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.no_special(true)
.no_integer_leading_zeros(true)
.internal_digit_separator(true)
.trailing_digit_separator(true)
.consecutive_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ D_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const D_STRING: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.integer_internal_digit_separator(true)
.fraction_internal_digit_separator(true)
.integer_trailing_digit_separator(true)
.fraction_trailing_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ D_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const COFFEESCRIPT_LITERAL: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.no_integer_leading_zeros(true)
.no_float_leading_zeros(true)
.build();
const_assert!(NumberFormat::<{ COFFEESCRIPT_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const COFFEESCRIPT_STRING: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ COFFEESCRIPT_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const COBOL_LITERAL: u128 = NumberFormatBuilder::new()
.required_fraction_digits(true)
.no_exponent_without_fraction(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ COBOL_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const COBOL_STRING: u128 = NumberFormatBuilder::new()
.required_exponent_sign(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ COBOL_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const FSHARP_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.required_integer_digits(true)
.required_exponent_digits(true)
.case_sensitive_special(true)
.internal_digit_separator(true)
.consecutive_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ FSHARP_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const FSHARP_STRING: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.internal_digit_separator(true)
.leading_digit_separator(true)
.trailing_digit_separator(true)
.consecutive_digit_separator(true)
.special_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ FSHARP_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const VB_LITERAL: u128 = NumberFormatBuilder::new()
.required_fraction_digits(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ VB_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const VB_STRING: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ VB_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const OCAML_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.required_integer_digits(true)
.required_exponent_digits(true)
.no_positive_mantissa_sign(true)
.case_sensitive_special(true)
.internal_digit_separator(true)
.fraction_leading_digit_separator(true)
.trailing_digit_separator(true)
.consecutive_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ OCAML_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const OCAML_STRING: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.internal_digit_separator(true)
.leading_digit_separator(true)
.trailing_digit_separator(true)
.consecutive_digit_separator(true)
.special_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ OCAML_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const OBJECTIVEC_LITERAL: u128 = NumberFormatBuilder::new()
.no_special(true)
.build();
const_assert!(NumberFormat::<{ OBJECTIVEC_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const OBJECTIVEC_STRING: u128 = NumberFormatBuilder::new()
.no_special(true)
.build();
const_assert!(NumberFormat::<{ OBJECTIVEC_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const REASONML_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.required_integer_digits(true)
.required_exponent_digits(true)
.case_sensitive_special(true)
.internal_digit_separator(true)
.fraction_leading_digit_separator(true)
.trailing_digit_separator(true)
.consecutive_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ REASONML_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const REASONML_STRING: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.internal_digit_separator(true)
.leading_digit_separator(true)
.trailing_digit_separator(true)
.consecutive_digit_separator(true)
.special_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ REASONML_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const OCTAVE_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.case_sensitive_special(true)
.internal_digit_separator(true)
.fraction_leading_digit_separator(true)
.trailing_digit_separator(true)
.consecutive_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ OCTAVE_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const OCTAVE_STRING: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b','))
.internal_digit_separator(true)
.leading_digit_separator(true)
.trailing_digit_separator(true)
.consecutive_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ OCTAVE_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const MATLAB_LITERAL: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.case_sensitive_special(true)
.internal_digit_separator(true)
.fraction_leading_digit_separator(true)
.trailing_digit_separator(true)
.consecutive_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ MATLAB_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const MATLAB_STRING: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b','))
.internal_digit_separator(true)
.leading_digit_separator(true)
.trailing_digit_separator(true)
.consecutive_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ MATLAB_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const ZIG_LITERAL: u128 = NumberFormatBuilder::new()
.required_integer_digits(true)
.no_positive_mantissa_sign(true)
.no_special(true)
.build();
const_assert!(NumberFormat::<{ ZIG_LITERAL }> {}.is_valid());
pub const ZIG_STRING: u128 = PERMISSIVE;
#[rustfmt::skip]
pub const SAGE_LITERAL: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ SAGE_LITERAL }> {}.is_valid());
#[rustfmt::skip]
pub const SAGE_STRING: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.internal_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ SAGE_STRING }> {}.is_valid());
#[rustfmt::skip]
pub const JSON: u128 = NumberFormatBuilder::new()
.required_digits(true)
.no_positive_mantissa_sign(true)
.no_special(true)
.no_integer_leading_zeros(true)
.no_float_leading_zeros(true)
.build();
const_assert!(NumberFormat::<{ JSON }> {}.is_valid());
#[rustfmt::skip]
pub const TOML: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.required_digits(false)
.no_special(true)
.no_integer_leading_zeros(true)
.no_float_leading_zeros(true)
.internal_digit_separator(true)
.build();
const_assert!(NumberFormat::<{ TOML }> {}.is_valid());
pub const YAML: u128 = JSON;
#[rustfmt::skip]
pub const XML: u128 = NumberFormatBuilder::new()
.required_exponent_digits(false)
.case_sensitive_special(true)
.build();
const_assert!(NumberFormat::<{ XML }> {}.is_valid());
#[rustfmt::skip]
pub const SQLITE: u128 = NumberFormatBuilder::new()
.no_special(true)
.build();
const_assert!(NumberFormat::<{ SQLITE }> {}.is_valid());
#[rustfmt::skip]
pub const POSTGRESQL: u128 = NumberFormatBuilder::new()
.no_special(true)
.build();
const_assert!(NumberFormat::<{ POSTGRESQL }> {}.is_valid());
#[rustfmt::skip]
pub const MYSQL: u128 = NumberFormatBuilder::new()
.no_special(true)
.build();
const_assert!(NumberFormat::<{ MYSQL }> {}.is_valid());
#[rustfmt::skip]
pub const MONGODB: u128 = NumberFormatBuilder::new()
.case_sensitive_special(true)
.no_float_leading_zeros(true)
.build();
const_assert!(NumberFormat::<{ MONGODB }> {}.is_valid());
#[doc(hidden)]
#[rustfmt::skip]
pub const PERMISSIVE: u128 = NumberFormatBuilder::new()
.required_exponent_digits(false)
.required_mantissa_digits(false)
.build();
const_assert!(NumberFormat::<{ PERMISSIVE }> {}.is_valid());
#[doc(hidden)]
#[rustfmt::skip]
pub const IGNORE: u128 = NumberFormatBuilder::new()
.digit_separator(num::NonZeroU8::new(b'_'))
.digit_separator_flags(true)
.required_exponent_digits(false)
.required_mantissa_digits(false)
.build();
const_assert!(NumberFormat::<{ IGNORE }> {}.is_valid());