use lexical_util::constants::FormattedSize;
use lexical_util::format::NumberFormat;
use lexical_util::options::WriteOptions;
use lexical_util::result::Result;
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub struct OptionsBuilder {}
impl OptionsBuilder {
#[inline(always)]
pub const fn new() -> Self {
Self {}
}
#[inline(always)]
pub const fn is_valid(&self) -> bool {
true
}
#[inline(always)]
pub const fn build_unchecked(&self) -> Options {
Options {}
}
#[inline(always)]
pub const fn build_strict(&self) -> Options {
match self.build() {
Ok(value) => value,
Err(error) => core::panic!("{}", error.description()),
}
}
#[inline(always)]
pub const fn build(&self) -> Result<Options> {
Ok(self.build_unchecked())
}
}
impl Default for OptionsBuilder {
#[inline(always)]
fn default() -> Self {
Self::new()
}
}
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub struct Options {}
impl Options {
#[inline(always)]
pub const fn new() -> Self {
Self {}
}
#[inline(always)]
#[cfg(feature = "power-of-two")]
pub const fn from_radix(_: u8) -> Self {
Self::new()
}
#[inline(always)]
pub const fn is_valid(&self) -> bool {
true
}
#[inline(always)]
pub const fn buffer_size_const<T: FormattedSize, const FORMAT: u128>(&self) -> usize {
if (NumberFormat::<FORMAT> {}.radix()) == 10 {
T::FORMATTED_SIZE_DECIMAL
} else {
T::FORMATTED_SIZE
}
}
#[inline(always)]
pub const fn builder() -> OptionsBuilder {
OptionsBuilder::new()
}
#[inline(always)]
pub const fn rebuild(&self) -> OptionsBuilder {
OptionsBuilder {}
}
}
impl Default for Options {
#[inline(always)]
fn default() -> Self {
Self::new()
}
}
impl WriteOptions for Options {
#[inline(always)]
fn is_valid(&self) -> bool {
Self::is_valid(self)
}
#[doc = lexical_util::write_options_doc!()]
#[inline(always)]
fn buffer_size<T: FormattedSize, const FORMAT: u128>(&self) -> usize {
self.buffer_size_const::<T, FORMAT>()
}
}
#[rustfmt::skip]
pub const STANDARD: Options = Options::new();