use lexical_util::constants::FormattedSize;
use lexical_util::options::WriteOptions;
use lexical_util::result::Result;
use static_assertions::const_assert;
#[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 unsafe fn build_unchecked(&self) -> Options {
Options {}
}
#[inline(always)]
pub const fn build(&self) -> Result<Options> {
Ok(unsafe { 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)]
pub const fn is_valid(&self) -> bool {
true
}
#[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)
}
#[inline(always)]
fn buffer_size<T: FormattedSize, const FORMAT: u128>(&self) -> usize {
T::FORMATTED_SIZE
}
}
#[rustfmt::skip]
pub const STANDARD: Options = Options::new();
const_assert!(STANDARD.is_valid());